CSS选择器中比较常见的有标签选择器、ID选择器、类选择器以及子选择器。而事实上,CSS选择器如果细分下来,竟然多达40多种。那他们的优先级该怎么比较呢,下面就来看看吧。
● 不同级别
1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
2. 作为style属性写在元素内的样式
3. id选择器
4. 类选择器
5. 元素选择器
6. 通配符选择器
7. 浏览器自定义或继承
总结排序:!important > 行内样式 > ID选择器 > 类选择器 > 元素 > 通配符 > 继承 > 浏览器默认属性
● 同一级别
(1) 同一级别中后写的会覆盖先写的样式
(2) 同一级别css引入方式不同,优先级不同
总结排序:内联(行内)样式 > 内部样式表 > 外部样式表 > 导入样式(@import)。
对于选择器优先级,还可以通过计算权重值来比较
css字体不换行,capitalize在css,css flex 文字方向,使用css样式的分析,css宽度依据高度设置,勾选后背景颜色css,angularjs点击改变css样式
@ 怎样区分后代选择器和子代选择器?
1.第一从符号上来区分后代选择器:是用空格来分隔开来 例如<h1>一个<span>人</span>的战争</h1> 就是h1 span{}子代选择器:用特殊符号> 例如 h1>span{}
2.第二从用法上区分后代选择器html部分:<ul class=”study”> <li>物理 <ul> <li>力学</li> <li>声学</li> <li>电磁学</li> </ul> </li> <li>数学 <ul> <li>微积分</li> <li>概率论</li> <li>博弈论</li> </ul> </li> </ul> css部分//使用子代选择器的效果.study >li{ border:1px solid red;/*只给物理和数学加一个红色方框*/}//使用后代选择器的效果.study li{ border:1px solid red;/*给物理 力学 声学 电磁学 和数学 微积分 概率论博弈论都加一个红色方框*/}这说明子代是他是单传只给物理和数学就断子绝孙,后代是一代传一代。
子代选择器时效果图:
后代选择器时效果图:
@ css3中伪类选择器由什么组成?
w3c规范中伪类有:
active、hover、link、visited 【css1】
所有主流浏览器都支持以上伪类,但是只在对标签上的支持最好。
【css2】的有3个
focus : 如果规定了<!doctype>,将在主流浏览器&ie8+中支持(否则ie不支持)
first-child:必须声明<!doctype>才能够确保在ie中正常支持
lang:如果规定了<!doctype>,将在主流浏览器&ie8+中支持(否则ie不支持)
@ css3和css一样吗?
CSS3是CSS的子集,CSS3是最新的标准,提供了很多好用的新属性,提升了网页的表现性。
CSS3提供了更好用的选择器最新的CSS3中,对伪类、伪元素选择器做了严格的规范。有了伪类后,不用在div标签里面添加额外的元素完成一些DOM操作,可以通过::before,::after完成,代码简洁明了。对于鼠标的操作,也可以通过::hover等类似的操作完成。非常高效。还有::first–child等类似的选择器去操作子元素。
CSS3使动画效果越来越方便css3里面通过animation来完成动画,设置@keyframes即可,一些轻量级的动画不必再通过js完成。
CSS3完成圆角、阴影美化更方便以前的css完成类似的功能只能通过图片做背景,现在只需要border-radius、boxshadow即可。非常高效简洁。
CSS3提供了全新的盒模型这个特性十分有用。原来的盒模型width=content.+border+padding。你规定了width.每次都要自己计算,现在有了boder-box不用这么麻烦了。
CSS3的flex布局是最强大的IE已死,不需要再考虑它的兼容性!!!用flex布局,节省很多时间,节省的时间可以学很多东西,而不是浪费时间去适应落后的ie!!!
还有很多好用的css3特性,这个版本提供了巨大的生产力!!!很感谢它,期待下一个grid布局~
以上是偶的看法~