小学毕业都能学会的2023前端笔记CSS第二章

144 阅读6分钟

1复合选择器

  • 定义:由两个或多个基础选择器,通过不同的方式组合而成。
  • 作用:更精准、更高效的选择目标元素(标签)。

1.1后代选择器

  • 后代选择器:选中某元素的后代 元素。
  • 选择器写法:父选择器 子选择器(CSS属性),父子选择器之间用空格隔开。
    <head>
        <title>后代选择器</title>
        <style>
            /* div 里面 span 文字颜色是红色 */
            /* 后代选择器,选中所有后代,包含儿子,孙子,重孙子…… */
            div span {
                color: red;
            }
        </style>
    </head>

    <body>
        <span>span标签</span>
        <div>
            <span>这是div的儿子span</span>
        </div>
    </body>

1.2子代选择器

  • 子代选择器:选中某元素的 子代 元素(最近的子级)。
  • 选择器写法:父选择器>子选择器(CSS属性) ,父子选择器之间用>隔开。
    <head>
        <title>子代选择器</title>
        <style>
            /* div 的儿子 span 文字颜色是红的 */
            div>span {
                color: red;
            }
        </style>
    </head>

    <body>

        <div>
            <p><span>这是div的孙子span</span></p>
            <span>这是div的儿子span</span>
        </div>
    </body>

1.3并集选择器

  • 并集选择器:选中 多组 标签设置 相同 的样式。
  • 选择器写法:选择器1,选择器2,……,选择器N(CSS属性),选择器之间用 英文逗号 隔开。
    <head>
        <title>并集选择器</title>
        <style>
            /* div,p,span 文字颜色是红色 */
            div,
            p,
            span {
                color: red;
            }
        </style>
    </head>

    <body>
        <div>div标签</div>
        <p>p标签</p>
        <span>span标签</span>
    </body>

1.4交集选择器-了解

  • 交集选择器:选中同时 满足多个条件 的元素。
  • 选择器写法:选择器1选择器2(CSS属性),选择器之间连写,没有任何符号。
  • 注意:如果交集选择器中有标签选择器,标签选择器必须写在最前面。
    <head>
        <title>交集选择器</title>
        <style>
        /* 第一个 p 标签 文字颜色是红色*/
            p.box {
                color: red;
            }
        </style>
    </head>

    <body>
        <p class="box">p 标签,使用了类选择器 box</p>
        <p>p 标签</p>
        <div class="box">div标签,使用了类选择器box </div>
    </body>

1.5伪类选择器

  • 伪类选择器:伪类表示元素状态, 选中元素的某个状态设置样式。
  • 鼠标悬停状态:选择器:hover (CSS属性)
    <head>
        <title>伪类选择器</title>
        <style>
            a:hover {
                color: red;
            }

            .box:hover {
                color: goldenrod;
            }
        </style>
    </head>

    <body>
        <a href="#">这是a标签</a>
        <div class="box">这是div标签</div>
    </body>

1.5.1伪类-超链接(拓展)

  • 超链接一共有 个状态
选择器作用
:link访问前
:visited访问后
:hover鼠标悬停
:active点击时(激活)
  • 提示:如果要给超链接设置以上四个状态,需要按LVHA的顺序书写。

2 CSS特性

CSS特性:化简代码/定位问题,并解决问题。

  • 继承性
  • 层叠性
  • 优先性

2.1继承性

  • 继承性: 级默认继承 级的文字控制属性。
描述属性
字体大小font-size
字体粗细font-weight
字体倾斜font-style
行高line-height
字体族font-family
字体复合属性font
文字缩进text-indent
文本对齐text-align
修饰线text-decoration
颜色color
  • 注意:如果标签自己有样式 则生效自己的样式,不继承。

2.2层叠性

