CSS知识点总结

背景:

background-color

background-image: background-image:url('paper.gif');

background-repeat:

    repeat(默认)

    repeat-x(只有水平位置会重复背景图像)

    repeat-y(只有垂直位置会重复背景图像)

    no-repeat(background-image不会重复)

    inherit(指定background-repea属性设置应该从父元素继承)

background-attachment(背景图像是否固定或者随着页面的其余部分滚动:

    scroll    背景图片随着页面的滚动而滚动,这是默认的

    fixed    背景图片不会随着页面的滚动而滚动

    local    背景图片会随着元素内容的滚动而滚动

    initial    设置该属性的默认值

    inherit    指定 background-attachment 的设置应该从父元素继承

background-position

    left top

    left center

    left bottom

    right top

    right center

    right bottom

    center top

    center center

    center bottom    如果仅指定一个关键字,其他值将会是"center"

    x% y%    第一个值是水平位置,第二个值是垂直。左上角是0%0%。右下角是100%100%。如果仅指定了一个值,其他值将是50%。 。默认值为:0%0%

    xpos ypos    第一个值是水平位置,第二个值是垂直。左上角是0。单位可以是像素(0px0px)或任何其他 CSS单位。如果仅指定了一个值,其他值将是50%。你可以混合使用%和positions

    inherit    指定background-position属性设置应该从父元素继承

文本格式:

    text-align

        left 把文本排列到左边。默认值:由浏览器决定。

        right 把文本排列到右边。

        center 把文本排列到中间。

        justify 实现两端对齐文本效果。

        inherit 规定应该从父元素继承 text-align 属性的值。

字体:

    font 在一个声明中设置所有的字体属性

    font-family 指定文本的字体系列

    font-size 指定文本的字体大小

    font-style 指定文本的字体样式

    font-variant 以小型大写字体或者正常字体显示文本。

    font-weight 指定字体的粗细。

链接:

    a:link {text-decoration:none;}

    a:visited

    a:hover

    a:active

列表:

    list-style 简写属性。用于把所有用于列表的属性设置于一个声明中

    list-style-image 将图像设置为列表项标志。

    list-style-position 设置列表中列表项标志的位置。

    list-style-type 设置列表项标志的类型。

        circle

        square

        upper-roman

        low-alpha

    ul无序,ol有序

表格:

    border-collapse:collapse;

    caption、col、colgroup、thead、tfoot 以及 tbody 都是table的元素,属于html范畴。

vertical-align 属性:

    baseline 默认。元素放置在父元素的基线上。

    sub 垂直对齐文本的下标。

    super 垂直对齐文本的上标

    top 把元素的顶端与行中最高元素的顶端对齐

    text-top 把元素的顶端与父元素字体的顶端对齐

    middle 把此元素放置在父元素的中部。

    bottom 把元素的顶端与行中最低的元素的顶端对齐。

    text-bottom 把元素的底端与父元素字体的底端对齐。

    length

    % 使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。

    inherit 规定应该从父元素继承 vertical-align 属性的值。

        对哪些元素可以使用Vertical-Align

        vertical-align用于对齐行内元素。所谓行内元素,即display属性值为下列之一的元素:

            inline

            inline-block

            inline-table

        其中,行内元素(inline element)就是包含文本的标签。

        而行内块元素(inline-block element),顾名思义,就是位于行内的块元素。可以有宽度和高度(可以由其内容决定),也可以有内边距、边框和外边距。

        https://blog.csdn.net/qq_43173244/article/details/83063501

边框:

    border 简写属性,用于把针对四个边的属性设置在一个声明。

    border-style 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。

        dotted: 定义一个点线边框

        dashed: 定义一个虚线边框

        solid: 定义实线边框

        double: 定义两个边框。 两个边框的宽度和 border-width 的值相同

        groove: 定义3D沟槽边框。效果取决于边框的颜色值

        ridge: 定义3D脊边框。效果取决于边框的颜色值

        inset:定义一个3D的嵌入边框。效果取决于边框的颜色值

        outset: 定义一个3D突出边框。 效果取决于边框的颜色值

    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 设置元素的上边框的宽度。

轮廓:

    outline 在一个声明中设置所有的轮廓属性

        outline-color

        outline-style

        outline-width

        inherit

    outline-color 设置轮廓的颜色

        color-name

        hex-number

        rgb-number

        invert

        inherit

    outline-style 设置轮廓的样式

        none

        dotted

        dashed

        solid

        double

        groove

        ridge

        inset

        outset

        inherit

    outline-width 设置轮廓的宽度

        thin

        medium

        thick

        length

        inherit

margin(外边距)

    margin 简写属性。在一个声明中设置所有外边距属性。

    margin-bottom 设置元素的下外边距。

    margin-left 设置元素的左外边距。

    margin-right 设置元素的右外边距。

    margin-top 设置元素的上外边距。

padding(填充)

    padding 使用简写属性设置在一个声明中的所有填充属性

    padding-bottom 设置元素的底部填充

    padding-left 设置元素的左部填充

    padding-right 设置元素的右部填充

    padding-top 设置元素的顶部填充

尺寸 (Dimension)

    height 设置元素的高度。

    line-height 设置行高。

    max-height 设置元素的最大高度。

    max-width 设置元素的最大宽度。

    min-height 设置元素的最小高度。

    min-width 设置元素的最小宽度。

    width 设置元素的宽度。

隐藏元素 – display:none或visibility:hidden

    visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

    display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

CSS display 属性

    none 此元素不会被显示。

    block 此元素将显示为块级元素,此元素前后会带有换行符。

    inline 默认。此元素会被显示为内联元素,元素前后没有换行符。

    inline-block 行内块元素。(CSS2.1 新增的值)

    list-item 此元素会作为列表显示。

    run-in 此元素会根据上下文作为块级元素或内联元素显示。

    compact CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。

    marker CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。

    table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

    inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。

    table-row-group 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。

    table-header-group 此元素会作为一个或多个行的分组来显示(类似 <thead>)。

    table-footer-group 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。

    table-row 此元素会作为一个表格行显示(类似 <tr>)。

    table-column-group 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。

    table-column 此元素会作为一个单元格列显示(类似 <col>)

    table-cell 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

    table-caption 此元素会作为一个表格标题显示(类似 <caption>)

    inherit 规定应该从父元素继承 display 属性的值。

CSS visibility 属性

    visible 默认值。元素是可见的。

    hidden 元素是不可见的。

    collapse 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 "hidden"。

    inherit 规定应该从父元素继承 visibility 属性的值。

CSS Position(定位)

    bottom 定义了定位元素下外边距边界与其包含块下边界之间的偏移。

        auto

        length

        %

        inherit

    clip 剪辑一个绝对定位的元素

        shape – rect (top, right, bottom, left)

        auto

        inherit

    cursor 显示光标移动到指定的类型

        url 需使用的自定义光标的 URL。

        注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。

        default 默认光标(通常是一个箭头)

        auto 默认。浏览器设置的光标。

        crosshair 光标呈现为十字线。

        pointer 光标呈现为指示链接的指针(一只手)

        move 此光标指示某对象可被移动。

        e-resize 此光标指示矩形框的边缘可被向右(东)移动。

        ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。

        nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。

        n-resize 此光标指示矩形框的边缘可被向上(北)移动。

        se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。

        sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。

        s-resize 此光标指示矩形框的边缘可被向下移动(北/西)。

        w-resize 此光标指示矩形框的边缘可被向左移动(西)。

        text 此光标指示文本。

        wait 此光标指示程序正忙(通常是一只表或沙漏)。

        help 此光标指示可用的帮助(通常是一个问号或一个气球)。

    left 定义了定位元素左外边距边界与其包含块左边界之间的偏移。

        auto

        length

        %

        inherit

    overflow 设置当元素的内容溢出其区域时发生的事情。

        auto

        hidden

        scroll

        visible

        inherit

    overflow-y

    指定如何处理顶部/底部边缘的内容溢出元素的内容区域 auto

    hidden

    scroll

    visible

    no-display

    no-content

    overflow-x

    指定如何处理右边/左边边缘的内容溢出元素的内容区域 auto

    hidden

    scroll

    visible

    no-display

    no-content

    position 指定元素的定位类型

        absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

        元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

        fixed

        生成固定定位的元素,相对于浏览器窗口进行定位。

        元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

        relative

        生成相对定位的元素,相对于其正常位置进行定位。

        因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

        static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

        sticky

        粘性定位,该定位基于用户滚动的位置。

        它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

        注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

        inherit 规定应该从父元素继承 position 属性的值。

        initial 设置该属性为默认值,详情查看 CSS initial 关键字。

    right 定义了定位元素右外边距边界与其包含块右边界之间的偏移。 auto

    length

    %

    inherit

    top 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。 auto

    length

    %

    inherit

    z-index 设置元素的堆叠顺序 number

    auto

    inherit

CSS 布局 – Overflow

    visible 默认值。内容不会被修剪,会呈现在元素框之外。

    hidden 内容会被修剪,并且其余内容是不可见的。

    scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

    auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

    inherit 规定应该从父元素继承 overflow 属性的值。

CSS Float(浮动)

    clear 指定不允许元素周围有浮动元素。

        left

        right

        both

        none

    inherit

    float 指定一个盒子(元素)是否可以浮动。

        left

        right

        none

        inherit

CSS 布局 – 水平 & 垂直对齐

    注释:绝对定位元素会被从正常流中删除,并且能够交叠元素。

    提示: 当使用 position 来对齐元素时, 通常 <body> 元素会设置 margin 和 padding 。 这样可以避免在不同的浏览器中出现可见的差异。

    当使用 position 属性时,IE8 以及更早的版本存在一个问题。如果容器元素(在我们的案例中是 <div class="container">)设置了指定的宽度,并且省略了 !DOCTYPE 声明,那么 IE8 以及更早的版本会在右侧增加 17px 的外边距。这似乎是为滚动条预留的空间。当使用 position 属性时,请始终设置 !DOCTYPE 声明:

    绝对定位使用通常是父级定义position:relative定位,子级定义position:absolute绝对定位属性,并且子级使用left或right和top或bottom进行绝对定位

CSS 组合选择符

    后代选择器(以空格分隔)

    子元素选择器(以大于号分隔)

    相邻兄弟选择器(以加号分隔)

    普通兄弟选择器(以破折号分隔)

CSS 伪类(Pseudo-classes)

    a:link {color:#FF0000;} /* 未访问的链接 */

    a:visited {color:#00FF00;} /* 已访问的链接 */

    a:hover {color:#FF00FF;} /* 鼠标划过链接 */

    a:active {color:#0000FF;} /* 已选中的链接 */

CSS :first-child 伪类

您可以使用 :first-child 伪类来选择父元素的第一个子元素。

注意:在IE8的之前版本必须声明<!DOCTYPE> ,这样 :first-child 才能生效。

    :checked input:checked 选择所有选中的表单元素

    :disabled input:disabled 选择所有禁用的表单元素

    :empty p:empty 选择所有没有子元素的p元素

    :enabled input:enabled 选择所有启用的表单元素

    :first-of-type p:first-of-type 选择的每个 p 元素是其父元素的第一个 p 元素

    :in-range input:in-range 选择元素指定范围内的值

    :invalid input:invalid 选择所有无效的元素

    :last-child p:last-child 选择所有p元素的最后一个子元素

    :last-of-type p:last-of-type 选择每个p元素是其母元素的最后一个p元素

    :not(selector) :not(p) 选择所有p以外的元素

    :nth-child(n) p:nth-child(2) 选择所有 p 元素的父元素的第二个子元素

    :nth-last-child(n) p:nth-last-child(2) 选择所有p元素倒数的第二个子元素

    :nth-last-of-type(n) p:nth-last-of-type(2) 选择所有p元素倒数的第二个为p的子元素

    :nth-of-type(n) p:nth-of-type(2) 选择所有p元素第二个为p的子元素

    :only-of-type p:only-of-type 选择所有仅有一个子元素为p的元素

    :only-child p:only-child 选择所有仅有一个子元素的p元素

    :optional input:optional 选择没有"required"的元素属性

    :out-of-range input:out-of-range 选择指定范围以外的值的元素属性

    :read-only input:read-only 选择只读属性的元素属性

    :read-write input:read-write 选择没有只读属性的元素属性

    :required input:required 选择有"required"属性指定的元素属性

    :root root 选择文档的根元素

    :target #news:target 选择当前活动#news元素(点击URL包含锚的名字)

    :valid input:valid 选择所有有效值的属性

    :link a:link 选择所有未访问链接

    :visited a:visited 选择所有访问过的链接

    :active a:active 选择正在活动链接

    :hover a:hover 把鼠标放在链接上的状态

    :focus input:focus 选择元素输入后具有焦点

    :first-letter p:first-letter 选择每个<p> 元素的第一个字母

    :first-line p:first-line 选择每个<p> 元素的第一行

    :first-child p:first-child 选择器匹配属于任意元素的第一个子元素的 <p> 元素

    :before p:before 在每个<p>元素之前插入内容

    :after p:after 在每个<p>元素之后插入内容

    :lang(language) p:lang(it) 为<p>元素的lang属性选择一个开始值

CSS伪类/元素

    :link a:link 选择所有未访问链接

    :visited a:visited 选择所有访问过的链接

    :active a:active 选择正在活动链接

    :hover a:hover 把鼠标放在链接上的状态

    :focus input:focus 选择元素输入后具有焦点

    :first-letter p:first-letter 选择每个<p> 元素的第一个字母

    :first-line p:first-line 选择每个<p> 元素的第一行

    :first-child p:first-child 选择器匹配属于任意元素的第一个子元素的 <p> 元素

    :before p:before 在每个<p>元素之前插入内容

    :after p:after 在每个<p>元素之后插入内容

    :lang(language) p:lang(it) 为<p>元素的lang属性选择一个开始值

CSS 媒体类型

    all 用于所有的媒体设备。

    aural 用于语音和音频合成器。

    braille 用于盲人用点字法触觉回馈设备。

    embossed 用于分页的盲人用点字法打印机。

    handheld 用于小的手持的设备。

    print 用于打印机。

    projection 用于方案展示,比如幻灯片。

    screen 用于电脑显示器。

    tty 用于使用固定密度字母栅格的媒体,比如电传打字机和终端。

    tv 用于电视机类型的设备。

CSS 选择器

    [attribute] 用于选取带有指定属性的元素。

    [attribute=value] 用于选取带有指定属性和值的元素。

    [attribute~=value] 用于选取属性值中包含指定词汇的元素。

    [attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

    [attribute^=value] 匹配属性值以指定值开头的每个元素。

    [attribute$=value] 匹配属性值以指定值结尾的每个元素。

    [attribute*=value] 匹配属性值中包含指定值的每个元素。