十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、CSS的优先级
站在用户的角度思考问题,与客户深入沟通,找到娄星网站设计与娄星网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟空间、企业邮箱。业务覆盖娄星地区。
1、标有"!important"的规则有最高优先级
一个样式规则可以有一个"important"附带标签,表示该样式规则具有最高优先级。例如下面例子中,前景色被标为important。
H1{color:black !importan; font-family:sans-serif}
注意:这种声明容易引起混乱,因此通常使用得较少。
2、创作者规则优先级高于浏览者规则
浏览器允许浏览者创建样式规则以覆盖系统缺省值。在此情况下,由网页创作者明确设定得样式优先级较高,而浏览者设置得样式规则优先级较低。
3、更特殊得规则优先于不够特殊的规则
在决定特殊性时,selector中的ID属性有最高优先级。基于ID selector的优先级可通过计数Selector中类属性的数量确定,数量越多优先级越高。假如规则仍然无法确定优先级,则HTML元素名的数量决定了特殊性。
4、在同一个级别的情况下,最后指定的规则有优先权
假如两个或更多的规定在应用了前三个规定具有相同优先级,则后给出的规则优先于早先给出的规则。
如果在网页的HEAD标记中同时使用了STYLE标记符(指定嵌入式样式)和LINK标记符(指定链接式样式),并且这两个样式指定中同时应用了具有同一优先级别的样式,则STYLE标记符和LINK标记符的先后顺序将决定样式的优先级。
例如,如果在LINK所链接的样式表(mycss.css)中定义了以下一条样式规则:
H1{color:red}
同时在嵌入式样式定义中也定义了一条规则:
H1{color:yellow}
在网页中的样式定义如下所示:
HEAD
LINK rel=stylesheet href="mycss.css" type="text/css"
STYLE
!--
H1{color:yellow}
--
/STYLE
/HEAD
由于STYLE标记符中定义的样式后出现,因此它具有更高的优先级,所以网页中H1标记符的内容将显示为黄色(yellow)。同样,如果将Link标记符的位置移动到STYLE/STYLE标记符之后,则网页中H1标记符的内容将显示为红色(red)。
另外,由于直插式样式(使用HTNL标记的style属性设置的样式)的位置最接近于样式作用的标记符,因此它通常具有高优先级。
在样式后面加上一个 !important;
比如这样 padding: 0 !important;
1、新建一个html文件,命名为test.html
2、在test.html文件内,使用css设置页面所有的div宽度为300px,高度为300px,div的位置为绝对定位。
3、在test.html文件内,创建三个div,并用文字标识,分别为底层div、中层div、最顶层div。
4、在test.html文件内,分别给三个div设置class属性为one、two、three,用于下面对类名进行样式设置。
5、在css标签内,设置类名为one的div样式,设置其背景颜色为红色,距离页面左边缘为0,距离页面上边缘为0,同时使用z-index设置其层级为1。
6、在css标签内,设置类名为two的div样式,设置其背景颜色为黄色,距离页面左边缘为50px,距离页面上边缘为50px,同时使用z-index设置其层级为2,即在类名为one的div的上面。
7、在css标签内,设置类名为three的div样式,设置其背景颜色为粉红色,距离页面左边缘为100px,距离页面上边缘为100px,同时使用z-index设置其层级为3,即在页面三个div中的最顶层。
8、在浏览器打开test.html文件,查看实现的层级效果。
由高到低依次是内联样式,即在标签里面写上style="**" 然后是内链样式,即在head钞票里写上style 最后一种是外联样式 在head里引入link标签,纯手打。
一:内嵌式
在HTML文档头部定义多个style元素,实现多个样式表,作用于当前页面。
二:外部引用式
①直接在HTML文档头部引入css样式文件,作用于引入当前文件的所有页面。
三:内联式
使用当前元素的style属性进行样式设置,只作用于当前元素。
内联式内嵌式外部引用式
选择器优先级:
通常我们可以将CSS的优先级由高到低分为六组:
1、无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。IE 6不支持这个属性;
2、第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
3、第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
4、第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
5、第五级由一个或多个 类型选择器定义。如 div{margin:6px;} 覆盖 *{margin:10px;} 。
最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。
另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。如 #i100
*.c20 *.c10{} 的优先级就会高于 #i100 *.c10 div p span em{}
,这是由于前者拥有一个第三级和两个第四级的选择器而后者第三级和第四级的选择器各为一个,当然前者优先级会比较高。相同级别的优先级:
当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:
1、位于head/标签里的style/中所定义的CSS拥有最高级的优先权。
2、第二级的优先属性由位于 style/标签中的 @import 引入样式表所定义。
3、第三级的优先属性由link/标签所引入的样式表定义。
4、第四级的优先属性由link/标签所引入的样式表内的 @import 导入样式表定义。
5、第五级优先的样式由用户设定。
最低级的优先权由浏览器默认。