css的高级选择器
1.标签指定是选择器
又称交集选择器,有两个选择器构成,其中第一个未标记选择器,第二个为class选择器或id
选择器,两个选择器之间不能有空格,如h3.special或p#one
标记选择器p.special只适用于<p class-“special”>标记
2.后代选择器(非常重要)
是用来选择元素或元素组的后代,其写法就是把外层标记写在前面,内层标记写在后面,中间用空格分开。到标记发生嵌套时,内层标记就成了外层标记的后代。例如:当
标记内嵌套标记时,就可以使用后代选择器对其中的标记进行控制。
例如:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
p strong{color:red;} /*后代选择器*/ 这才是嵌套标记
strong{color:bluue;}
</style>
</head>
<body>
<p>段落文本<strong>嵌套在段落中,使用strong标记定义文本(红色) //之有这一段是红色变化</strong></p>
<strong>嵌套之外的由strong标记定义的文本(lanse)</strong>
</body>
</html>
3.并集选择器
并集选择器时各个选择器通过逗号连接而成,任何形式的选择器(包括标记选择器,class类选择器,id选择器),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为他们定义相同的css样式
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
h2,h3,p{color:green;font-size=15px;}
h3,p,.special,#one{text-decoration:underline;color:blue;}
</style>
</head>
<body>
<h2>二级标本标题</h2>
<h3>三级标题,加下划线</h3>
<p class="special">段落文本1;加下划线</p>
<p>段落文本二,普通文本</p>
<p id="one">段落文本3,加下划线
</p>
</body>
</html>
2.css的继承性和层叠性
1.层叠行
所谓的层叠式是指多种css央视的叠加。例如:当使用css样式表定义
标记字号的大小为12像素,链入式定义
标记的颜色为红色,那么段落显示12像素红色,及这两种样式产生了叠加
2.继承性
所谓的继承性是指书写css样式表时,子标记会继承父标记的某些样式,如文本的颜色和字号。例如:定义主题元素body的文本颜色为黑色,那么页面中所有的文本颜色都是黑色,这是因为其他的标记都嵌套在标记中,时标记的子标记。
注意:并不是所有的css属性都可以继承,,,,,,以下的这些都不能实行
边框属性
外边距属性
内边距属性
背景属性
定位属性
布局属性
元素宽高属性
3.css的优先级
定义css样式时,经常出现两个或个多的规则应用在图一元素上,这时就会出现优先级的问题
例如:
p{color:red} /*标记样式 权重为1*/
.blue{color :red} /* class 样式 权重为10*/
#header{color:red } /* id样式 权重为100*/
继承样式的权重为0。嵌套结构中,不管父元素样式的权重有多大,被子元素继承时,他的权重都为0,也就是说子元素定义的央视会覆盖继承来的样式。
1.注意
行内样式优先。应用style属性的元素是,其行内样式的权重非常高,可以理解为远大于100.总之它拥有比上面提高的选择器都大的优先级
2.权重相同时,css遵循就近原则。也就是说考级元素的样式具有最大优先级,或者排在最后的样式优先级最大
3.css定义了一个!important命令,该命令被赋予最大的优先级,也就是说不管权重如何以及样式位置的远近,!important都具有最大优先级