CSS样式引入方式和选择器

1、什么是CSS?

CSS 指的是层叠样式表(Cascading Style Sheets),也称级联样式表;

2、层叠样式表

2.1、引入方式

  • 行内样式
  • 内嵌样式
  • 外链样式
  • 导入样式

2.1.1、行内样式

行内样式(也称内联样式)可用于为单个元素应用唯一的样式

标签样式,行内样式在相关元素的 "style" 属性中定义

实例

<h2 style="color:pink">这是一个标题标签</h2>

2.1.2、内嵌样式

页面样式,内嵌样式是在 head 部分的 <style> 元素中进行定义。

实例

<style type="text/css"></style>
<!DOCTYPE html> 
<html lang="en">
 <head><meta charset="UTF-8">
 <title>样式</title> 
<style type="text/css">
 h2{color: blue }</style> 
</head> 
<body>
<h2>这是一个标题标签</h2> 
</body>
</html>

2.1.3外链样式

外部样式在 HTML 页面 <head> 部分内的 <link> 元素中进行定义

css 的样式单独写在 .css 的文件中,通过 link 标签中的 href属性进行引入 css 的样式单独写在 .css 的文件中,通过 link 标签中的 href 属性进行引入
 
实例
<link rel="stylesheet" type="text/css" href="">

2.1.4导入样式

导入式也是写在head标签内的style标签

@import()

<style type="text/css">
            @import url(文件名.css);
</style>

 

四种引入方式的优先级

行内、 内嵌 、外链、 导入 这种说法不严谨

引入方式的优先级应该遵循 “就近原则“;

3、选择器

3.1基本选择器

  • id选择器(根据id属性获取)
  • 类选择器(根据class属性获取)
  • 标签选择器(根据标签名获取)
  • 通用选择器(根据通配符*)

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>基本选择器</title>
	<style type="text/css">
		/*通用选择器*/
		*{
			color: red;
		}
		/*id选择器*/
		#p1{
			color: pink;
		}
		/*类选择器*/
		.p2{
			color: green;
		}
		/*标签选择器*/
		p{color: darkred;}
	</style>
</head>
<body>
	<p>这是一个p标签</p>
	<p id="p1">这是一个p标签,设置了id</p>
	<p class="p2">这是一个p标签,设置了类名</p>
	<p>这是一个p标签</p>
	<p>这是一个p标签</p>
</body>
</html>

四种基本选择器的优先级

id  类  标签  通用(从大到小)

我认为越具体的优先,越广泛的越不优先

3.2包含选择器

  • 子代选择器(获取某个标签的第一级子标签)
  • 后代选择器(获取某个标签里的所有子标签)
  • 分组选择器(逗号选择器,使用逗号给多个标签设置样式)

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>包含选择器</title>
	<style type="text/css">
		/*子代选择器*/
		.user>.user1{
			border: 2px solid red;
		}
		/*后代选择器*/
		.user li{
			border:2px solid blue;
		}
		/*分组选择器(逗号选择器)*/
		.username,#username1,.username2{
			border: 1px dotted pink;
		}

	</style>
</head>
<body>
	<div class="username">这是一个div</div>
	<div id="username1">这也是一个div</div>
	<p class="username2">这是一个p标签</p>
	<div class="user">
		<ul class="user1">
			<li>列表数据1</li>
			<li>列表数据1</li>
			<li>列表数据1</li>
			<li>列表数据1</li>
			<li>列表数据1</li>
		</ul>
		<ul class="user2">
			<li>列表数据2</li>
			<li>列表数据2</li>
			<li>列表数据2</li>
			<li>列表数据2</li>
			<li>列表数据2</li>
		</ul>
		<ul class="user3">
			<li>列表数据3</li>
			<li>列表数据3</li>
			<li>列表数据3</li>
			<li>列表数据3</li>
			<li>列表数据3</li>
		</ul>
	</div>
</body>
</html>

 

3.3属性选择

实例

<!DOCTYPE html> 
<html lang="en">
 <head><meta charset="UTF-8"> 
<title>属性选择器</title> 
<style type="text/css"> 
/* 某个标签里面的某个属性值 */
 .container[class]{ color:red; }
/* div[title]{ color: red } */ 
/* 确切到某一个值 */ 
input[type*="e"]{ color: red }
/* 以什么为开始 */ 
input[type^="e"]{ color: blue }
/* 以什么为结束 */
 input[type$="rl"]{
 color: green 
}
/* 表示下一个标签 */
.msg+p{ color: yellow }
/* 属性名称可以等于某一个值 */
 [title="这是一个标题"]{ color: blue }
</style> 
</head>
<body>
<div class="container">这是一个div</div> 
<div title="这是一个标题">这是第二个div</div>
<input type="text" name="" id="" value="张三">
<input type="email" name="" id="" value="王五"> 
<input type="url" name="" id="" value="李四"> <hr>
<div class="msg">这是第三个div</div> <p id="msg2">这是一个段落</p>
</body> 
</html>

 

3.4伪类选择器

同一个标签,不同的状态,有不同的样式,这就叫做"伪类"。伪类是使用冒号表示 时候的样式
  1. :link -------- 链接点击之前
  2. :visited ------- 链接被访问过后
  3. :hover ------- ”悬停鼠标放到标签上
  4. :active ------ "激活" 鼠标点击标签但是不松手
  5. :focus ------- 某个标签获得焦点

实例

<!DOCTYPE html> 
<html lang="en"> 
<head><meta charset="UTF-8"> 
<title>伪类选择器</title> 
<style type="text/css"> 
/* 让链接点击之前是红色 */ 
a:link{ color: red }
/* 让链接点击之前是橙色 */ 
a:visited{ color: orange }
/* 鼠标悬停时候是绿色 */ 
a:hover{ color: green }
/* 鼠标点击但是不松手的时候是蓝色 */ 
a:active{ color: blue }
</style> 
</head> 
<body><a href="#">点击</a> 
</body> 
</html>

 

注意:伪类选择器的顺序是固定

:link------:visited-------:hover-----:active

3.5伪元素选择器

  1. ::after
  2. :before css2
  3. :after
  4. ::必须写content,content的取值就是你要添加的内容 ​​​​​​​
p :: before {
content : "s"
}
p :: after {
content : "----- 内容 ​​​​​​​ "
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值