头闻号

深圳市优品五金工艺有限公司

冲压加工|金属工艺品|家居用品加工|书写板、擦|办公摆挂饰|照明灯具设计

首页 > 新闻中心 > 科技常识:css基础知识之选择器使用示例
科技常识:css基础知识之选择器使用示例
发布时间:2024-12-24 08:47:45        浏览次数:5        返回列表

今天小编跟大家讲解下有关css基础知识之选择器使用示例 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关css基础知识之选择器使用示例 的相关资料,希望小伙伴们看了有所帮助。

在编写CSS代码的时候 我们会出现多个样式规则作用于用一个元素的情况 例如

复制代码代码如下:header> <nav class="nav-main"id="navigation">Here background</nav></header>header nav { background-color: red;}#navigation { background-color: green;}</p><p>.nav-main { background-color: blue;}

以上三个样式规则都会作用于 ID 值为 "navigation" 的 nav 标签 最终哪个样式规则会生效呢 这取决于选择器的特殊性(或优先级)高低 选择器特殊性高的样式会覆盖特殊性低的样式 经过测试 nav 标签的背景会显示为 green 绿色。

那么选择器特殊性是如何计算的呢

通常 我们使用四个以逗号分隔的数字来表示特殊性 比如:

1.每个元素选择器贡献特殊性为 0 0 0 1;2.每个类、伪类或者属性选择器的特殊性为 0 0 1 0;3.每个ID选择器的特殊性为 0 1 0 0.计算一个组合选择器的特殊性的时候就先计算各种选择器的数量以及对应的特殊性再相加 比如

复制代码代码如下:div ul ul li </p><p>div.aside ul li </p><p>a:hover </p><p>div.navlinks a:hover </p><p>#title em </p><p>h1#title em </p><p>*

注:多类选择器有多少个类就计算多少个类 不支持多类选择器的 IE6 会理解为一个类

比较选择器特殊性高低直接从左向右依次比较 数字大的则优先级更高 如果相同就比较下一位 所有位都相同则优先级是一样高 当选择器优先级一样高的时候后申明的样式会覆盖前面申明的样式

每个级别的优先级值是相互独立的 13个元素选择器写在一堆也不会比1个类选择器的特殊性高

第一个0是用于行内样式的 且仅用于行内样式复制代码代码如下:<nav style="background-color: gray;"></nav> <!-- 1,0,0,0 -->有一样东西可以无视特殊性 那就是 !important。使用 !important 可以把任何样式规则标记为重要复制代码代码如下:.nav-main { background-color: blue !important; color: #666;}

基本上 任何重要的样式规则都可以覆盖没有标记为重要的样式规则

复制代码代码如下:<div id="gohome"><a href="https://www.aidi.net.cn/"id="home">Home</a></div>div#gohome a#home { color: red;}</p><p>div a { color: green !important;}上面的代码会得到一个绿色 green 的链接 第一个规则有非常高的特殊性(0,2,0,2)

但是在 !important 面前一样没用 除非我们给第一个规则也标记为重要

复制代码代码如下:div#gohome a#home { color: red !important;}</p><p>div a { color: green !important;}

这时候链接就变为红色 red 了 都标记为重要的情况下 则会使用前面提到的特殊性规则来解决

所以使用 !important 的时候应当权衡 尽量不要用

另外 IE6 是支持 !important 的 只是不完全支持而已 当在同一个选择器中 在标记为重要的样式规则之后又重新定义了此样式则 !important 将失效复制代码代码如下:.header { color: red !important; color: green; }再有就是 IE6/7 可以允许在 !important 后面添加一些文字 依然能识别复制代码代码如下:.header { color: red !important ie; }

来源:爱蒂网