• Day4前端学习之路——背景边框列表链接和更复杂的选择器


    课程目标

    掌握 CSS 稍微复杂的一些选择器,还有背景,边框等一些 CSS 样式属性

    主要内容:

    • 背景属性
    • 边框
    • 列表
    • 链接
    • 其他选择器

    选择器概览:https://www.w3school.com.cn/cssref/css_selectors.asp


    一、CSS 背景属性

    属性描述
    background 简写属性,作用是将背景属性设置在一个声明中。
    background-attachment 背景图像是否固定(fixed)或者随着页面的其余部分滚动(scroll)。
    background-color 设置元素的背景颜色。
    background-image 把图像设置为背景。
    background-position

    设置背景图像的起始位置。

    • 使用一些关键字:top、bottom、left、right 和 center
    • 使用长度值,如 100px 或 5cm
    • 使用百分数值
    background-repeat 设置背景图像是否及如何重复。repeat-x 和 repeat-y、no-repeat、repeat(双向重复)

    二、边框属性

    属性描述
    border 简写属性,用于把针对四个边的属性设置在一个声明。
    border-style 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
    border-width 简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
    border-color 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
    border-bottom 简写属性,用于把下边框的所有属性设置到一个声明中。
    border-bottom-color 设置元素的下边框的颜色。
    border-bottom-style 设置元素的下边框的样式。
    border-bottom-width 设置元素的下边框的宽度。
    border-left 简写属性,用于把左边框的所有属性设置到一个声明中。
    border-left-color 设置元素的左边框的颜色。
    border-left-style 设置元素的左边框的样式。
    border-left-width 设置元素的左边框的宽度。
    border-right 简写属性,用于把右边框的所有属性设置到一个声明中。
    border-right-color 设置元素的右边框的颜色。
    border-right-style 设置元素的右边框的样式。
    border-right-width 设置元素的右边框的宽度。
    border-top 简写属性,用于把上边框的所有属性设置到一个声明中。
    border-top-color 设置元素的上边框的颜色。
    border-top-style 设置元素的上边框的样式。
    border-top-width 设置元素的上边框的宽度。

    border-style

    描述
    none 定义无边框。
    hidden 与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
    dotted 定义点状边框。在大多数浏览器中呈现为实线。
    dashed 定义虚线。在大多数浏览器中呈现为实线。
    solid 定义实线。
    double 定义双线。双线的宽度等于 border-width 的值。
    groove 定义 3D 凹槽边框。其效果取决于 border-color 的值。
    ridge 定义 3D 垄状边框。其效果取决于 border-color 的值。
    inset 定义 3D inset 边框。其效果取决于 border-color 的值。
    outset 定义 3D outset 边框。其效果取决于 border-color 的值。
    inherit 规定应该从父元素继承边框样式。

     

    三、列表属性

    属性说明备注
    list-style-type 列表标志 标志值  
    list-style-image 列表项图像 url() 可用background代替
    list-style-position 列表项位置 inside(文本内文本环绕)、outside(默认)、inherit  
    list-style 列表简写 顺序:list-style-type list-style-position list-style-image(可省略某个值)


    四、链接

    a:link {color:#FF0000;}        /* 未被访问的链接 */
    a:visited {color:#00FF00;}    /* 已被访问的链接 */
    a:hover {color:#FF00FF;}    /* 鼠标指针移动到链接上 */
    a:active {color:#0000FF;}    /* 正在被点击的链接 */

    注意: 一定要按照LVHA的顺序指定!可用background为连接增加小图标

    五、其他选择器

    (1)选择器的分组与继承

    • 选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开
    h1,h2,h3,h4,h5,h6 {
      color: green;
      }
    • 子元素从父元素继承属性

    如果你不希望 "Verdana, sans-serif" 字体被所有的子元素继承,又该怎么做呢?比方说,你希望段落的字体是 Times。没问题。创建一个针对 p 的特殊规则,这样它就会摆脱父元素的规则:

    body  {
         font-family: Verdana, sans-serif;
         }
    
    td, ul, ol, ul, li, dl, dt, dd  {
         font-family: Verdana, sans-serif;
         }
    
    p  {
         font-family: Times, "Times New Roman", serif;
         }

    (2)派生选择器

    比方说,你希望列表中的 strong 元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器:

    li strong {
        font-style: italic;
        font-weight: normal;
      }

    只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class 或 id,代码更加简洁。

    (3)伪类选择器

    • 伪类

    伪类是选择器,用于选择处于特定状态的元素,例如,它们是其类型的第一个元素,或者它们被鼠标指针悬停

    article p:first-child {
        font-size: 120%;
        font-weight: bold;
    } 

    first-child 它将始终以文章中的第一个子元素为目标

      • :hover- 上文提到的; 仅当用户将指针移动到元素(通常是链接)上时才适用。
      • :focus —仅在用户使用键盘控件聚焦元素时适用。
    • 伪元素

    伪元素的行为类似,但是它们的行为就像您在标记中添加了一个全新的HTML元素一样,而不是将类应用于现有元素。伪元素以双冒号开头::

        例如,如果您想选择一个段落的第一行,则可以将其包装在一个<span>元素中并使用一个元素选择器。但是,如果您包装的单词数大于或小于父元素的宽度,那将失败。由于我们往往不知道一行上将容纳多少个单词(如果屏幕宽度或字体大小发生更改,这将会改变),因此无法通过添加HTML来可靠地做到这一点。::first-line伪元素选择器会为您提供可靠的做到这一点-如果词次数的增加和减少它仍然只能选择第一行。

    如果要使第一段的第一行加粗,可以将:first-child::first-line选择器链接在一起。

    article p:first-child::first-line { 
      font-size: 120%; 
      font-weight: bold; 
    }

    参考文档:https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements

     

    (4)组合

    CombinatorsSelect
    A,B 匹配满足A(和/或)B的任意元素(参见下方 同一规则集上的多个选择器).
    A B 匹配任意元素,满足条件:B是A的后代结点(B是A的子节点,或者A的子节点的子节点)
    A > B 匹配任意元素,满足条件:B是A的直接子节点
    A + B 匹配任意元素,满足条件:B是A的下一个兄弟节点(AB有相同的父结点,并且B紧跟在A的后面)
    A ~ B 匹配任意元素,满足条件:B是A之后的兄弟节点中的任意一个(AB有相同的父节点,B在A之后,但不一定是紧挨着A)

    (5)选择器的优先级

    • 先明确一点,特指度高则优先级高,使用!important可提高优先级
    CSS选择符的特指度,由它选择符中包含标签的多少、class和id决定
    
    特指度的计算
    计分公式:“ I-C-E ” 三个字母用“ - ”分隔符组成
    选择符中有一个id,  "  I  " 位置加1
    选择符中有一个class,“C”  位置加1
    选择符中有一个标签(元素),“ E ” 位置加1
    得到一个“三位数”,这并非真正意义上的三位数
    
    • 如果有多个选择器特指度相同,那么就由多个选择器的位置决定
    !important > 行内样式 > 内嵌样式 > 外联样式写在后面的 > 外联样式写在前面的
    

    注意 : 权值实际并不是按十进制,用数字表示只是说明思想,一万个class也不如一个id权值高 。

    特殊性:

    • 内联样式1000;
    • ID属性100;
    • 类属性/属性选择/伪类010;
    • 元素/伪元素001
  • 相关阅读:
    BGP协议
    OSPF协议项目实战
    理解Eth-Trunk
    二层交换网络当中的高级内容
    策略路由
    isis综合作业
    mac 上安装brew,permission denied解决,安装pip, 安装 requests
    [随笔]swift 笔记
    [转]Swift
    [汇] Android 知识汇总
  • 原文地址:https://www.cnblogs.com/ccv2/p/12176249.html
Copyright © 2020-2023  润新知