最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 2021前端知识点之CSS、HTML5篇

    正文概述 掘金(同大大)   2021-04-12   553

    目录

    1. 两栏布局,右侧自适应,三栏布局,中间自适应

    2. HTML5

    1.两栏布局,右侧自适应,三栏布局,中间自适应

       1.两栏布局,有边自适应
         (1)BFC里float,margin-left
         父级添加BFC,即overflow:hidden
         左边float,定宽:float:left;width:200px
         右边margin-left:210px
         (2)flex弹性布局
         父级设置display:flex
         左边定宽:width:200px
         右边:flex:1
       2.三栏布局,中间自适应
         (1)两边float,中间margin:
             父级BFC,设置overflow:hidden,解决高度没有的问题。
             左边左浮动,定宽:float:left,width:200px
             右边右浮动,定宽:float:right,width:100px
             中间margin:margin-left:210px;margin-right:110px
            `  <div class="container">
                <div class="left"></div>
                <div class="right"></div>
                <div class="middle"></div>
               </div>           `
         (2)两边absolute,中间margin(脱离文档流:根据最近已经定位的祖先元素定位,不考虑html)
             .left{
                 position:absolute;
                 left:0;
                 top:0;
                 width:200px
             }
             .right:{
                 position:absolute;
                 right:0;
                 top:0
                 width:100
             }
             .middle{
                 margin:0 110px 0 210px;
             }
         (3)display:table;table-layout:flexd
            `  <div class="container">
                <div class="left"></div>
                <div class="middle"></div>
                <div class="right"></div>
               </div>      `
             父级.container{
                     display:table;
                     table-layout:flexd;
                     width:100%;
                     text-align:center
                 }
                 .left .right{
                     display:table-cell;
                     width:100px
                 }
                 .middle{
                     width:100%;  //填充剩下的宽度
                     display:teble-cell
                 }
         (4)flex实现
             .container{
                 display:flex;
                 justify-content: space-between  //项目平均分布
             }
             .left .right{
                 width:100px
             }
             .middle{
                 flex:1;  //填充剩下的宽度,或者用width:100%
             }
         (5)grid实现
             .container{
                 display:grid;
                 grid-template-columns: 300px auto 300px;
             }
             
             
             
    

    2.HTML5

       1.语义化标签:
           head、footer、nav、aside、section、article、dialog、main、figure
       2.表单:
          类型:input增加了type = color、email、range、number、date、datetime、month、search、url、tel。由于浏览器兼容问题,很多都不适用,一般用ElementUI封装好的
          属性:placeholder、maxlength、minlength、require、autofocus、autocomplete
       3.多媒体标签:audio、vedio  通过src
       4.canvas
       5.SVG绘图:xml的2D图形语言,矢量图标 <svg>标签 ,和canvas有点像
       6.地理定位:Geolocation
       7.拖放API:drag、drop
       8.webWorker
       9.webStorage:sessionStorage/localStorage:getItem/setItem/removeItem/clear/
       10.webSocket
       
          29.BFC
    
       1.BFC(Block Formatting Context),即块级格式化上下文,是页面中的一块渲染区域。
       2.BFC的目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。
       3.BFC有一套属于自己的渲染规则:
           1、内部的盒子会在垂直方向上一个接一个的放置
           2、对于同一个BFC的两个相邻的盒子的margin会发生重叠,与方向无关
           3、每个元素的左外边距与包含块的左边界相接触(从左到右),即使浮动元素也是如此,但是BFC的区域不会与float的元素区域重叠
           4、计算BFC的高度时,浮动子元素也参与计算
           5、BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
       4.BFC的触发条件,包含不限于:
           1、根元素,即html元素
           2、浮动元素:float值为left、right
           3、overflow值不为visible,为auto、hidden、scroll
           4、display值为表格布局或弹性布局,如inline-block、table-cell、table-caption、table、inline-table、flex、inline-flex、grid、inline-grid
           5、绝对定位,position值为absolute、flxed
       
    
        (1)解决元素间距问题:防止margin重叠(塌陷),同一个BFC会引发margin重叠
        <style>
            p{background:#fcc;width:200px;line-heigth:100px;margin:100px;text-algin:center}
            .wrap{overflow:hidden}  //根据触发规则3,形成新的BFC
        </style>
        <body>
            <p>haha</p>
            <p>hehe</p>
        </body>
        根据触发规则1,根元素触发BFC,两个p元素的margin重叠,以最大的margin为准,根据渲染规则1和2,由于同一个BFC两个相邻的盒子的margin会发生重叠,所以解决方案是将p再裹一层容器,形成两个独立的BFC即可。
        <div class="wrap">
           <p>hehe</p>
        </div>
        
        
        (2)解决元素高度没了的问题:父级形成BFC可清除内部浮动,BFC内部有浮动元素时,可让它参与高度计算
        <style>
            .par{border:5px solid #fcc;width:300px}
            .child{border:5px;width:100px;height:100px;float:left}
        </style>
        <body>
            <div class="par">
              <div class=child"></div>
              <div class=child"></div>
            </div>
        </body>
        计算par高度时,高度为0,没了,是因为子元素没有参与计算。
        解决:让par形成BFC,根据BFC渲染规则5,浮动元素也会参与计算。
        解决方案:.par{overflow:hidden}  //根据触发规则3,形成BFC
        
        
        
        (3)解决多栏布局不能自适应问题:自适应多栏布局
        <style>
            body{width:300px;position:relative}
            .aside{width:100px;height:100px;float:left;background:#f66;}
            .main{height:200px;background:#fcc;}
        </style>
        <body>
          <div class=aside"></div>
          <div class=main"></div>
        </body>
        由于每个元素的左边距与包含块的左边界相接触,所以即使aside为浮动元素,main的左边依然会与包含块的左边相接触
        解决:根据BFC的渲染规则3,BFC不会与浮动盒子重叠
        解决方案:.main{overflow: hidden} //根据BFC触发规则3,形成BFC
        
    
    扩展:
    IFC、GFC、FFC
    IFC、GFC、FFC实际上都是BFC的细化。
    1.IFC(Inline formatting contexts):内联格式上下文
        内联盒子的高度由其包含行内元素中最高的实际高度计算而来。
        触发:display:inline-block,根据BFC触发规则4
        作用:水平居中、垂直居中
    2.GFC(GrideLayout formatting contexts):网格布局格式化上下文
        形成一个二维表格,拥有丰富的属性,控制行列、对齐
        触发:display:grid
        作用:二维表格渲染
    3.FFC(Flex formatting contexts):自适应格式上下文
        形成一个伸缩容器
        触发:display:flex/inline-flex
        只有谷歌、火狐支持
        
        
    

    30.实现元素的垂直水平居中

       1、利用定位 + margin:auto(脱离文档流)
           (1)父级设置为相对定位position:relative,子级绝对定位posittion:absolute
           (2)子级四个定位属性left、right、top、bottom都设置为0
           (3)子级设置margin:auto
    
         <style>
            .father{width:500px;height:300px;position:relative}
            .son{width:100px;height:40px;left:0;top:0;right:0;bottom:0;margin:auto;background:#f66;}
        </style>
        <body>
          <div class="father">
              <div class="son"></div>
          </div>
        </body>
    
       2、利用定位 + margin:负值(父元素高度变化仍然可实现,但是子元素宽高必须已知)
           (1)父级设置为相对定位position:relative,子级绝对定位posittion:absolute
           (2)子级四个定位属性left、top都设置为50%
           (3)子级设置margin-left:-(子级宽度的50%),margin-top:-(子级高度的50%)
           
       3、利用定位 + transform (优点:父元素高度和子元素的宽高都不需要知道)transform:translate(x,y),x和y表示的是x轴和y轴的值,起点是左上角,scale(n) 放大缩小比例,比如2.0和负值
           (1)父级设置为相对定位position:relative,子级绝对定位posittion:absolute
           (2)子级四个定位属性left、top都设置为50%
           (3)子级设置transform:translate(-50%,-50%) 
           
       4、table布局(未脱离文档流) table-cell
           其实是BFC/IFC内联格式化上下文的原理
           (1)父级设置display:table-cell,子级设置display:inline-block
           (2)父级设置vertical-align:middle,text-align:center
       5、flex布局(不定高,不定宽,常用)
           CSS3中的flex布局
           (1)父级设置display:flex
           (2)父级设置align-items:center,水平居中
           (1)父级设置justify-content: center,垂直居中
       6、grid布局(不定高、不定宽,兼容性相对较差)
           CSS3中的grid布局
           (1)父级设置display:grid
           (2)父级设置align-items:center,水平居中
           (1)父级设置justify-content: center,垂直居中
       
    

    31.隐藏页面元素的方式

       1.display:none
           元素在页面彻底消失,元素本身占有的空间会被其他元素占有,导致浏览器的重排和重绘,自身绑定的事件不会触发,也不会有过渡效果。
           特点:元素不可见,不占据空间,无法响应点击事件
       2.visibility:hidden
           DOM结构存在,不会触发重排,但会触发重绘,绑定事件不触发
           特点:元素不可见,占据页面空间,无法响应点击事件
       3.opacity:0
           设置元素透明度为0后是不可见的,DOM结构存在,不引发重绘、重排
           特点:改变元素透明度,元素不可见,占据页面空间,可响应点击事件
       4.设置height和width模型属性为0
           将元素的margin、padding、border、width、height等属性设置为0,若元素内有子元素,则设置overflow:hidden。
           特点:元素不可见,不占据空间,无法响应点击事件,DOM不存在
       5.position:absolute
           将元素移出可视区域
           `.hide{position:absolute;top:-9999px;left:-9999px}           `
           特点:元素不可见,不影响页面布局
       6.clip-path
           通过裁剪的形式
           ` .hide{clip-path:polygon(0px 0px 0px 0px 0px 0px 0px 0px)}          `
           特点:元素不可见,占据页面空间,无法响应点击事件
    
    1. em/px/rem/vh/vw的区别

      1、px 绝对长度单位,页面按精确像素展示
      2、em 相对长度单位,继承父级元素的字体大小font-size,若父级元素未设置,则用浏览器默认的字体尺寸16px,即1em=16px,整个页面的1em值不是一个固定的值
      3、rem 相对长度单位,相对的只是HTML根元素font-size的值,一般在根元素html上加上html{font-size:62.5%},之后1rem = 10px。rem集相对大小和绝地大小的优点于一身,故常用。
      4、vw 根据窗口的宽度分成100等份,100vw就标识满宽,始终针对窗口的宽,vh针对窗口的高。窗口在PC端指浏览器的可视区域,在移动端指布局视口。%相对于的是父元素,不是窗口。
      

    33.CSS选择器

     1.css选择器常用的有:
       1、id选择器
       2、类选择器
       3、标签选择器
       4、后代选择器(#id div)、
       5、子选择器(.class>.childClass)、
       6、相邻同胞选择器(.class+.brotherClass)、
       7、群组选择器(div,p)
       8、伪类选择器(:hover/:focus/:link/:active/:visited/:first-child)  CSS3
       9、伪元素选择器(:before/:after/:first-letter/:first-line)
       10、属性选择器(attribute) CSS3
       11、层次选择器(p~ul) CSS3
       
     2.选择器的优先级:
       
       !important > 内联 > ID选择器 > 类选择器 > 标签选择器 > * > 继承 > 默认
     
     3.选择器具有继承属性
     4.CSS选择器**解析顺序是从右往左**解析
     
    

    34.层叠上下文(stacking context)

      1.盒模型是三维的,平面画布的x轴、y轴,以及表示层叠的z轴,
      2.触发条件:
          (1)根元素 <html>本身即根层叠上下文
          (2)position属性,非static值,并设置z-index
          (3)CSS属性:flex(子元素z-index不为auto)、opacity(不为1)、transform(值不为none)、filter(值不为none)、will-change
      3.层叠顺序规则:
          (1)在同一层叠上下文中层叠等级才有意义
          (2)z-index的优先级最高
          (3)具体规则:background < (z-index<0)  <  block块级元素 < float浮动元素 < inline行内元素 < z-index=0/auto < (z-index>0)
          
    

    35.CSS盒模型

       1.一般说IE8及其以上为W3C盒模型,IE8以下是IE怪异盒模型,不是所有的IE都是IE盒模型
       2.页面渲染时,DOM元素所采用的布局模型,可通过box-sizing进行设置,根据width的区别可分为
           (1)标准盒模型box-sizing:content-box。width指content部分的宽度
           (2)IE盒模型 box-sizing:border-box。width = content + padding + border
        
       3.css盒子包含四部分:内容content、内边距padding、边框border、外边距margin
       4.在w3c标准盒模型里,一个块block的总宽度= width + padding + border + margin
       5.在IE盒模型里,一个块block的总宽度 = width + margin
    

    36.CSS的新属性

       1、布局:新增flex、grid
       2、选择器:新增first-of-type、nth-child
       3、盒模型:新增box-sizing,以选择IE的border-box和W3c的content-box
       4、动画:新增animation,2d变换,3d变换
       5、颜色:新增opacity、rbga
       6、字体:嵌入字体、字体阴影
       7、媒体查询@media
    

    37.CSS预处理器(SASS/LESS/POSTCSS)

       常用功能:嵌套、变量、循环语句、条件语句、自动前缀、单位转换、mixin复用
       
    

    38.清除浮动

       (1)clear:both
       (2)创建父级BFC,父级添加display:auto/hidden 属性
       (3)父级设置高度 
       (4)伪元素和IEhack
    

    起源地下载网 » 2021前端知识点之CSS、HTML5篇

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元