​CSS3 知识点总结

边框:

    border-image 设置所有边框图像的速记属性。

    border-radius 一个用于设置所有四个边框- *-半径属性的速记属性

        border-radius 所有四个边角 border-*-*-radius 属性的缩写

        border-top-left-radius 定义了左上角的弧度

        border-top-right-radius 定义了右上角的弧度

        border-bottom-right-radius 定义了右下角的弧度

        border-bottom-left-radius 定义了左下角的弧度

    box-shadow 附加一个或多个下拉框的阴影

        box-shadow: h-shadow v-shadow blur spread color inset;

            h-shadow 必需的。水平阴影的位置。允许负值

            v-shadow 必需的。垂直阴影的位置。允许负值

            blur 可选。模糊距离

            spread 可选。阴影的大小

            color 可选。阴影的颜色。在CSS颜色值寻找颜色值的完整列表

            inset 可选。从外层的阴影(开始时)改变阴影内侧阴影

背景:

    background-image:支持多重背景图像。

        background-image: url(https://static.runoob.com/images/mix/54cf2365000140e600740095.jpg),

        url(https://static.runoob.com/images/mix/54cf238a0001728d00740095.jpg),

        url(https://static.runoob.com/images/mix/54cf23b60001fd9700740096.jpg);

        background-position: left top, 100px 0, 200px 0;

        background-repeat: no-repeat, no-repeat, no-repeat;

    background-size

    background-origin

    background-clip

渐变:

    background-image: linear-gradient(direction, color-stop1, color-stop2, …);

    从上到下:background-image: linear-gradient(#e66465, #9198e5);

    从左到右:background-image: linear-gradient(to right, red , yellow);

    从左上到右下:background-image: linear-gradient(to bottom right, red, yellow);

    角度:background-image: linear-gradient(angle, color-stop1, color-stop2);   (-90deg)

    多个颜色节点:background-image: linear-gradient(red, yellow, green);

    透明度:background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));

    重复的线性渐变:background-image: repeating-linear-gradient(red, yellow 10%, green 20%);

    径向渐变:background-image: radial-gradient(shape size at position, start-color, …, last-color);

        background-image: radial-gradient(red 5%, yellow 15%, green 60%);

    设置形状:circle 或 ellipse

        background-image: radial-gradient(circle, red, yellow, green);

    不同尺寸大小关键字的使用

        closest-side

        farthest-side

        closest-corner

        farthest-corner

            background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);

            background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black);

    重复的径向渐变

        background-image: repeating-radial-gradient(red, yellow 10%, green 15%);

文本效果:

    hanging-punctuation 规定标点字符是否位于线框之外。

        none 不在文本整行的开头还是结尾的行框之外放置标签符号。

        first 标点附着在首行开始边缘之外。

        last 标点附着在首行结尾边缘之外。

        allow-end

        force-end

    punctuation-trim 规定是否对标点字符进行修剪。(任何主流浏览器都不支持punctuation-trim属性。)

    text-align-last 设置如何对齐最后一行或紧挨着强制换行符之前的行。

    text-emphasis 向元素的文本应用重点标记以及重点标记的前景色。

    text-justify 规定当 text-align 设置为 "justify" 时所使用的对齐方法。

    text-outline 规定文本的轮廓。

    text-overflow 规定当文本溢出包含元素时发生的事情。

    text-shadow 向文本添加阴影。

        text-shadow: 5px 5px 5px #FF0000;

    text-wrap 规定文本的换行规则。

    word-break 规定非中日韩文本的换行规则。

    word-wrap 允许对长的不可分割的单词进行分割并换行到下一行。

box-shadow: 10px 10px 5px #888888;

CSS3 字体

    font-family name 必需。规定字体的名称。

    src URL 必需。定义字体文件的 URL。

    font-stretch 可选。定义如何拉伸字体。默认是 "normal"。

        normal

        condensed

        ultra-condensed

        extra-condensed

        semi-condensed

        expanded

        semi-expanded

        extra-expanded

        ultra-expanded

    font-style 可选。定义字体的样式。默认是 "normal"。

        normal

        italic

        oblique

    font-weight 可选。定义字体的粗细。默认是 "normal"。

        normal

        bold

        100

        200

        300

        400

        500

        600

        700

        800

        900

    unicode-range unicode-range 可选。定义字体支持的 UNICODE 字符范围。默认是 "U+0-10FFFF"。

CSS3 2D 转换

    transform 适用于2D或3D转换的元素

    transform-origin 允许您更改转化元素位置

