零基础Vue的小白学习路——CSS(五),CSS3新增特性

  • CSS3:在CSS2上新增了许多新功能,解决了一些实际面临的问题。
    • 什么是私有前缀:-webkit-border-radius 中,-webkit-就是私有前缀。
    • 私有前缀的作用:W3C标准提出的某个CSS特性,在浏览器正式支持前,浏览器厂商会根据浏览器的内核,适用私有前缀来测试该CSS特性,在浏览器正式支持该CSS特性后就不需要私有前缀了。
    • 常见浏览器私有前缀:
      • Chrome浏览器: -webkit-
      • Safari浏览器: -webkit-
      • Firefox浏览器: -moz-
      • Edge浏览器: -webkit-
      • 旧Opera浏览器: -o-
      • 旧IE浏览器: -ms-
    • 注意:平常编程时,对于CSS3的常用新特性主流浏览器都是支持的,对于老浏览器,我们也可以借助现代的构建工具(webpack)来帮助我们添加私有前缀。
    • 新增长度单位:
      • vw:视口宽度的百分比例
      • vh:视口高度的百分比例
      • vmax:视口宽或高(二者中的较大值)的百分比例
      • vmin:视口宽或高(二者中的较小值)的百分比例
    • 新增颜色设置方式:
      • rgba\hsl\hsla
    • 新增选择器:
      • 动态伪类、目标伪类、语言伪类、UI伪类、结构伪类、否定伪类、伪元素(详见前文)
    • 新增盒子模型相关属性:
      • content-box:width和height设置盒子内容区大小
      • border_box:width和height设置盒子总大小
      • resize:允许用户调节元素大小
        • horizontal:水平方向可拉动伸缩
        • vertical:垂直方向可拉动伸缩
        • both:水平、垂直拉动伸缩
      • box-shadow:
        • 写两个值:水平、垂直位置信息
        • 写三个值:
          • 1、水平、垂直位置、阴影颜色
          • 2、水平、垂直位置、阴影模糊程度
        • 写四个值:水平、垂直、阴影模糊程度、阴影颜色
        • 写五个值:水平、垂直、阴影模糊程度、阴影外延值、阴影颜色
        • 写六个值:水平、垂直、阴影模糊程度、阴影外延值、阴影颜色、内阴影(inset)
      • opacity:设置整个元素体的透明度,值为0-1之间,1为完全不透明
    • 新增背景相关属性:
      • background-origin:背景图片的起始点位置
        • padding-box:从padding区域开始显示背景图
        • border-box:从border区域开始显示背景图
        • content-box:从content区域开始显示背景图
      • background-clip:背景修剪
        • padding-box:超过padding区域的不显示
        • border-box:超过border区域的不显示
        • content-box:超过content区域的不显示
        • text:背景图只呈现在文字上(-webkit-background-clip中使用)
      • background-size:调整背景图大小
        • contain:将背景图完整的呈现出来,但容器可能会有部分空白区域
        • cover:将背景图完整的覆盖容器,但可能会丢失部分图片内容
        • 像素值,像素值:指定背景图具体大小
        • 百分比,百分比:用百分比指定背景图具体大小
        • auto:背景图片的真实大小——默认值
      • backgound复合属性:
        • 背景颜色 背景url 是否重复 位置 / 大小 原点 裁剪方式
      • 多背景图:通过background实现
        • background:url() no-repeat 第一个背景图位置,url() no-repeat 第二个背景图位置,url() no-repeat 第三个背景图位置,url() no-repeat 第四个背景图位置
    • 新增边框相关属性:
      • border-radius:边框圆角
        • 像素值大小(一个值为所有边框角,两个值为椭圆角,八个值为四个椭圆角的单独设置)
        • 元素宽高的百分比
        • 注意:单独设置边框各个角的圆角需要分别设置border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius。
      • outline:边框外轮廓
        • outline:大小,边框形状,颜色
        • outline-width:大小
        • outline-color:颜色
        • outline-style:边框形状
      • outline-offset:外轮廓偏移量
    • 新增文本属性:
      • text-shadow:文本阴影
        • text-shadow:水平、垂直位置、阴影模糊程度,阴影颜色
      • white-space:文本换行
        • pre:按原文显示,即便超出容器也不会改变显示位置
        • pre-wrap:超出容器的文字会自动换行
        • pre-line:超出容器的文字会自动换行,但只认文字中间的空格,文字始末的空格不记
        • nowrap:所有文字强制不换行
      • text-overflow:文本溢出
        • clip:超出文字直接截掉
        • ellipsis:溢出的文字用...表示省略
        • 注意:前提需要与overflow为非visible值结合使用
      • text-decoration:文本修饰
        • text-decoration:线位置,形状,颜色
        • text-decoration-line:线的位置
        • text-decoration-style:线的形状
        • text-decoration-color:线颜色
      • -webkit-text-stroke:文本描边
        • -webkit-text-stroke:颜色,粗细
        • -webkit-text-stroke-color:描边颜色
        • -webkit-text-stroke-width:描边粗细
    • 渐变:
      • 线性渐变:
        • 设置渐变颜色:background-image:linear-gradient(颜色1,颜色2,颜色3...)
        • 设置渐变方向:
          • 通过关键词设置:background-image:linear-gradient(to 位置关键词,颜色1,颜色2,颜色3...)
          • 通过角度设置:background-image:linear-gradient(角度,颜色1,颜色2,颜色3...)
        • 设置渐变区域:background-image:linear-gradient(角度,颜色1 像素位置1,颜色2 像素位置2,颜色3 像素位置3...)
      • 径向渐变:
        • 综合写法:background-image:radial-gradient(半径1 半径2 at 圆心位置1 圆心位置2,颜色1 像素位置1,颜色2 像素位置2,颜色3 像素位置3...)
        • 设置渐变颜色:background-image:radial-gradient(颜色1,颜色2,颜色3...)
        • 调整径向渐变圆心位置:
          • 通过关键词:background-image:radial-gradient(at 位置关键词,颜色1,颜色2,颜色3...)
          • 通过像素值:background-image:radial-gradient(at 像素位置1 像素位置2,颜色1,颜色2,颜色3...)
        • 调整径向渐变形状:
          • 通过关键词:background-image:radial-gradient(circle,颜色1,颜色2,颜色3...)
          • 通过调整渐变半径:background-image:radial-gradient(半径1 半径2,颜色1,颜色2,颜色3...)
        • 调整径向渐变区域:background-image:radial-gradient(颜色1 像素位置1,颜色2 像素位置2,颜色3 像素位置3...)
      • 重复渐变:在没有发生渐变的区域重复发生渐变
        • background-image:repeating-linear-gradient(颜色1,颜色2,颜色3...)
        • background-image:repeating-radial-gradient(颜色1,颜色2,颜色3...)
    • web字体:通过@font-face指定字体的具体位置,浏览器会自动下载该字体,并在网页中显示应用该字体的文字。
      • 注意:中文的字体文件很大,使用完整字体文件不显示,通常针对某几个文字进行单独定制,可使用阿里web字体定制工具:iconfont-webfont平台
    • 字体图标:
      • 特点:
        • 相比图片更加清晰
        • 灵活性高,更方便改变大小、颜色、风格等
        • 兼容性好,IE也能支持
      • 注意:推荐使用阿里图标库
    • 变换:
      • 2D变换:transform
        • 位移:translate(x轴位移,y轴位移)
          • 注意:位移与相对定位很类似,不脱离文档流;相对定位百分比值参考的是父元素,位移的百分比值参考的是自身;浏览器处理位移的效率更高;位移对行内元素无效;位移配合定位,可实现元素水平垂直居中。
        • 缩放:scale(x方向缩放,y方向缩放)
          • 注意:scale一个值可同时设置水平和垂直缩放。
        • 2D旋转:rotate(角度值)或rotateZ(角度值)
        • 扭曲:skew(x角度值,y角度值),让元素在二维平面内被“拉扯”,进而“走形”。
        • 多重变换:多个变换,可以同时使用一个transform来编写。
          • transform:translate() scale() rotate()
        • 变换原点:tansform-origin(x轴位移,y轴位移)
      • 3D变换:
        • 第一步(开启三维控件):transform-style:preserve-3d
        • 第二步,设置景深(有了透视效果,近大远小):perspective:像素值
        • 第三步:透视点位置:pespective-origin:x轴位置 Y轴位置
        • 3D位移:tanslateZ(),translate3d(x,y,z)
        • 3D旋转:rotate(1,1,1,像素值)
        • 3D缩放: scaleZ(),scale3d(x,y,z缩放倍数)
        • 3D_多重变换:translateZ() scaleZ()rotateY()
        • 背部可见性:backface-visibility:hidden
    • 过渡:可以在不使用Flash动画,不使用JS的情况下,让元素从一种样式平滑过渡为另一种样式
      • 第一步:设置哪个属性需要过渡效果:transition-property:height/width/...其他属性/all
      • 第二步:设置过渡时间:transition-duration:持续时长
      • 过渡延迟:transition-delay:延迟时间
      • 过渡样式:transition-timing-function:ease(慢,快,慢)/liner(匀速)/ease-in(慢,快)/ease-out(快,慢)/ease-in-out(慢,快,慢)/step-start(不考虑过渡时间,直达终点)/step-end(等完过渡时间直达终点)/steps(20)(分步进行过渡)/cubic-bezier(数字,数字,数字,数字)(贝塞尔曲线)
      • 过渡复合属性:
        • transition:过渡时间、需要过渡的属性、延迟时间、过渡样式。
    • 动画:
      • 第一步:声明动画:adimation-name:自定义动画名
      • 第二步:
        • 定义动画方式一:@keyframes 动画名 { from {第一帧} to {最后一帧}}
        • 定义动画方式二:@keyframes 动画名 { 0% {第一帧} ?%{中间任一帧} 100%{最后一帧}}
      • 第三步:应用动画:
        • 动画时间:animation-duration
        • 延迟时间:animation-delay
        • 其他属性:
          • 动画方式:animation-timing-function,同transition-timing-function
          • 动画播放次数:animation-iteration-count:指定次数/infinite(无限次)
          • 动画方向:animation-direction:normal/reverse(反方向)/alternate(往复运动)/alternate-reverse(反向往复运动)
          • 动画以外的状态(不发生动画的时候在哪里):animation-fill-mode:forwards(停在最后一帧)/backwards(返回初始帧)
          • 动画的播放状态:animation-play-state:paused(暂停)
        • 动画复合属性:animation:动画名,动画时间,延迟时间,动画方式,播放次数,动画方向,动画结束状态
        • 动画和过渡的区别:动画不需要触发条件,过渡需要;动画可以通过设置多个关键帧对图像进行精细设置。
    • 多列布局:
      • column-count:列数。直接指定列数
      • column-width:列宽。指定列宽,自动计算列数
      • columns:列数,列宽。复合属性
      • column-gap:列间距。调整列间距
      • column-rule:边框宽度,边框风格,边框颜色。
      • column-span:all/none。是否横跨所有列
    • 伸缩盒模型:
      • display:flex/inline-flex。将该元素变为伸缩容器/行内伸缩容器,开启flex布局
      • 注意:伸缩容器的所有子元素(仅子元素)自动成为了伸缩项目,伸缩项目直接成为块元素。
      • 主轴方向:
        • flex-direction:row(从左到右)/row-reverse(从右到左)/column(从上到下)/column-reverse(从下)。
      • 主轴换行:
        • flex-wrap:wrap(换行)/wrap-reverse(反转的换行)/nowrap(不换行)。
      • 复合属性:
        • flex-flow:主轴方向 换行方式
      • 主轴对齐方式:
        • justify-content:flex-start/flex-end/center/space-around(均匀分布一行,项目间距离是项目距边缘的二倍)/space-between(均匀分布一行,项目间距离相等,项目与边缘没有距离)/space-evenly(均匀分布,项目间距离和项目距边缘相等)
      • 侧轴对齐:
        • 一行:align-items:flex-start/flex-end/center/baseline(基线对齐)/stretch(拉伸到整个父容器,伸缩项目不能给高度)
        • 多行:align-content:flex-start/flex-end/center/space-around/space-between/space-evenly/stretch
      • 元素水平垂直居中:
        • 方案一:flex+align
          • display:flex
          • justify-content:center
          • align-items:center
        • 方案二:flex+margin
          • display:flex
          • margin:auto
        • 方案三:文本对齐或块对齐方式
          • 子元素为行内块元素或行内元素:
            • text-align:center
            • vertical-align:middle或者指定line-height:父元素height值
          • 子元素为块元素:
            • margin:0 auto
            • margin-top:父元素高一半-自身高度的一半
        • 方案四:绝对定位+margin:auto
          • position:absolute
          • margin:auto
        • 方案五:绝对定位+margin
          • position:absolute
          • top:50%;margin-top:-元素自身高度一半
          • left:50%;margin-left:-元素自身宽度的一半
        • 方案六:绝对定位+translate
          • position:absolute
          • top:50%;left:50%
          • transform:translate(-50%,-50%)
        • 方案七:table-cell
          • display:table-cell
          • text-align:center
          • vertical-align:middle
      • 项目基准长度:设置伸缩项目在主轴上的基准长度
        • flex-basis:像素值
      • 伸缩:
        • 伸缩项目——伸:
          • flex-grow:数值,数字表示每个项目拉伸的比例
        • 伸缩项目——缩:
          • flex-shrink:数值,影响项目缩小时缩小值的比例
      • 伸缩复合属性:
        • 一般写法:flex:flex-grow数值 flex-shrink数值 基准长度
        • flex:auto同flex:1 1 auto
        • flex:1 同flex:1 1 0 表示可拉伸压缩,基准长度为0(最常用)
        • flex:none同flex:0 0 auto 表示不能拉伸压缩
        • flex:0 auto同flex:0 1 auto表示不能拉伸可以压缩
    • 响应式布局:
      • @media print/screen/all{}:只有在特定媒体类型才会执行
      • @media (width/max-width/min-width/device:800px):检测到特定媒体特性时执行
      • 运算符:, AND not Only
    • 项目的排序与单独对齐:
      • order:默认值为0,越小排序越前
      • align-self:flex-start/flex-end/center
    • BFC(块格式化上下文):
      • 作用:
        • 1、开启BFC后不会有margin塌陷问题
        • 2、元素开启BFC后不会被其他浮动元素覆盖
        • 3、开启BFC后,就算其子元素浮动,元素自身高度也不会塌陷
      • 如何开启:
        • 根元素
        • 浮动元素
        • 绝对定位、固定定位的元素
        • 行内块元素
        • 表格单元格:table\thead\tbody\tfoot\th\td\tr\caption
        • overflow值不为visible的元素
        • 伸缩项目
        • 多列容器
        • column-span为all的元素
        • display值为flow-root的元素

CSS基础篇完结!撒花!

猜你喜欢

转载自blog.csdn.net/qq_36215279/article/details/132799223
今日推荐