CSS3

105 阅读6分钟

CSS3选择器

层级选择器:
    E>F{} 子元素选择器,选中e元素中的子元素f
    E+F{} 相邻兄弟元素选择器,选中紧挨着e的那一个f兄弟元素
    E~F{} 通用兄弟选择器,选中e后所有的f兄弟元素
属性选择器:
    e[attr]{} 选中e元素,且有attr属性
    e[attr="value"]{} 选中e元素,且attr属性值为value
    e[attr~="value"]{} 选中e元素,且attr属性值包含value
    【拓展】
        e[attr^="value"]{} 选中e元素,且attr属性值以value开头
        e[attr$="value"]{} 选中e元素,且attr属性值以value结尾
        e[attr*="value"]{} 选中e元素,且attr属性值包含value
        e[attr|="value"]{} 选中e元素,且attr属性值以value或者value-开头
结构伪类选择器:
    X:first-child{} 选中x元素,且x元素是第一个子元素
    X:last-child{} 选中x元素,且x元素是最后一个子元素
    X:nth-child(n){} 选中指定位置的x元素
        n是从0开始的自然数
        2n = even 偶数序列
        2n-1 = odd 奇数序列
    X:only-child{} 选中x元素,且只有x一个元素
目标伪类选择器:
    .box:target{} 当box被关联的时候选中
    【注】需要结合锚点链接一块使用
UI元素状态伪类选择器:
    :enabled{} 可用状态
    :disabled{} 禁用状态
    :checked{} 选中状态
    ::selection{} 选中文本状态,主要针对背景颜色 文本颜色
否定选择器:
    .box:not(p){} 选中.box元素,但是排除.box元素中标签为p的元素
动态伪类选择器:
    :link{} 未点击状态
    :visited{} 访问过后的状态
    :hover{} 鼠标悬停的状态
    :active{} 鼠标按下状态

CSS3相关属性

text-shadow:水平阴影 垂直阴影 模糊度 阴影颜色;
background-size:;
    px % cover contain
    【注】多背景设置:background:url(),url();
圆角:
    border-radius:10px;
    border-radius:10px/40px; 水平圆角/垂直圆角
盒模型:
    box-sizing:;
        border-box 怪异盒模型(ie盒模型)
        content-box 标准盒模型
    标准盒模型:
        W=width+左右padding+左右border
        H=height+上下padding+上下border
    怪异盒模型
        W=width(包含了padding border)
        H=height(包含了padding border)
  

flex弹性盒布局

弹性盒:
    设置为弹性盒后失效的属性:float clear vertical-align
    将父元素设置为弹性盒后,有容器属性和项目属性
    容器属性是:设置在容器上,影响的是项目
    项目属性是:设置在项目上,影响的是项目本身
    默认主轴为水平方向,侧轴为垂直方向
    
    容器(父元素):
        1:display:设置为弹性盒;
            flex
            inline-flex
        2:flex-direction:设置主轴方向;
            row  水平主轴
            row-reverse 反向水平主轴
            column  垂直主轴
            column-reverse 反向垂直主轴
        3:justify-content:设置主轴对齐方式;
            flex-start  起始位置
            center  居中
            flex-end  结束位置
            space-around  两段平分
            space-between  两段对齐
            space-evenly  平均分配
        4:align-items:侧轴对齐方式;
            flex-start  起始位置
            center  居中
            flex-end  结束位置
            stretch  拉伸
            baseline  文本底部对齐
        5:flex-wrap:是否换行;
            wrap 换行
            wrap-reverse 反向换行
        6:align-content:多跟侧轴对齐方式;子元素换行的情况下使用
            flex-start 起始位置
            center 居中
            flex-end 结束位置
            space-between 两段对齐
            space-around 两段平分
            space-evenly 平均分配
    项目(子元素):给子元素设置,影响子元素本身
        1:align-self:侧轴对齐方式;
            flex-start  起始位置
            center  居中
            flex-end  结束位置
            stretch  拉伸
            auto  默认值
        2:order:反向排序;
            数字越大,越靠后,反之靠前,可以为负数
        3:flex:缩 放 大小;
            flex-grow:放大;
            flex-shrink:缩小;
            flex-basis:大小;
    多列布局:
        column-count:列数;
        column-gap:列间距;
        column-rule:列边框大小 形态 颜色;
        column-span:是否跨列;
            none 不跨列
            all 横跨所有
        column-fill:填充方式;
            auto 优先填满上一列
            balance 尽可能平均分配
        column-width:列宽;
        columns:列数 列宽;
   