2D 转换方法

    matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。

    translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。

    translateX(n) 定义 2D 转换,沿着 X 轴移动元素。

    translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。

    scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。

    scaleX(n) 定义 2D 缩放转换,改变元素的宽度。

    scaleY(n) 定义 2D 缩放转换,改变元素的高度。

    rotate(angle) 定义 2D 旋转,在参数中规定角度。

    skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。

    skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。

    skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

3D 转换

    matrix3d(n,n,n,n,n,n,

    n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4×4 矩阵。

    translate3d(x,y,z) 定义 3D 转化。

    translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。

    translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。

    translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。

    scale3d(x,y,z) 定义 3D 缩放转换。

    scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。

    scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。

    scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。

    rotate3d(x,y,z,angle) 定义 3D 旋转。

    rotateX(angle) 定义沿 X 轴的 3D 旋转。

    rotateY(angle) 定义沿 Y 轴的 3D 旋转。

    rotateZ(angle) 定义沿 Z 轴的 3D 旋转。

    perspective(n) 定义 3D 转换元素的透视视图。

CSS3 过渡

    transition 简写属性,用于在一个属性中设置四个过渡属性。

        transition: width 1s, height 1s, transform 2s, background 2s, color 1s;

    transition-property 规定应用过渡的 CSS 属性的名称。

    transition-duration 定义过渡效果花费的时间。默认是 0。

    transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。

        linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。

        ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。

        ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。

        ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。

        ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

        cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

    transition-delay 规定过渡效果何时开始。默认是 0。

CSS3 动画

    @keyframes 规定动画。

    animation 所有动画属性的简写属性,除了 animation-play-state 属性。

        animation: name duration timing-function delay iteration-count direction fill-mode play-state;

    animation-name 规定 @keyframes 动画的名称。

    animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。

    animation-timing-function 规定动画的速度曲线。默认是 "ease"。

        linear 动画从头到尾的速度是相同的。

        ease 默认。动画以低速开始,然后加快,在结束前变慢。

        ease-in 动画以低速开始。

        ease-out 动画以低速结束。

        ease-in-out 动画以低速开始和结束。

        cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

    animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

    animation-delay 规定动画何时开始。默认是 0。

    animation-iteration-count 规定动画被播放的次数。默认是 1。

        n 一个数字,定义应该播放多少次动画

        infinite 指定动画应该播放无限次(永远)

    animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。

    animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。

CSS3 多列

    column-count

    column-gap

    column-rule-style

    column-rule-width

    column-rule-color

    column-rule

    column-span

    column-width

CSS3 用户界面

    appearance 允许您使一个元素的外观像一个标准的用户界面元素

    box-sizing 允许你以适应区域而用某种方式定义某些元素

        content-box

            这是由 CSS2.1 规定的宽度高度行为。

            宽度和高度分别应用到元素的内容框。

            在宽度和高度之外绘制元素的内边距和边框。

        border-box

            为元素设定的宽度和高度决定了元素的边框盒。

            就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。

            通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

        inherit 规定应从父元素继承 box-sizing 属性的值。

    icon 为创作者提供了将元素设置为图标等价物的能力。

    nav-down 指定在何处使用箭头向下导航键时进行导航

    nav-index 指定一个元素的Tab的顺序

    nav-left 指定在何处使用左侧的箭头导航键进行导航

    nav-right 指定在何处使用右侧的箭头导航键进行导航

    nav-up 指定在何处使用箭头向上导航键时进行导航

    outline-offset 外轮廓修饰并绘制超出边框的边缘

    resize 指定一个元素是否是由用户调整大小

CSS3 弹性盒子

    弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。

    弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。

    弹性容器内包含了一个或多个弹性子元素。

    注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。

    弹性子元素通常在弹性盒子内一行显示。默认情况每个容器只有一行。

    flex-direction:属性指定了弹性子元素在父容器中的位置。

        flex-direction: row | row-reverse | column | column-reverse

    justify-content:内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。

        justify-content: flex-start | flex-end | center | space-between | space-around

        flex-start:弹性项目向行头紧挨着填充。这个是默认值。第一个弹性项的main-start外边距边线被放置在该行的main-start边线,而后续弹性项依次平齐摆放。

        flex-end:弹性项目向行尾紧挨着填充。第一个弹性项的main-end外边距边线被放置在该行的main-end边线,而后续弹性项依次平齐摆放。

        center:弹性项目居中紧挨着填充。(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出)。

        space-between:弹性项目平均分布在该行上。如果剩余空间为负或者只有一个弹性项,则该值等同于flex-start。否则,第1个弹性项的外边距和行的main-start边线对齐,而最后1个弹性项的外边距和行的main-end边线对齐,然后剩余的弹性项分布在该行上,相邻项目的间隔相等。

        space-around:弹性项目平均分布在该行上,两边留有一半的间隔空间。如果剩余空间为负或者只有一个弹性项,则该值等同于center。否则,弹性项目沿该行分布,且彼此间隔相等(比如是20px),同时首尾两边和弹性容器之间留有一半的间隔(1/2*20px=10px)。

    align-items: 设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式

        align-items: flex-start | flex-end | center | baseline | stretch

        flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

        flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

        center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

        baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

        stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。

    flex-wrap: 属性用于指定弹性盒子的子元素换行方式

        flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;

        nowrap – 默认, 弹性容器为单行。该情况下弹性子项可能会溢出容器。

        wrap – 弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行

        wrap-reverse -反转 wrap 排列。

    align-content: 属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。

        align-content: flex-start | flex-end | center | space-between | space-around | stretch

        stretch – 默认。各行将会伸展以占用剩余的空间。

        flex-start – 各行向弹性盒容器的起始位置堆叠。

        flex-end – 各行向弹性盒容器的结束位置堆叠。

        center -各行向弹性盒容器的中间位置堆叠。

        space-between -各行在弹性盒容器中平均分布。

        space-around – 各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。

    order:弹性子元素属性

        <integer>:用整数值来定义排列顺序,数值小的排在前面。可以为负值。

    对齐:

    设置"margin"值为"auto"值,自动获取弹性容器中剩余的空间。所以设置垂直方向margin值为"auto",可以使弹性子元素在弹性容器的两上轴方向都完全居中。

    以下实例在第一个弹性子元素上设置了 margin-right: auto; 。 它将剩余的空间放置在元素的右侧

    完美的居中:

    使用弹性盒子,居中变的很简单,只想要设置 margin: auto; 可以使得弹性子元素在两上轴方向上完全居中

    align-self: 属性用于设置弹性元素自身在侧轴(纵轴)方向上的对齐方式

    align-self: auto | flex-start | flex-end | center | baseline | stretch

        auto:如果'align-self'的值为'auto',则其计算值为元素的父元素的'align-items'值,如果其没有父元素,则计算值为'stretch'。

        flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

        flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

        center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

        baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

        stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。

    flex: 属性用于指定弹性子元素如何分配空间。

        flex: auto | initial | none | inherit |  [ flex-grow ] || [ flex-shrink ] || [ flex-basis ]

            auto: 计算值为 1 1 auto

            initial: 计算值为 0 1 auto

            none:计算值为 0 0 auto

            inherit:从父元素继承

            [ flex-grow ]:定义弹性盒子元素的扩展比率。

            [ flex-shrink ]:定义弹性盒子元素的收缩比率。

            [ flex-basis ]:定义弹性盒子元素的默认基准值。

    display 指定 HTML 元素盒子类型。

    flex-direction 指定了弹性容器中子元素的排列方式

    justify-content 设置弹性盒子元素在主轴(横轴)方向上的对齐方式。

    align-items 设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式。

    flex-wrap 设置弹性盒子的子元素超出父容器时是否换行。

    align-content 修改 flex-wrap 属性的行为,类似 align-items, 但不是设置子元素对齐,而是设置行对齐

    flex-flow flex-direction 和 flex-wrap 的简写

    order 设置弹性盒子的子元素排列顺序。

    align-self 在弹性子元素上使用。覆盖容器的 align-items 属性。

    flex 设置弹性盒子的子元素如何分配空间。

使用弹性盒子创建响应式页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        .flex-container {
            display: -webkit-flex;
            display: flex;
            -webkit-flex-flow: row wrap;
            flex-flow: row wrap;
            font-weight: bold;
            text-align: center;
        }
        .flex-container > * {
            padding: 10px;
            flex: 1 100%;
        }
        .main {
            text-align: left;
            background: cornflowerblue;
        }
        .header {background: coral;}
        .footer {background: lightgreen;}
        .aside1 {background: moccasin;}
        .aside2 {background: violet;}
        @media all and (min-width: 600px) {
            .aside { flex: 1 auto; }
        }
        @media all and (min-width: 800px) {
            .main    { flex: 3 0px; }
            .aside1 { order: 1; }
            .main    { order: 2; }
            .aside2 { order: 3; }
            .footer  { order: 4; }
        }
    </style>
</head>
<body>
<div class="flex-container">
    <header class="header">头部</header>
    <article class="main">
        <p>菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程(www.runoob.com)提供了最全的编程技术基础教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。</p>
    </article>
    <aside class="aside aside1">边栏 1</aside>
    <aside class="aside aside2">边栏 2</aside>
    <footer class="footer">底部</footer>
</div>
</body>
</html>