特点:

  • 相同的属性会覆盖: 后面 的CSS属性 覆盖前面 的CSS属性。
  • 不同的属性会叠加: 不同 的CSS属性都生效。
    <head>
        <title>css层叠性</title>
        <style>
            div {
                color: red;
                font-size: 30px;
            }

            div {
                color: blue;
                font-weight: 700;
            }
            /* 两次都设置了颜色,覆盖 蓝色生效,设置了不同的字体效果,叠加 都生效。 */
        </style>
    </head>

    <body>
        <div>这是div标签</div>
    </body>

</html>

2.3优先级

  • 优先级:也叫权重,当一个标签使用了 多种 选择器时,基于不同种类的选择器的匹配规则。
  • 规则:选择器优先级高的样式生效。
  • 公式:通配符选择器<标签选择器<类选择器<id选择器<行内选择器<!important (选中标签的范围越大,优先级越低

2.4.1优先级-叠加计算

  • 叠加计算:如果是复合选择器, 则需要权重叠加计算。
  • 公式:(每一级之间不存在进位

(行内样式,id选择器个数,类选择器个数,标签选择器个数)规则:

  • 从左向右依次比较这个数,同一级个数多的优先级高,如果个数相同,则向后比较
  • !impotant权重最高
  • 继承权中最低

3 背景属性

  • 背景图:网页中,使用背景图实现 装饰性 的图片效果。
  • 属性名:background-img(Emmet:bgi)
  • 属性值:url(背景图url)
    <head>
        <title>背景属性</title>
        <style>
            div {
                /* 盒子是400*400 */
                width: 400px;
                height: 400px;
                /* 背景图默认是平铺(复制)的效果 */
                background-image: url(./images/1.jpg);
            }
        </style>
    </head>

    <body>
        <div>div标签</div>
    </body>
  • 代码效果:

20231212211233.png

3.1背景图平铺方式

  • 属性名:background-repeat(Emmet:bgr)
  • 属性值:
属性值效果
no-repeat不平铺
repeat平铺(默认效果)
repeat-x水平方向平铺
repeat-y垂直方向平铺

3.2背景图位置

  • 属性名:background-position(Emmet:bgp)
  • 属性值:水平方向位置 垂直方向位置
  • 关键字:
属性值位置
left左侧
right右侧
center居中
top顶部
bottom底端
  • 坐标(数字+px,正负 都可以)
  • 提示:
    • 关键字 取值方式写法,可以颠倒 取值顺序。
    • 可以只写一个关键字,另一个方向 默认为居中数字 只写一个之表示水平 方向,垂直方向为居中。

3.3背景图缩放

  • 作用:设置背景图大小
  • 属性名:background-size(Emmet:bgz)
  • 常用属性值:
    1. 关键字:
      • cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。
      • contain:等比例缩放图片以完全装入背景区,可能被景区部分空白。
    2. 百分比:根据盒子尺寸计算图片大小。
    3. 数字+单位(例如:px)

3.4背景图固定

  • 作用:背景不会随着元素的内容滚动。
  • 属性名:background-attachment (Emmet:bga)
  • 属性值:fixed
    body{
    background-imge:ul(./images/bg.jpg);
    background-repeat:no-repeat;
    background-attachment:fixed;
    }

3.5背景复合属性

  • 属性名:background (Emmet:bg)
  • 属性值:背景色 背景图 背景平铺方式 背景位置/背景图缩放 背景图固定(空格 隔开各个属性值,不区分顺序
    div{
    width:400px;
    height:400px;
    background: pink url(./images/1.png) no-repeat right center/cover;
    }

4 显示模式

  • 显示模式:标签(元素)的显示方式。
  • 作用:布局网页的时候,根据标签的显示模式选择合适 的标签摆放内容。
  • 常见的显示模式:
显示模式特点代表标签
块级元素1.独占 一行。2.宽度默认是 级的 100%。3.添加 宽高 属性 生效div
行内元素1.一行可以显示多个;2.设置宽高属性不生效;3.宽高尺寸由内容撑开span
行内块元素1.一行可以显示多个;2.设置宽高属性生效;3.默认宽高尺寸由内容撑开,添加宽高属性生效img

4.1转换显示模式

  • 属性名:display
  • 属性值:
属性值效果
block块级
inline-block行内块
inline行内