您现在的位置是:网站首页> 编程资料编程资料
CSS控制样式的三种方式(优先级对比验证)CSS选择器种类、优先级与匹配原理详解CSS优先级的相关知识详细介绍网页css优先级为您详细解读css样式优先级及层叠的顺序排序探讨CSS层叠样式表之CSS解析机制的优先级及样式覆盖问题探讨CSS优先级和!important与IE6的BUG讨论及解决方案IE6下CSS多类选择符优先级不起作用的bug分析及解决方法css样式的优先级究竟庞杂到什么程度css选择器优先级深入理解同级情况下CSS的优先级探讨
2021-09-07
894人已围观
简介 大家都知道,CSS的中文名叫做层叠样式表,而CSS在控制样式的时候,有三种引入方式,这里简单介绍下CSS控制样式的三种方式
好了,直入主题,大家都知道,CSS的中文名叫做层叠样式表,而CSS在控制样式的时候,有三种引入方式,分别是:
1>外部样式表 : 将样式规则直接写在*.css文件中,然后再*.html页面中通过标签引入的方式
2>内部样式表 :(位于
3>内联样式 :(在 HTML 元素内部)
按照W3School网站(点这里直达)的说法,当同一个 HTML 元素被不止一个样式定义时,它们是有优先级之分的,如下,将优先级从小到大排列出来,其中4的优先级最高:
1.浏览器缺省设置
2.外部样式表
3.内部样式表(位于
4.内联样式(在 HTML 元素内部)
对于这个结论,相信大家一定有很多疑问,而网上很多都是直接对官网的内容进行复制然后粘贴发布就算了,让我们非常厌倦和烦恼,所以,在这里让我们一起来验证对比下。
注意:本次验证主要针对后面3个优先级,关于浏览器缺省设置这个,相信大家都知道,他一定是最低的,我们在此就不过多的举例验证了。
一、验证环境的描述
浏览器:FireFox 22.0
语言:HTML 4.01/CSS
开发工具:Aptana Studio 3
二、使用三种方式直接对标签进行元素定义样式
1>首先,我们先直接使用外部样式表来定义div标签的样式:
xiaoxuetu.css
div {
color:blue
}
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:
下面我们开始验证吧。
2>外部样式表 VS 内部样式表(先定义内部样式表,再引入外部样式表定义文件) 加入内部样式表,也就是说,直接在
标签中定义样式规则,这个时候我们修改一下xiaoxuetu.html中的代码:xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:
得出优先级结果:外部样式表 > 内部样式表
3>外部样式表 VS 内部样式表(先引入外部样式表定义文件,再定义内部样式表)这步很简单,其实就是直接将link标签剪切移动到上面到head标签中定义内部样式表的前面:
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

得出优先级结果:内部样式表 > 外部样式表
从<2>和<3>这两部测试我们可以知道,在直接对标签的样式进行定义时,外部样式表和内部样式表的优先与他们的引入顺序有关,嘿嘿,是不是很庆幸没有完全相信官网所说的咧……
4>外部样式表 VS 内联样式 直接在div标签中定义样式,这个时候我们修改下xiaoxuetu.html的代码:
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

得出优先级结果:内联样式 > 外部样式表
5>内联样式 VS 内部样式表,这个时候我们修改下xiaoxuetu.html代码:
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

得出优先级结果:内联样式 > 内部样式表
从上面步骤<2>到<5>的对比中我们可以知道:内部样式的优先级是最大的,而内部样式表和外部样式表的优先级得看他们的引入和定义顺序,如果先用内部样式表定义了样式,然后再引入通过外部样式表定义的样式,你们外部样式表的样式将会覆盖内部样式表定义的样式,反之亦是一样。
当然,这个情况只是用id或者class选择的时候,也是一样的。如果对一个标签的样式定义既有class也有id选择器的时候,同时又包含了三种样式定义方式的,就得先看完下面的优先级测试了。
三、判断用id、class以及标签选择器定义样式的优先级
本次测试中,为了减少其他因素的影响,只采用内部样式表来定义样式,同时分别使用了ID选择器和Class选择器来选择使用样式的标签。
1>三种方式并存的时候
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

得出优先级结果 id选择器 > class选择器 > 标签选择器
2>当只有两个class或者两个id的时候
xiaoxuetu.html
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

得出优先级结果:当且仅当有两个或者是多个class或者id的时候,谁在前面就谁的优先级高。
3>只有标签div选择器的时候
xiaoxuetu.html(蓝色样式先,红色样式后)
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

xiaoxuetu2.html(红色样式先,蓝色样式后)
"http://www.w3.org/TR/html4/loose.dtd">
显示效果:

从两个结果我们可以知道,当只有标签选择器的时候,后面定义的样式表的优先级就越高。
四、总结
1.当只使用id选择器、class选择器或者标签选择器的时候,不管是使用多少种样式表定义方式,都是内嵌样式的优先级最高,接下来外部样式表和内部样式表的就得看他们的引入顺序了;
2.当只使用id选择器或者class选择器的时候,同一个标签内不管使用了多少个,都是排在前面的优先级更高;
3.当只使用标签选择器的时候,如果定义了多个一样的,你们写在最后面的标签选择器生效,也就是它的优先级最高;
4.当同一个标签中既有id选择器,又有class选择器,同时又有标签选择器的时候,优先级的次序是id选择器 > class选择器 > 标签选择器;
5.当每一种都有的时候,那就根据具体情况具体分析吧,嘿嘿,哈哈……
恩,这篇文章我很用心写的哦,如果大家觉得好,麻烦点击一下赞吧,又或者你有什么疑问或者不一样的意见,欢迎留言讨论哦,因为白天要上班,所以我会在晚上有空的时候及时处理的,还请见谅哈。
转载请注明出处:http://www.cnblogs.com/xiaoxuetu/
相关内容
- CSS Float布局过程与老生常谈的三栏布局 CSS经典三栏布局方案(6种方法)浅谈CSS三栏布局的N种实现CSS实现三栏布局的四种方法示例CSS三栏布局探讨——中间固定宽度两边自适应宽度DIV+CSS 三栏布局实例代码css实现三栏布局的几种方法及优缺点
- CSS line-height行高上下居中垂直居中样式属性解决line-height=height元素高度但是文字并没有垂直居中的问题深入理解CSS行高line-height与文本垂直居中的原理line-height使文本居中的3像素bug问题-CSS教程-网页制作-网页教学网详解HTML中字体使用line-height依然不能垂直居中解决办法
- IE.JS解决IE兼容性问题方法汇总浅谈原生页面兼容IE9问题的解决方案新版chrome浏览器设置允许跨域的实现css hack之\9和\0就可能对hack IE11\IE9\IE8无效css区分ie8/ie9/ie10/ie11 chrome firefox的代码解决CSS浏览器兼容性问题的4种方案常见的浏览器兼容性问题(小结)border-radius IE8兼容处理的方法浅谈遇到的几个浏览器兼容性问题base64图片在各种浏览器的兼容性处理 对常见的css属性进行浏览器兼容性总结(推荐)
- CSS3 实用技巧:实现黑白图像效果示例代码css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- CSS伪类对象before和after的用法实例详解CSS中:before和:after伪元素使用的奇技淫巧CSS中灵活使用:before和:afterCSS中的before和:after伪元素使用详解使用before和:after伪类制作css3圆形按钮CSS伪元素 :before, :after, box-shadow应用那些你所不知的CSS ::before 和::after 伪元素用法
- CSS工作原理及CSS规则命名介绍CSS命名规则和命名方法DIV+CSS命名规范全记录CSS书写规范、顺序和命名规则HTML,CSS的命名习惯总结css命名不能以数字开头 CSS命名规范参考及书写注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则
- 浅析常用的浏览器私有属性CSS的私有属性小结(针对FireFox浏览器)-CSS教程-网页制作-网页教学网CSS中不为人知Zoom属性的使用介绍(IE私有属性)
- 图片垂直居中css写法兼容ie6css图片垂直居中 css中如何实现图片垂直居中div图片垂直居中 如何使div中图片垂直居中整理CSS中遇到的一些常见问题(Hack标识/固定容器/图片垂直居中)CSS让高度不确定图片垂直居中的几种技巧CSS图片垂直居中方法整理集合 !(常见问题解答)CSS图片垂直居中实现方法详解 让图片垂直居中的使用方法css实现的让图片垂直居中的方法Li list-style-image 图片垂直居中CSS让图片垂直居中和底端对齐的代码-CSS教程-网页制作-网页教学网
- ul里不能直接嵌套div(在ie7以前版本)设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- 相邻div实现一个跟着另一个自适应高度示例代码设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法