Css基础学习——选择器

Css基础学习

1. 选择器

1.1 简单选择器

  1. ID选择器
  2. 元素选择器
  3. 类选择器
  4. 通配符选择器 (*,选中所有元素)
  5. 属性选择器
    根据属性名和属性值选中元素
/* 选中所有具有href属性的元素 */
[href]{
    color:red;
} 

 [href="https://www.sina.com"]{
    color:red;
}
  1. 伪类选择器

选中 某些元素的 某种状态
a标签的
1)link: 超链接未访问时的状态

2)visited: 超链接访问过后的状态

3)hover: 鼠标悬停状态

4)active:激活状态,鼠标按下状态

爱恨法则:love hate

/* 选中鼠标悬停时的a元素 */
a:hover{
    color:red;
} 

“结构伪类选择器”

、 first-child(在一组兄弟元素中的第一个元素)

、 first-of-type(在一组兄弟元素中 其类型的第一个元素)

、 nth-child(选中指定的第几个元素)

、 last-child

、 nth-child( )
(n,2n,5n,n+5=从第5个开始(包含第5个)到最后,-n+5=前5个(包含第5个),)

、 focus(元素聚焦时的样式)

、 checked(单选或多选框被选中的样式)

、disabled(按钮禁用
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

        .item{
            height: 40px;
            margin: 30px 0;
            width: 200px;
            
        }

        .boy{
            border-bottom: 1px solid #ccc;
        }

         .checked{
            width: 14px;
            height: 14px;
            border-radius: 2px;
            border: 1px solid #ccc;
            display: inline-block;
        }

        .item input:checked+.checked::after{
            content: " ";
            display: block;
            width: 10px;
            height: 10px;
            border-radius: 2px;
            background: #008c8c;
            margin: 2px;
        }

        .item input:checked+.checked{
            border: 1px solid #008c8c;
        }

    </style>
</head>
<body>
    <div class="item boy">
        <label >
            <input type="radio">
            <span class="checked"></span>
            <span></span>
        </label>
    </div>
    <div class="item girl">
        <label >
            <input type="radio">
            <span class="checked"></span>
            <span></span>
        </label>
    </div>
</body>
</html>
  1. 伪元素选择器

::before (创建一个伪元素,其将成为匹配选中的元素的第一个子元素 / 在元素内部的前面插入内容)

::after(创建一个伪元素,其将成为匹配选中的元素的最后一个子元素 / 在元素内部的后面插入内容)

<style>
span::before {
    content: "《";
    color: red;
}

span::after {
    content: "》";
    color: red;
} 
</style>
 <p>
        <span>HTML和CSS</span>课程真的是不错呀!
    </p>

注意:

  • before 和 after 必须有 content 属性 (没内容的时候你就写空内容就好。content:“ ”)
  • before 和 after 创建一个元素,但属于行内元素 (所以我们写代码的时候 一般都会写上 display:block)

first-letter(选中元素的第一个字母)

first-line (选中元素中第一行的文字)

selection (选中被用户框选的文字,你可以更改样式)

::placeholder(文本框的提示文字样式设置)

1.2 选择器的组合

  1. 并且
中间不要加空格的
p.red {
    color: red;
}
  1. 后代元素 —— 空格 (最常使用的那个)
  2. 子元素 —— >
孙子就不包括了,但是你可以div>ul>li
  1. 相邻兄弟元素 —— +
  2. 后面出现的所有兄弟元素 —— ~

1.3 选择器的并列

多个选择器, 用逗号分隔

语法糖

2. 层叠

声明冲突:同一个样式,多次应用到同一个元素

层叠:解决声明冲突的过程,浏览器自动处理(权重计算)

2.1 比较重要性

重要性从高到底:

作者样式表:开发者书写的样式

1) 作者样式表中的!important样式
2) 作者样式表中的普通样式
3) 浏览器默认样式表中的样式

2.2 比较特殊性

看选择器

总体规则:选择器选中的范围越窄,越特殊

具体规则:通过选择器,计算出一个4位数(x x x x)

  1. 千位:如果是内联样式,记1,否则记0
  2. 百位:等于选择器中所有id选择器的数量
  3. 十位:等于选择器中所有类选择器、属性选择器、伪类选择器的数量
  4. 个位:等于选择器中所有元素选择器、伪元素选择器的数量

2.3 比较源次序

代码书写靠后的胜出

应用

  1. 重置样式表

书写一些作者样式,覆盖浏览器的默认样式

重置样式表 -> 浏览器的默认样式

常见的重置样式表:normalize.css、reset.css、meyer.css
()
2. 爱恨法则

link > visited > hover > active

3. 继承

子元素会继承父元素的某些CSS属性

通常,跟文字内容相关的属性都能被继承

可以去查看元素是否有继承性 不用记。 元素+MDN 进行搜索

4. 属性值的计算过程

属性值的计算过程: 一个元素,从所有属性都没有值,到所有的属性都有值

一个元素一个元素依次渲染,顺序按照页面文档的树形目录结构进行

渲染每个元素的前提条件:该元素的所有CSS属性必须有值

步骤:

1. 确定声明值

参考样式表中 没有冲突的声明,作为CSS属性值

2. 层叠冲突

对样式表有冲突的声明 使用层叠规则,确定CSS属性值

3. 使用继承

对仍然没有值的属性,若可以继承,则继承父元素的值

4. 使用默认值

对仍然没有值得属性,使用默认值

在这里插入图片描述

特殊的两个CSS取值:

  • inherit:手动(强制)继承,将父元素的值取出应用到该元素
  • initial:初始值,将该属性设置为默认值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值