CSS选择器以及优先级

1. 常用选择器

  1. ID选择器:id表示身份,在页面中元素的id值不允许重复,因此id选择器只能选择单个元素。在style标签里面的格式为:#id名称{样式内容}
    如:
    #navigation { height: 80px; line-height: 80px; text-align: center; background-color: white; }
    也可以针对单个元素里面的某个元素生效,比如针对某个div元素里面的图片生效,防止影响到其他元素的图片:#banner img { width: 100%; }

  2. 标签选择器:根据标签名称选择对应的所有标签。在style标签里面的格式为:标签名称{样式内容}
    如:

		html {
            background: #ddd;
        }
        body {
            margin: 0;
        }
  1. 类别选择器:选择拥有该类别的多个元素,通过class来引用。在style标签中的定义格式:.类别名称{样式内容},在标签中的使用格式:class="类别名称"
    如:
		.nav {
            text-decoration: none; color: black; margin: 0 15px;
        }
  1. 属性选择器:
    在这里插入图片描述
  2. 伪类选择器:
    在这里插入图片描述

顺便附上一个网页的代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html {
            background: #ddd;
        }
        body {
            margin: 0;
        }
        #navigation {
            height: 80px; line-height: 80px; text-align: center; background-color: white;
        }
        #bottom {
            height: 40px; line-height: 40px; text-align: center; font-size: 15px; color: gray;
        }
        .nav {
            text-decoration: none; color: black; margin: 0 15px;
        }
        #banner img {
            width: 100%;
        }
    </style>
</head>

<body>
    <!-- banner: 横幅 navigation: 导航 bottom: 底部
        div容器的特点:一个空的div,默认宽度为100%,高度为0
    -->
    <div id="banner">
        <img src="./imgs/1.jpg" class="ban">
    </div>
    <div id="navigation">
        <a href="" class="nav">首页</a>
        <a href="" class="nav">关于王力</a>
        <a href="" class="nav">产品世界</a>
        <a href="" class="nav">新闻中心</a>
        <a href="" class="nav">网络事件</a>
        <a href="" class="nav">联系我们</a>
        <a href="" class="nav">网络新闻</a>
    </div>
    <div id="bottom">
        版权所有:浙江王力
    </div>
</body>

</html>

实现效果:
在这里插入图片描述

2. 样式表的层叠

作用于同一个元素上的多个样式产生冲突的情况经常不可避免的发生,当多个样式发生重叠时,优先级别高的样式会生效。

  1. CSS 优先规则1: 最近的祖先样式比其他祖先样式优先级高。

例如:

<!-- 类名为 son 的 div 的 color 为 blue -->
<div style="color: red">
    <div style="color: blue">
        <div class="son"></div>
    </div>
</div>
  1. CSS 优先规则2:"直接样式"比"祖先样式"优先级高。

例如:

<!-- 类名为 son 的 div 的 color 为 blue -->
<div style="color: red">
    <div class="son" style="color: blue"></div>
</div>
  1. CSS 优先规则3:优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器。

例如:

// HTML
<div class="content-class" id="content-id" style="color: black"></div>

// CSS
#content-id {
    color: red;
}
.content-class {
    color: blue;
}
div {
    color: grey;
}

最终的 color 为 black,因为内联样式比其他选择器的优先级高。

  1. CSS 优先规则4:计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。

例如:

// HTML
<div id="con-id">
    <span class="con-span"></span>
</div>

// CSS
#con-id span {
    color: red;
}
div .con-span {
    color: blue;
}

由规则 4 可见,<span>的 color 为 red。

  1. CSS 优先规则5:属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。

例如:

// HTML
<div class="father">
    <p class="son"></p>
</div>

// CSS
p {
    background: red !important;
}
.father .son {
    background: blue;
}

虽然 .father .son 拥有更高的权值,但选择器 p 中的 background 属性被插入了 !important, 所以在这 <p>的 background 为 red。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS选择器是用于选择HTML文档中的元素的模式。常见的CSS选择器包括: 1. 元素选择器:通过元素的标签名选择元素,如`p`选择所有的段落元素。 2. 类选择器:通过元素的class属性选择元素,使用`.`符号,如`.container`选择class为"container"的元素。 3. ID选择器:通过元素的id属性选择元素,使用`#`符号,如`#header`选择id为"header"的元素。 4. 属性选择器:通过元素的属性选择元素,如`[type="text"]`选择所有type属性值为"text"的元素。 5. 后代选择器:通过元素的后代关系选择元素,使用空格分隔,如`.container p`选择class为"container"的元素内部的所有段落元素。 6. 子元素选择器:通过元素的直接子元素关系选择元素,使用`>`符号,如`.container > p`选择class为"container"的元素下的直接子元素中的所有段落元素。 7. 相邻兄弟选择器:通过元素的相邻兄弟关系选择元素,使用`+`符号,如`h2 + p`选择紧接在h2元素后面的p元素。 8. 伪类选择器:通过元素的状态或位置选择元素,如`:hover`选择鼠标悬停的元素。 CSS选择器优先级表示了当多个选择器同时应用于同一个元素时,哪个选择器的样式规则会被应用。通常,优先级的计算规则如下: 1. ID选择器优先级最高,为100。 2. 类选择器、属性选择器和伪类选择器优先级为10。 3. 元素选择器和伪元素选择器优先级为1。 4. 通配符选择器和继承的样式没有优先级,其优先级为0。 如果多个选择器具有相同的优先级,则后面出现的选择器会覆盖前面出现的选择器。如果多个选择器具有不同的优先级,则优先级高的选择器的样式规则会被应用。 需要注意的是,使用`!important`声明可以提升样式规则的优先级,但是过度使用会导致样式难以维护和调试,应尽量避免滥用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值