您當前位置: 南順網絡>> 官方資訊>> 建站知識

詳解左右寬度固定中間自(zì)适應html布局解決方案

本文介紹了詳解左右寬度固定中間自(zì)适應html布局解決方案,分享給大家,具體如(rú)下:

a.使用浮動布局

html結構如(rú)下

<div class="box">

    <div class="left">left</div>

    <div class="right">right</div>

    <div class="center">center</div>

</div>  

//此處注意要先渲染左、右浮動的(de)元素才到中間的(de)元素。元素浮動後剩餘兄弟塊級元素會占滿父元素的(de)寬度

<style>

   .box{

        height:200px;

    }   

    .left{

        float:left;

        width:300px;

    }

    .right{

        float:right;

        width:300px;

    }

</style>


html結構如(rú)下b.使用固定定位


<div class="box">

    <div class="left">left</div>

    <div class="right">right</div>

     <div class="center">center</div>

</div>

//和(hé)浮動布局同理(lǐ),先渲染左右元素,使其定位在父元素的(de)左右兩端,剩餘的(de)中間元素占滿父元素剩餘寬度。

<style>

    .box{

        position: relative;

      }

      .left{

        position: absolute;

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

        position: absolute;

        right: 0;

      }

      .center{

        margin: 0 100px;

        background: red;

      }

</style>

将父元素display:table,子(zǐ)元素display:table-cell,會将它變為(wèi)行內(nèi)塊。c.表格布局

這種布局方式的(de)優點是兼容性好。


<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

    .box{

        display: table;

        width: 100%;

      }

      .left{

        display: table-cell;

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

        display: table-cell;

      }

      .center{

        width: 100%;

        background: red;

      }

</style>


父元素display:flex子(zǐ)元素會全部并列在一(yī)排。d.彈性布局

子(zǐ)元素中flex:n的(de)寬度會将父元素的(de)寬度/n

如(rú)flex:1,寬度就等于父元素高(gāo)度。

彈性布局的(de)缺點是兼容性不高(gāo),目前IE浏覽器無法使用彈性布局


<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

    .box{

        display: flex;

        width: 100%;

      }

      .left{

       

        width: 100px;

        left: 0;

      }

      .right{

        width:100px;

      }

      .center{

        flex:1;

      }

</style>


父元素display:grid;e.網格布局

grid-templatecolumns:100px auto 100px;

依次為(wèi)子(zǐ)元素寬100px 第二個自(zì)适應 第三個100px;

網格布局的(de)優點是極為(wèi)簡便,直接通過父元素樣式決定,缺點是兼容性不高(gāo)。


<div class="box">

  <div class="left">

    left

  </div>

  <div class="center">

    center

  </div>

  <div class="right">

    right

  </div>

</div>

<style>

  .box{

        display: grid;

        grid-template-columns: 100px auto 100px;

        width: 100%;

      }

</style>



編輯:--ns868