css学习笔记 | 青训营

65 阅读3分钟

CSS 选择器的作用

选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用

选择器分类

选择器分为基础选择器和复合选择器两个大类

基础选择器是由单个选择器组成的

基础选择器又包括:标签选择器,类选择器,id选择器和通配符选择器

标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式,标签选择器可以把某一类标签全部选择出来,比如所有的 div 标签和所有的 span 标签

类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点“.”号表示,如果想要差异化选择不同的标签,单独选一个或几个标签,可以使用类选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式,HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以 “#” 来定义。

通配符选择器,在 CSS 中,通配符选择器使用 “*” 定义,它表示选取页面中所有元素(标签)。

css 有三个非常重要的三个特性:层叠性,继承性,优先级。

层叠性

相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题

层叠性原则:

样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式,样式不冲突,不会层叠。

继承性

现实中的继承:我们继承了父亲的姓,CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号,简单的理解就是:子承父业,恰当地使用继承可以简化代码,降低 CSS 样式的复杂性。子元素可以继承父元素的样式(text-,font-,line- 这些元素开头的可以继承,以及color)。

优先级

当同一个元素指定多个选择器,就会有优先级的产生。选择器相同,则执行层叠性,选择器不同,则根据选择器权重执行。

优先级注意点:

权重是有4组数字组成,但是不会有进位。可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器以此类推。等级判断从左向右,如果某一位数值相同,则判断下一位数值。继承的权重是0,如果该元素没有直接选中,不管父亲权重多高,子元素得到的权重都是0。

盒子模型

所谓 盒子模型:就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个装内容的容器。CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框,外边距,内边距和实际内容

案例

<!DOCTYPE html>
<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>综合案例-产品模块</title>
<style>
    * {
        margin: 0;
        padding: 0;
    }
    body {
        background-color: #f5f5f5;
    }
    a {
        color: #333;
        text-decoration: none;
    }
    .box {
        width: 298px;
        height: 415px;
        background-color: #fff;
        /* 让块级的盒子水平居中对齐 */
        margin: 100px auto;
    }
    .box img{
        /* 图片的宽度和父亲一样宽 */
        width: 100%;
    }
    .review {
        height: 70px;
        font-size: 14px;
        /* 因为这个段落没有 width 属性 所有 padding 不会撑开盒子的宽度 */
        padding: 0 28px;
        margin-top: 30px;
    }
    .appraise {
        font-size: 12px;
        color: #b0b0b0;
        margin-top: 20px;
        padding: 0 28px;
    }
    .info {
        font-size: 14px;
        margin-top: 15px;
        padding:  0 28px;
    }
    .info h4 {
        display: inline-block;
        font-weight: 400;
    }
    .info span {
        color: #ff6700;
    }
    .info em{
        font-style: normal;
        color: #ebe4e0;
        margin: 0 6px 0 15px;
    }
</style>


<div class="box">
    <img src="airpods.png" alt=" ">
    <p class="review">快递牛,整体不错蓝牙可以说秒连。红米给力</p>
    <div class="appraise">来自于 117384232 的评价</div>
    <div class="info">
        <h4> <a href="#">Redmi AirDots真无线蓝...</a></h4>
        <em>|</em>
        <span> 99.9元</span>
    </div>
</div>