首页 > 编程知识 正文

样式选择器的优先级顺序,标签选择器和类选择器优先级

时间:2023-05-03 22:34:34 阅读:48890 作者:2877

一方面,选择器CSS选择器是CSS规则的第一部分

元素和其他部分的组合,以告诉浏览器应该在应用规则中选择哪个HTML元素作为CSS属性值

在选择器中选择的元素称为“选择器对象”

我们从Html结构开始

divid=' box ' divclass=' one ' pclass=' one _1'/PP class=' one _1'/p/divdivclass=' two '/divdivclass=

选择id选择器(#box )、id为box的元素

类选择器. one,选择类名为one的所有元素

标签选择器(div ),选择标签为div的所有元素

后代选择器#box div,id为box元素内部的所有div元素都将被选中

子选择器(.oneone_1)选择父元素为. one的所有. one_1的元素

相邻同胞选择器(.one .two )选择紧跟在. one之后的所有. two元素

选择组选择器(div、p )、div和p的所有元素

有些选择器使用频率相对较少:

伪类选择器

:link :“选择未访问的链接”:visited“选择已访问的链接”:active“选择活动链接”:hover“鼠标指针

:first-letter :用于选择指定选择器的第一个字符的:first-line :选择指定选择器的第一行:before:选择器,并在选定元素的内容之前选择内容:

选择具有[attribute]attribute属性的元素选择所有使用[ attribute=value ] attribute=value的元素[attribute~~=value]attribute

层次选择器(p~ul ),选择前面有p元素的每个ul元素

伪类选择器

:first-of-type父元素的第一个元素:last-of-type父元素的最后一个元素:only-of-type父元素的特定类型的唯一子元素:only-child父元素中唯一的子元素3: nth-th th-last-of-type(n )选择父元素的第n个子元素,然后选择:last-child父元素的最后一个元素:root设置HTML文档:empty空元素:enabled

attribute *=value :选择属性属性值中包含value的所有元素[ attribute ^=value ] :选择属性开头为value的所有元素[ attribute $

内联ID选择器类选择器标签选择器

对于特定的计算层,优先级由a、b、c和d值决定。 其中,值的计算规则如下:

如果存在内联样式,则A=1,否则A=0

b的值与ID选择器显示的次数相同

c的值等于类选择器、属性选择器和伪类发生的总数

d的值等于标签选择器和伪元素发生的总次数

现在举个例子:

#nav-globalullia.nav-link应用上述算法,依次求出A B C D的值。

因为没有内联样式,所以A=0

ID选择器共计出现1次,B=1

类选择器出现一次,属性选择器出现0次,伪类选择器出现0次,因此c=(10 )=1

标签选择器出现3次,伪要素出现0次,因此D=(3 0 )=3

以上算出的a、b、c、d可以简单地记为(0、1、1、3 )

知道了优先顺序的计算方法后,看看比较规则吧。

从左向右依次进行

比较 ,较大者优先级更高

如果相等,则继续往右移动一位进行比较

如果4位全部相等,则后面的会覆盖前面的

经过上面的优先级计算规则,我们知道内联样式的优先级最高,如果外部样式需要覆盖内联样式,就需要使用!important

三、继承属性

在css中,继承是指的是给父元素设置一些属性,后代元素会自动拥有这些属性

关于继承属性,可以分成:

字体系列属性

font:组合字体font-family:规定元素的字体系列font-weight:设置字体的粗细font-size:设置字体的尺寸font-style:定义字体的风格font-variant:偏大或偏小的字体

文本系列属性

text-indent:文本缩进text-align:文本水平line-height:行高word-spacing:增加或减少单词间的空白letter-spacing:增加或减少字符间的空白text-transform:控制文本大小写direction:规定文本的书写方向color:文本颜色

元素可见性

visibility

表格布局属性

caption-side:定位表格标题位置border-collapse:合并表格边框border-spacing:设置相邻单元格的边框间的距离empty-cells:单元格的边框的出现与消失table-layout:表格的宽度由什么决定

列表属性

list-style-type:文字前面的小点点样式list-style-position:小点点位置list-style:以上的属性可通过这属性集合

引用

quotes:设置嵌套引用的引号类型

光标属性

cursor:箭头可以变成需要的形状

继承中比较特殊的几点:

a 标签的字体颜色不能被继承

h1-h6标签字体的大下也是不能被继承的

无继承的属性

display

文本属性:vertical-align、text-decoration

盒子模型的属性:宽度、高度、内外边距、边框等

背景属性:背景图片、颜色、位置等

定位属性:浮动、清除浮动、定位position等

生成内容属性:content、counter-reset、counter-increment

轮廓样式属性:outline-style、outline-width、outline-color、outline

页面样式属性:size、page-break-before、page-break-after

参考文献

https://www.html.cn/qa/css3/13444.html

https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/Selectors



-- The End --

系列正在更新:2/20

点击下方卡片解锁更多

创作不易,星标、点赞、在看 三连支持

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。