CSS3渐变+过渡+旋转

线性渐变:
     background-image:linear-gradient(方位,颜色值1,颜色值2...);
     重复渐变: background - image: repeating - linear- gradient (范围,颜色值1 ,颜色值2....);
径向渐变:
    background: radial - gradient(原心点坐标,渐变大小,颜色值1,颜色值2...);
    重复渐变: background:repeating radial-gradient (原心点坐标,渐变大小,颜色值1 ,颜色值2...);
过渡:
    transition:过渡属性过渡时间延迟时间动画类型;
    transition- property:过渡属性;
    transition- duration:过渡时间;
    transition- delay:延迟时间;
    transition- timing- function:过渡动画类型;
        linear 匀速运动
        ease 减速运动
        ease-in慢慢加速
        ease-out慢慢减速
        ease- in-out先加速,后减速
        贝塞尔曲线
2D:
    transform:功能函数;
        功能函数:
            位移:
                translateX( )
                trans lateY( )
                translate(x)
                translate(x,y)
                [注]可以为负数,为相反反向
            缩放:
                scaleX( )
                scaleY()
                scale(xy)
                scale(x,y)
                [注]可以为负数,为相反反向
                    1是默认大小
                    绝对值比1大,放大
                    绝对值比1小,缩小
            倾斜:
                skewX( )
                skewY()
                skew(x)
                skew(x,y)
            旋转:
                rotateX( )
                rotateY()
                rotate(z )
            景深:近大远小的效果
                perspective:;给父元素设置,作用到子元素身上
            3D环境:
                transform-style:;
                flat 2D环境
                preserve-3D 3D环境
            3D功能函数:
                位移:
                    translatez()
                    translate3D(x,y,z)l
                旋转:
                    rotatez()
                    rotate3D(x,y,z,deg)
                    x y z 取值为0-1 0为否 1为是 deg是角度
                缩放:
                    scalez()
                    scale3D(x,Y;z)
        动画:
            定义动画
                方式一:
                    @keyframes namf
                        from{}
                        to{}
                方式二:
                    @keyframes namef
                        0%{}
                        50%{}
                        100%{}      
       调用动画
            animation:动画名字 运动时间
    调用动画
        animation:动画名字 运动时间 延迟时间 动画类型 运动次数 运动方向;
            animation-name:动画名称;
            animation-duration: 运动时间;
            animation-timing-function:动画类型
                lienar
                ease
                ease-in
                ease-out
                ease-in-out
                step-start 逐顺动画
            animation-iteration-count: 运动次数;
                具体数字
                infinite 无限循环
            animation-direction: 运动方向;
                normal 常规运动
                reverse 反向运动
                alternate 先正后反
                alternate-reverse 先反后正
            animation-play-state:是否运动;
                runnning 运动
                paused 暂停
    关于animationtransition 的区别:
    相同点:都是随着事件的变化而改变元素的属性值
    不通电:
        前者页面加载完立即执行;后者需要触发方式
        前者可以有多个状态;后者还有一个状态

grid网格布局

    display:设置为网格布局;
        grid
        inline-grid
    grid-template-columns:分列1 分列2 分列3;
         px % fr份数 repeat(列数,大小) repeat(auto-fi11,大小) 根据大小确定列数
         auto 自适应 minmax(最小值,最大值) 
    grid-column-gap:列间距
    grid-row-gap:行间距;
    grid-gap:行间距 列间距
        [注]新版已经省略grid- 前缀
        column-gap:列间距
        row-gap:行间距;
        gap:行间距 列间距
    grid-template-areas:"分区1 分区2 分区3”
       [注]分区只能分出矩形区
        需要结合项目属性调用: grid-area:调用分区;
    justify-items:内容在单元格内部的水平对齐方式;
    align-items:内容在单元格内部的垂直对齐方式;
    综合写法:place-items:垂直 水平;
        start 起始位
        center 居中
        end 结束位
        stretch 拉伸
    justify-content:网格整体在容器内的水平对齐方式;
    align-content:网格整体在容器内的垂直对齐方式;
    综合写法:place-content:垂直 水平;
        start 起始位
        center 居中
        end 结束位
        stretch 拉伸
        space-between 两端对齐
        space-around 两端平分
        space-evenly平均分配