美文网首页
2021 css 面试题

2021 css 面试题

作者: 莫名点 | 来源:发表于2021-10-10 10:52 被阅读0次

    1.BFC

    BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。

    2.垂直居中

    2.1 flex布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .box{
          width: 600px;
          height: 600px;
          border: 1px solid slategrey;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        .content{
          width: 200px;
          height: 200px;
          background-color: tomato;
        }
      </style>
    </head>
    <body>
      <div class="box">
        <div class="content"></div>
      </div>
    </body>
    </html>
    

    2.2 定位布局

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .box {
          width: 600px;
          height: 600px;
          margin: 0 auto;
          border: 1px solid slategrey;
        }
        .content{
          width: 200px;
          height: 200px;
          background-color: tomato;
          position: relative;
          top: 50%;
          left: 50%;
          margin: -100px 0 0 -100px;
          /* 可以把margin替换成transform */
          /* transform: translate(-50%, -50%); */
        }
      </style>
    </head>
    <body>
      <div class="box">
        <div class="content"></div>
      </div>
    </body>
    </html>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
        .box {
          width: 600px;
          height: 600px;
          position: relative;
          margin: 0 auto;
          border: 1px solid slategrey;
        }
        .content{
          width: 200px;
          height: 200px;
          background-color: tomato;
          position: absolute;
          margin: auto;
          top: 0;
          bottom: 0;
          left: 0;
          right: 0;
        }
      </style>
    </head>
    <body>
      <div class="box">
        <div class="content"></div>
      </div>
    </body>
    </html>
    

    3.浏览器最小字体,如何实现10px字体

     .font_12{
          font-size: 12px;
        }
        .font_10{
          font-size: 10px;
          transform: scale(0.83);
          display: inline-block;
          position: absolute;
          left: -2px;
        }
    

    4.H5新特性

    6.重排和重绘

    dom结构发生改变就会触发重排;重排一定会触发重绘;改变背景颜色会触发重绘

    7.CSS3 : 和 :: 的区别

    1.单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
    2.::before就是以一个子元素的存在,定义在元素主体内容之前的一个伪元素。并不存在于dom之中,只存在在页面之中。
    :before 和 :after 这两个伪元素,是在CSS2.1里新出现的。起初,伪元素的前缀使用的是单冒号语法,但随着Web的进化,在CSS3的规范里,伪元素的语法被修改成使用双冒号,成为::before ::after

    8.渐进增强和优雅降级

    9.盒模型

      box-sizing: border-box; // width = content + padding + border
      box-sizing: content-box; // width = content
    

    10.sass和less的区别

    11.飞翼布局,圣杯布局

    思路:统一向左浮动,中间的放在最前面浮动顺序中间->左边->右边,浮动后因为中间的宽度为100%;所有中间的占据一行;
    左边的和右边的按顺序排列在下面;如果中间的不为100%的话,三者应该在同一条线上,向让左边的移动到中间的左边上面去可以给左边的加margin-left: 负中间的宽度的值;因为左边已经移动到中间的左边了,所以中间的右边紧挨着右边的;然后右边的在中间的右边的话只需要给右边margin-left:负右边自己的宽度的值;这样就把左边和右边分别放在了中间的左边和右边的位置;会遮挡中间部分内容;这是给外层container加padding: 0 右边宽度 0 左边宽度;这时中间左右会有空白,接下来我们只需要给左右 position: relative;定位,然后左边left:自己的宽度;右边right: 自己的宽度就可以了

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Layout</title>
      <style>
     
        *{
          margin: 0;
          padding: 0;
        }
        header{width: 100%;height: 40px;background-color: darkseagreen;}
        .container{
          overflow: hidden;
          padding: 0 200px 0 150px;
        }
        .middle{
          float: left;
          height: 200px;
          width: 100%;
          background-color: darkcyan;
        }
        .left{
          position: relative;
          left: -150px;
          float: left;
          height: 200px;
          width: 150px;
          margin-left: -100%;
          background-color: darkgoldenrod;
        }
        .right{
          position: relative;
          right: -200px;
          width: 200px;
          float: left;
          margin-left: -200px;
          height: 200px;
          background-color:darkorange;
        }
        footer{width: 100%; height: 30px;background-color: darkslategray;}
      </style>
    </head>
    <body>
      <header><h4>Header内容区</h4></header>
      <div class="container">
        <div class="middle"><h4>中间弹性区</h4></div> 
        <div class="left"><h4>左边栏</h4></div> 
        <div class="right"><h4>右边栏</h4></div>
      </div>
    <footer><h4>Footer内容区</h4></footer>
    </body>
    </html>
    
    微信图片_20211011213530.png

    12.类选择器.a .b .a.b .a>.b是什么意思

    相关文章

      网友评论

          本文标题:2021 css 面试题

          本文链接:https://www.haomeiwen.com/subject/nmzznltx.html