发布网友 发布时间:2024-09-26 18:49
共1个回答
热心网友 时间:2024-10-11 10:40
css样式引入有哪几种方式,优先级是怎么样的?按优先级:前端优先读取正序。正规规范优先倒序。
style=这样肯定是最优的,但也是最不推荐的。前端标签直接写入。
延伸阅读:读取优先,灵活使用,如大量页面,每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
styletype="text/css"这样属于第二读取方式。直接写在对应的页面。
延伸阅读:每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
linktype="text/css"href="引用CSS文件第*。这全局引入.
延伸阅读:全局CSS。可以分离代码及外部引入,简单快捷。也是现在都在用的。
css的优先级顺序是怎样的
当创建的样式表越来越复杂时,一个标签的样式将会受到越来越多的影响,这种影响可能来自周围的标签,也可能来自其自身。下面我们从这两方面去看看CSS样式的优先级。
CSS的继承性
CSS的继承特性指的是应用在一个标签上的那些CSS属性被传到其子标签上。看下面的HTML结构:
div
p/p/div
如果?div?有个属性?color:red,则这个属性将被?p?继承,即?p?也拥有属性?color:red。
由上可见,当网页比较复杂,HTML结构嵌套较深时,一个标签的样式将深受其祖先标签样式的影响。影响的规则是:
CSS优先规则1:?最近的祖先样式比其他祖先样式优先级高。
例1:
!--类名为son的div的color为blue--divstyle="color:red"
divstyle="color:blue"
divclass="son"/div
/div/div
如果我们把一个标签从祖先那里继承来的而自身没有的属性叫做"祖先样式",那么"直接样式"就是一个标签直接拥有的属性。又有如下规则:
CSS优先规则2:"直接样式"比"祖先样式"优先级高。
例2:
!--类名为son的div的color为blue--divstyle="color:red"
divclass="son"style="color:blue"/div/div
选择器的优先级
上面讨论了一个标签从祖先继承来的属性,现在讨论标签自有的属性。在讨论CSS优先级之前,先说说CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
CSS优先规则3:优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
例3:
//HTMLdivclass="content-class"id="content-id"style="color:black"/div//CSS#content-id{
??color:red;}.content-class{
??color:blue;}div{
??color:grey;}
最终的color为black,因为内联样式比其他选择器的优先级高。
所有CSS的选择符由上述7种基础的选择器或者组合而成,组合的方式有3种:
后代选择符:.father.child{}
子选择符:.father.child{}
相邻选择符:.bro1+.bro2{}
当一个标签同时被多个选择符选中,我们便需要确定这些选择符的优先级。我们有如下规则:
CSS优先规则4:计算选择符中ID选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按a、b、c的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中a、b、c都相等,则按照"就近原则"来判断。
例4:
//HTMLdivid="con-id"
??spanclass="con-span"/span/div//CSS#con-idspan{
??color:red;}div.con-span{
??color:blue;}
由规则4可见,span的color为red。
如果外部样式表和内部样式表中的样式发生冲突会出现什么情况呢?这与样式表在HTML文件中所处的位置有关。样式被应用的位置越在下面则优先级越高,其实这仍然可以用规则4来解释。
例5:
//HTMLlinkrel="stylesheet"type="text/css"href="style-link.css"styletype="text/css"@importurl(style-import.css);div{
??background:blue;}/stylediv/div//style-link.cssdiv{
??background:lime;}//style-import.cssdiv{
??background:grey;}
从顺序上看,内部样式在最下面,被最晚引用,所以div的背景色为blue。
上面代码中,@import?语句必须出现在内部样式之前,否则文件引入无效。当然不推荐使用?@import?的方式引用外部样式文件,原因见另一篇博客:CSS引入方式。
CSS还提供了一种可以完全忽略以上规则的方法,当你一定、必须确保某一个特定的属性要显示时,可以使用这个技术。
CSS优先规则5:属性后插有?!important?的属性拥有最高优先级。若同时插有?!important,则再利用规则3、4判断优先级。
例6:
//HTMLdivclass="father"
??pclass="son"/p/div//CSSp{
??background:red!important;}.father.son{
??background:blue;}
虽然.father.son拥有更高的权值,但选择器p中的background属性被插入了!important,所以p的background为red。
错误的说法
在学习过程中,你可能发现给选择器加权值的说法,即ID选择器权值为100,类选择器权值为10,标签选择器权值为1,当一个选择器由多个ID选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。这种说法其实是有问题的。比如一个由11个类选择器组成的选择器和一个由1个ID选择器组成的选择器指向同一个标签,按理说110100,应该应用前者的样式,然而事实是应用后者的样式。错误的原因是:权重的进制是并不是十进制,CSS权重进制在IE6为256,后来扩大到了65536,现代浏览器则采用更大的数量。。还是拿刚刚的例子说明。11个类选择器组成的选择器的总权值为110,但因为11个均为类选择器,所以其实总权值最多不能超过100,你可以理解为99.99,所以最终应用后者样式。
css的优先级是什么,权重如何计算(1)优先级就近原则,同权重以最近者为准载入样式以最后载入的样式为准;
同权重下:内联样式表(标签内部)嵌入样式表(当前文件)外部样式表(外部文件)
!importidclasstag
Import比内联样式优先级高
层叠重要度次序:
带有important的用户样式
带有important的作者样式
作者样式
用户样式
浏览器/用户代理应用的样式
(2)权重分为abcd,4个等级,每个等级以10为基数分别是
内联样式(或行内样式)a=1
b=ID选择器个数
c=类、伪类和属性选择器的个数
d=元素选择器和伪元素选择器的个数
CSS优先级继承得到的样式的优先级是最低的;最近的祖先样式比其他祖先样式优先级高;"直接样式"比"祖先样式"优先级高。
1、无继承性的属性
①?display:规定元素应该生成的框的类型
②?文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
③?盒子模型的属性:width、height、margin、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
④?背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment
⑤?定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
⑥?生成内容属性:content、counter-reset、counter-increment
⑦?轮廓样式属性:outline-style、outline-width、outline-color、outline
⑧?页面样式属性:size、page-break-before、page-break-after
⑨?声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-ring
2、有继承性的属性
①?字体系列属性
font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的font-family进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个aspect值,这样就可以保持首选字体的x-height。
②?文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色a元素除外
③?元素可见性:visibility
④?表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
⑤?列表布局属性:list-style-type、list-style-image、list-style-position、list-style
⑥?生成内容属性:quotes
⑦?光标属性:cursor
⑧?页面样式属性:page、page-break-inside、windows、orphans
⑨?声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
3、所有元素可以继承的属性
①?元素可见性:visibility
②?光标属性:cursor
4、内联元素可以继承的属性
①?字体系列属性
②??除text-indent、text-align之外的文本系列属性
5、块级元素可以继承的属性
???text-indent、text-align
CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
属性后插有?!important?的属性拥有最高优先级
:is()和:not():其伪类在计算选择器数量时当做普通选择器进行计数。
HTML中嵌入CSS的四种方式及优先级,如何选择一:嵌入式
用户可在HTML文档头部定义多个style元素,实现多个样式表。Head
styletype="text/css"
!--
body{
font-family:"宋体";
font-size:12px;
font-style:normal;
line-height:normal;
font-weight:normal;
text-decoration:none;
}
--
/style二:外部引用式
①可以在多个文档间共享样式表,对于较大规模的网站,将CSS样式定义独立成一个一个的文档,可有效地提高效率,并有利于对网站风格的维护。
②可以改变样式表,而无需更改HTML文档,这也与HTML语言内容与形式分开的原则相一致。
③可以根据介质有选择的加载样式表。Head
linkrel="stylesheet"type="text/css"href="Css.css"/
/Head
三:内联式
使用该属性可以直接指定样式,当然,该样式仅能用于该元素的内容,对于另一个同名的元素则不起作用。1、样式的属性内容直接跟在将要修饰的文字标记里[如:
2、具体格式:style="font-size:10px;font-color:#ff0000"
例如:修饰单元格里的文字四:导入样式表
styletype="text/css"
!--
@importurl("css/base.css");
--
/style
第二:四种样式的优先级
如果这上面的四种方式中的两种用于同一个页面后,就会出现优先级的问题,这里我就不再举例子来说明了,大家在下面自己证明一下下面的结论
四种样式的优先级别是(从高至低):行内样式、内嵌样式、链接样式、导入样式。
热心网友 时间:2024-10-11 10:40
css样式引入有哪几种方式,优先级是怎么样的?按优先级:前端优先读取正序。正规规范优先倒序。
style=这样肯定是最优的,但也是最不推荐的。前端标签直接写入。
延伸阅读:读取优先,灵活使用,如大量页面,每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
styletype="text/css"这样属于第二读取方式。直接写在对应的页面。
延伸阅读:每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
linktype="text/css"href="引用CSS文件第*。这全局引入.
延伸阅读:全局CSS。可以分离代码及外部引入,简单快捷。也是现在都在用的。
css的优先级顺序是怎样的
当创建的样式表越来越复杂时,一个标签的样式将会受到越来越多的影响,这种影响可能来自周围的标签,也可能来自其自身。下面我们从这两方面去看看CSS样式的优先级。
CSS的继承性
CSS的继承特性指的是应用在一个标签上的那些CSS属性被传到其子标签上。看下面的HTML结构:
div
p/p/div
如果?div?有个属性?color:red,则这个属性将被?p?继承,即?p?也拥有属性?color:red。
由上可见,当网页比较复杂,HTML结构嵌套较深时,一个标签的样式将深受其祖先标签样式的影响。影响的规则是:
CSS优先规则1:?最近的祖先样式比其他祖先样式优先级高。
例1:
!--类名为son的div的color为blue--divstyle="color:red"
divstyle="color:blue"
divclass="son"/div
/div/div
如果我们把一个标签从祖先那里继承来的而自身没有的属性叫做"祖先样式",那么"直接样式"就是一个标签直接拥有的属性。又有如下规则:
CSS优先规则2:"直接样式"比"祖先样式"优先级高。
例2:
!--类名为son的div的color为blue--divstyle="color:red"
divclass="son"style="color:blue"/div/div
选择器的优先级
上面讨论了一个标签从祖先继承来的属性,现在讨论标签自有的属性。在讨论CSS优先级之前,先说说CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
CSS优先规则3:优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
例3:
//HTMLdivclass="content-class"id="content-id"style="color:black"/div//CSS#content-id{
??color:red;}.content-class{
??color:blue;}div{
??color:grey;}
最终的color为black,因为内联样式比其他选择器的优先级高。
所有CSS的选择符由上述7种基础的选择器或者组合而成,组合的方式有3种:
后代选择符:.father.child{}
子选择符:.father.child{}
相邻选择符:.bro1+.bro2{}
当一个标签同时被多个选择符选中,我们便需要确定这些选择符的优先级。我们有如下规则:
CSS优先规则4:计算选择符中ID选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按a、b、c的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中a、b、c都相等,则按照"就近原则"来判断。
例4:
//HTMLdivid="con-id"
??spanclass="con-span"/span/div//CSS#con-idspan{
??color:red;}div.con-span{
??color:blue;}
由规则4可见,span的color为red。
如果外部样式表和内部样式表中的样式发生冲突会出现什么情况呢?这与样式表在HTML文件中所处的位置有关。样式被应用的位置越在下面则优先级越高,其实这仍然可以用规则4来解释。
例5:
//HTMLlinkrel="stylesheet"type="text/css"href="style-link.css"styletype="text/css"@importurl(style-import.css);div{
??background:blue;}/stylediv/div//style-link.cssdiv{
??background:lime;}//style-import.cssdiv{
??background:grey;}
从顺序上看,内部样式在最下面,被最晚引用,所以div的背景色为blue。
上面代码中,@import?语句必须出现在内部样式之前,否则文件引入无效。当然不推荐使用?@import?的方式引用外部样式文件,原因见另一篇博客:CSS引入方式。
CSS还提供了一种可以完全忽略以上规则的方法,当你一定、必须确保某一个特定的属性要显示时,可以使用这个技术。
CSS优先规则5:属性后插有?!important?的属性拥有最高优先级。若同时插有?!important,则再利用规则3、4判断优先级。
例6:
//HTMLdivclass="father"
??pclass="son"/p/div//CSSp{
??background:red!important;}.father.son{
??background:blue;}
虽然.father.son拥有更高的权值,但选择器p中的background属性被插入了!important,所以p的background为red。
错误的说法
在学习过程中,你可能发现给选择器加权值的说法,即ID选择器权值为100,类选择器权值为10,标签选择器权值为1,当一个选择器由多个ID选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。这种说法其实是有问题的。比如一个由11个类选择器组成的选择器和一个由1个ID选择器组成的选择器指向同一个标签,按理说110100,应该应用前者的样式,然而事实是应用后者的样式。错误的原因是:权重的进制是并不是十进制,CSS权重进制在IE6为256,后来扩大到了65536,现代浏览器则采用更大的数量。。还是拿刚刚的例子说明。11个类选择器组成的选择器的总权值为110,但因为11个均为类选择器,所以其实总权值最多不能超过100,你可以理解为99.99,所以最终应用后者样式。
css的优先级是什么,权重如何计算(1)优先级就近原则,同权重以最近者为准载入样式以最后载入的样式为准;
同权重下:内联样式表(标签内部)嵌入样式表(当前文件)外部样式表(外部文件)
!importidclasstag
Import比内联样式优先级高
层叠重要度次序:
带有important的用户样式
带有important的作者样式
作者样式
用户样式
浏览器/用户代理应用的样式
(2)权重分为abcd,4个等级,每个等级以10为基数分别是
内联样式(或行内样式)a=1
b=ID选择器个数
c=类、伪类和属性选择器的个数
d=元素选择器和伪元素选择器的个数
CSS优先级继承得到的样式的优先级是最低的;最近的祖先样式比其他祖先样式优先级高;"直接样式"比"祖先样式"优先级高。
1、无继承性的属性
①?display:规定元素应该生成的框的类型
②?文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
③?盒子模型的属性:width、height、margin、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
④?背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment
⑤?定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
⑥?生成内容属性:content、counter-reset、counter-increment
⑦?轮廓样式属性:outline-style、outline-width、outline-color、outline
⑧?页面样式属性:size、page-break-before、page-break-after
⑨?声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-ring
2、有继承性的属性
①?字体系列属性
font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的font-family进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个aspect值,这样就可以保持首选字体的x-height。
②?文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色a元素除外
③?元素可见性:visibility
④?表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
⑤?列表布局属性:list-style-type、list-style-image、list-style-position、list-style
⑥?生成内容属性:quotes
⑦?光标属性:cursor
⑧?页面样式属性:page、page-break-inside、windows、orphans
⑨?声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
3、所有元素可以继承的属性
①?元素可见性:visibility
②?光标属性:cursor
4、内联元素可以继承的属性
①?字体系列属性
②??除text-indent、text-align之外的文本系列属性
5、块级元素可以继承的属性
???text-indent、text-align
CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
属性后插有?!important?的属性拥有最高优先级
:is()和:not():其伪类在计算选择器数量时当做普通选择器进行计数。
HTML中嵌入CSS的四种方式及优先级,如何选择一:嵌入式
用户可在HTML文档头部定义多个style元素,实现多个样式表。Head
styletype="text/css"
!--
body{
font-family:"宋体";
font-size:12px;
font-style:normal;
line-height:normal;
font-weight:normal;
text-decoration:none;
}
--
/style二:外部引用式
①可以在多个文档间共享样式表,对于较大规模的网站,将CSS样式定义独立成一个一个的文档,可有效地提高效率,并有利于对网站风格的维护。
②可以改变样式表,而无需更改HTML文档,这也与HTML语言内容与形式分开的原则相一致。
③可以根据介质有选择的加载样式表。Head
linkrel="stylesheet"type="text/css"href="Css.css"/
/Head
三:内联式
使用该属性可以直接指定样式,当然,该样式仅能用于该元素的内容,对于另一个同名的元素则不起作用。1、样式的属性内容直接跟在将要修饰的文字标记里[如:
2、具体格式:style="font-size:10px;font-color:#ff0000"
例如:修饰单元格里的文字四:导入样式表
styletype="text/css"
!--
@importurl("css/base.css");
--
/style
第二:四种样式的优先级
如果这上面的四种方式中的两种用于同一个页面后,就会出现优先级的问题,这里我就不再举例子来说明了,大家在下面自己证明一下下面的结论
四种样式的优先级别是(从高至低):行内样式、内嵌样式、链接样式、导入样式。
热心网友 时间:2024-10-11 10:40
css样式引入有哪几种方式,优先级是怎么样的?按优先级:前端优先读取正序。正规规范优先倒序。
style=这样肯定是最优的,但也是最不推荐的。前端标签直接写入。
延伸阅读:读取优先,灵活使用,如大量页面,每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
styletype="text/css"这样属于第二读取方式。直接写在对应的页面。
延伸阅读:每页面都要设置。工作繁琐,大量写入增加代码量。不利优化。
linktype="text/css"href="引用CSS文件第*。这全局引入.
延伸阅读:全局CSS。可以分离代码及外部引入,简单快捷。也是现在都在用的。
css的优先级顺序是怎样的
当创建的样式表越来越复杂时,一个标签的样式将会受到越来越多的影响,这种影响可能来自周围的标签,也可能来自其自身。下面我们从这两方面去看看CSS样式的优先级。
CSS的继承性
CSS的继承特性指的是应用在一个标签上的那些CSS属性被传到其子标签上。看下面的HTML结构:
div
p/p/div
如果?div?有个属性?color:red,则这个属性将被?p?继承,即?p?也拥有属性?color:red。
由上可见,当网页比较复杂,HTML结构嵌套较深时,一个标签的样式将深受其祖先标签样式的影响。影响的规则是:
CSS优先规则1:?最近的祖先样式比其他祖先样式优先级高。
例1:
!--类名为son的div的color为blue--divstyle="color:red"
divstyle="color:blue"
divclass="son"/div
/div/div
如果我们把一个标签从祖先那里继承来的而自身没有的属性叫做"祖先样式",那么"直接样式"就是一个标签直接拥有的属性。又有如下规则:
CSS优先规则2:"直接样式"比"祖先样式"优先级高。
例2:
!--类名为son的div的color为blue--divstyle="color:red"
divclass="son"style="color:blue"/div/div
选择器的优先级
上面讨论了一个标签从祖先继承来的属性,现在讨论标签自有的属性。在讨论CSS优先级之前,先说说CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
CSS优先规则3:优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
例3:
//HTMLdivclass="content-class"id="content-id"style="color:black"/div//CSS#content-id{
??color:red;}.content-class{
??color:blue;}div{
??color:grey;}
最终的color为black,因为内联样式比其他选择器的优先级高。
所有CSS的选择符由上述7种基础的选择器或者组合而成,组合的方式有3种:
后代选择符:.father.child{}
子选择符:.father.child{}
相邻选择符:.bro1+.bro2{}
当一个标签同时被多个选择符选中,我们便需要确定这些选择符的优先级。我们有如下规则:
CSS优先规则4:计算选择符中ID选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按a、b、c的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中a、b、c都相等,则按照"就近原则"来判断。
例4:
//HTMLdivid="con-id"
??spanclass="con-span"/span/div//CSS#con-idspan{
??color:red;}div.con-span{
??color:blue;}
由规则4可见,span的color为red。
如果外部样式表和内部样式表中的样式发生冲突会出现什么情况呢?这与样式表在HTML文件中所处的位置有关。样式被应用的位置越在下面则优先级越高,其实这仍然可以用规则4来解释。
例5:
//HTMLlinkrel="stylesheet"type="text/css"href="style-link.css"styletype="text/css"@importurl(style-import.css);div{
??background:blue;}/stylediv/div//style-link.cssdiv{
??background:lime;}//style-import.cssdiv{
??background:grey;}
从顺序上看,内部样式在最下面,被最晚引用,所以div的背景色为blue。
上面代码中,@import?语句必须出现在内部样式之前,否则文件引入无效。当然不推荐使用?@import?的方式引用外部样式文件,原因见另一篇博客:CSS引入方式。
CSS还提供了一种可以完全忽略以上规则的方法,当你一定、必须确保某一个特定的属性要显示时,可以使用这个技术。
CSS优先规则5:属性后插有?!important?的属性拥有最高优先级。若同时插有?!important,则再利用规则3、4判断优先级。
例6:
//HTMLdivclass="father"
??pclass="son"/p/div//CSSp{
??background:red!important;}.father.son{
??background:blue;}
虽然.father.son拥有更高的权值,但选择器p中的background属性被插入了!important,所以p的background为red。
错误的说法
在学习过程中,你可能发现给选择器加权值的说法,即ID选择器权值为100,类选择器权值为10,标签选择器权值为1,当一个选择器由多个ID选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。这种说法其实是有问题的。比如一个由11个类选择器组成的选择器和一个由1个ID选择器组成的选择器指向同一个标签,按理说110100,应该应用前者的样式,然而事实是应用后者的样式。错误的原因是:权重的进制是并不是十进制,CSS权重进制在IE6为256,后来扩大到了65536,现代浏览器则采用更大的数量。。还是拿刚刚的例子说明。11个类选择器组成的选择器的总权值为110,但因为11个均为类选择器,所以其实总权值最多不能超过100,你可以理解为99.99,所以最终应用后者样式。
css的优先级是什么,权重如何计算(1)优先级就近原则,同权重以最近者为准载入样式以最后载入的样式为准;
同权重下:内联样式表(标签内部)嵌入样式表(当前文件)外部样式表(外部文件)
!importidclasstag
Import比内联样式优先级高
层叠重要度次序:
带有important的用户样式
带有important的作者样式
作者样式
用户样式
浏览器/用户代理应用的样式
(2)权重分为abcd,4个等级,每个等级以10为基数分别是
内联样式(或行内样式)a=1
b=ID选择器个数
c=类、伪类和属性选择器的个数
d=元素选择器和伪元素选择器的个数
CSS优先级继承得到的样式的优先级是最低的;最近的祖先样式比其他祖先样式优先级高;"直接样式"比"祖先样式"优先级高。
1、无继承性的属性
①?display:规定元素应该生成的框的类型
②?文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
③?盒子模型的属性:width、height、margin、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
④?背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment
⑤?定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
⑥?生成内容属性:content、counter-reset、counter-increment
⑦?轮廓样式属性:outline-style、outline-width、outline-color、outline
⑧?页面样式属性:size、page-break-before、page-break-after
⑨?声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-ring
2、有继承性的属性
①?字体系列属性
font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的font-family进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个aspect值,这样就可以保持首选字体的x-height。
②?文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色a元素除外
③?元素可见性:visibility
④?表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
⑤?列表布局属性:list-style-type、list-style-image、list-style-position、list-style
⑥?生成内容属性:quotes
⑦?光标属性:cursor
⑧?页面样式属性:page、page-break-inside、windows、orphans
⑨?声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
3、所有元素可以继承的属性
①?元素可见性:visibility
②?光标属性:cursor
4、内联元素可以继承的属性
①?字体系列属性
②??除text-indent、text-align之外的文本系列属性
5、块级元素可以继承的属性
???text-indent、text-align
CSS7种基础的选择器:
ID选择器,如#id{}
类选择器,如.class{}
属性选择器,如a[href="segmentfault.com"]{}
伪类选择器,如:hover{}
伪元素选择器,如::before{}
标签选择器,如span{}
通配选择器,如*{}
优先级关系:内联样式ID选择器类选择器=属性选择器=伪类选择器标签选择器=伪元素选择器
属性后插有?!important?的属性拥有最高优先级
:is()和:not():其伪类在计算选择器数量时当做普通选择器进行计数。
HTML中嵌入CSS的四种方式及优先级,如何选择一:嵌入式
用户可在HTML文档头部定义多个style元素,实现多个样式表。Head
styletype="text/css"
!--
body{
font-family:"宋体";
font-size:12px;
font-style:normal;
line-height:normal;
font-weight:normal;
text-decoration:none;
}
--
/style二:外部引用式
①可以在多个文档间共享样式表,对于较大规模的网站,将CSS样式定义独立成一个一个的文档,可有效地提高效率,并有利于对网站风格的维护。
②可以改变样式表,而无需更改HTML文档,这也与HTML语言内容与形式分开的原则相一致。
③可以根据介质有选择的加载样式表。Head
linkrel="stylesheet"type="text/css"href="Css.css"/
/Head
三:内联式
使用该属性可以直接指定样式,当然,该样式仅能用于该元素的内容,对于另一个同名的元素则不起作用。1、样式的属性内容直接跟在将要修饰的文字标记里[如:
2、具体格式:style="font-size:10px;font-color:#ff0000"
例如:修饰单元格里的文字四:导入样式表
styletype="text/css"
!--
@importurl("css/base.css");
--
/style
第二:四种样式的优先级
如果这上面的四种方式中的两种用于同一个页面后,就会出现优先级的问题,这里我就不再举例子来说明了,大家在下面自己证明一下下面的结论
四种样式的优先级别是(从高至低):行内样式、内嵌样式、链接样式、导入样式。