4
css面试题:请用尽可能多的方法实现css三栏布局,高度一致,左右宽度一定,中间宽度自适应。
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>css三栏布局</title>
    <style>
      html * {
        margin: 0;
        padding: 0;
      }

      section {
        height: 100px;
        margin-bottom: 20px;
      }

      section div {
        height: 100px;
      }

      .left {
        background-color: aqua;
      }

      .mid {
        background-color: burlywood;
      }

      .right {
        background-color: coral;
      }
    </style>
  </head>

  <body>
    <p>题目:假设高度已知,请写出三栏布局,其中左栏右栏各为100,中间自适应。</p>
    <!-- 浮动布局 -->
    <section class="float">
      <style>
        .float-left {
          float: left;
          width: 100px;
        }

        .float-right {
          float: right;
          width: 100px;
        }
      </style>
      <article>
        <div class="left float-left"></div>
        <div class="right float-right"></div>
        <div class="mid float-mid">我是用的浮动</div>
      </article>
    </section>
    <!-- flex布局 -->
    <section class="flex">
      <style>
        .flex article {
          display: flex;
        }

        .flex-left {
          width: 100px;
        }

        .flex-right {
          width: 100px;
        }

        .flex-mid {
          flex: 1;
        }
      </style>
      <article>
        <div class="left flex-left"></div>
        <div class="mid flex-mid">我是用的flexbox</div>
        <div class="right flex-right"></div>
      </article>
    </section>
    <!-- 绝对定位 -->
    <section class="position">
      <style>
        .position article{
          position: relative;
        }

        .position-left {
          position: absolute;
          left: 0;
          width: 100px;
        }

        .position-right {
          position: absolute;
          right: 0;
          width: 100px;
        }

        .position-mid {
          position: absolute;
          left: 100px;
          right: 100px;
        }
      </style>
      <article>
        <div class="left position-left"></div>
        <div class="right position-right"></div>
        <div class="mid position-mid">
          我是用的绝对定位
        </div>
      </article>
    </section>
    <!-- table布局 -->
    <section class="table">
      <style>
        .table article {
          display: table;
          width: 100%;
        }

        .table-left {
          display: table-cell;
          width: 100px;
        }

        .table-right {
          display: table-cell;
          width: 100px;
        }

        .table-mid {
          display: table-cell;
        }
      </style>
      <article>
        <div class="left table-left"></div>
        <div class="mid table-mid">我是用的表格布局</div>
        <div class="right table-right"></div>
      </article>
    </section>
    <!-- 网格布局 -->
    <section class="grid">
      <style>
        .grid article {
          display: grid;
          width: 100%;
          grid-template-rows: 100px;
          grid-template-columns: 100px auto 100px;
        }
      </style>
      <article>
        <div class="left grid-left"></div>
        <div class="mid grid-mid">我是用的网格布局</div>
        <div class="right grid-right"></div>
      </article>
    </section>
    后文思考:
    <ul>
      <li>1.各自优缺点</li>
      <li>2.去掉固定高度后有什么影响?</li>
      <li>3.各自兼容性</li>
    </ul>
  </body>
</html>

效果预览:
截屏2020-05-31 下午11.13.19.png


y_lucky
20 声望3 粉丝

做一只快乐的程序猿!!!