《css知识总结》ban本

227 阅读3分钟

css基础

  • css是一种样式表语言,是用来描述HTML或XML的文档呈现,CSS使用最广泛的版本为CSS2.1,支持IE浏览器,目前最新版本为CSS3。

文档流

  • 流动方向

    1.inline元素从左到右,到达最右边开始换行;

    2.block元素从上到下,每一个都另起一行;

    3.inline-block元素结合前两个的特点,从左到右,但是单个元素不会跨行。

  • 宽度

    1.inline元素的宽度为内部各元素的宽度和,不可以用width指定。

    2.block元素自动计算宽度,可用width指定。

    3.inline-block结合前两者的特点可用width指定。

  • 高度

    1.inline的高度由line-height间接决定,跟height无关。

    2.bloc高度由内部文档流元素决定,可设height。

    3.inline-block和block类似可设。height。

overflow溢出

  • 当内容宽度或高度大于容器时,会产生溢出的现象,此时可用overflow来设置是否显示滚动条;属性值为auto灵活设置,scroll永远显示,hidden直接隐藏溢出的部分,visible直接显示溢出的部分。还可设置overflow-x和overflow-y。

脱离文档流

  • 使用float元素
  • position:absolute/fixde元素

两种盒模型

  • content-box:内容盒-内容就是盒子的边界。即content-box width=内容宽度。
  • border-box:边框盒-边框才是盒子的边界。即boeder-box width=内容宽度+padding+border。
  • 一般使用border-box

css布局

  • float布局(不要在手机上使用此布局方式)

    1.子元素加float:left和width

    2.父元素加.clearfix。 style样式如下

    .clearfix:after{
     content: "";
     display: block; 
     clear: both;
    }
    
  • flext布局

    推荐flex小游戏 flexboxfroggy.com/

  • grid布局

    推荐flex小游戏 flexboxfroggy.com/

css动画

  • 渲染过程

    1.根据HTML构建HTML树(DOM)

    2.根据CSS构建CSS树(CSSOM)

    3.将两棵树合并成一棵渲染树(render tree)

    4.Layout 布局(文档流、盒模型、计算大小和位置)

    5.Paint 绘制(把边框颜色、文字颜色、阴影等画出来)

    6.Composite 合成 (根据层叠关系展示画面)

  • 三种更新方式

  • 关于transform/transition/animation建议看MDN文档更全面

  • transform常用的四个功能(一般配合transition过渡,inline元素不支持transform,需变成block)

    1,translate 位移;2,scale 缩放;3,rotate 旋转; 4,skew 倾斜。

    transform:scale(0.5) translate(100% 20%)
    transform:none /*取消所有*/
    
  • transition 过度(补充中间帧)

    1.语法

    transition:属性名 时长 过度方式 延迟

    transition:left 200ms linear 3s /*可以用逗号分隔两个不同属性*/
    

    可以用all代替所有属性

    transition:all 200ms
    

    过度方式有:linear / ease /ease-in /ease-out / ease-in-out等。 注意:并不是所有的属性都能过度

    display:none=>block没法过度
    一般改成visibility:hidden=>visible
    
  • animation(关键帧+动画)

    @Keyframes完整语法

    @Keyframes xxx{
    0% {top:0 ; left:0;}
    30% {top:50 ; left:50;}
    68%,72% {left:50%}
    100% {top:100% ; left:100%;}
    
    }
    
  • animation缩写语法

    animation:时长|过度方式|延迟|次数|方向|填充模式|是否暂停|动画名;
    时长:1s或1000ms
    过度方式:和transition取值一样如linear
    次数:32.4或者infinite
    方向:reverse|alternate|alternate-reverse
    填充模式:none|forwards|backwards|both
    是否暂停:paused|running
    以上所有属性都有对应的单独属性