亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

css九宮格布局的五種方法

  發(fā)布時間:2023-09-18 16:56:03   作者:牛奶面包吖   我要評論
本文主要介紹了css九宮格布局的五種方法,內容包括grid布局、flex布局、table布局、float浮動定位、inline-block+letter-spacing屬性這五種方法的實現(xiàn),感興趣的可以了解下

要實現(xiàn)的九宮格效果圖如下:

九宮格布局效果圖

公共樣式:

 div{
      width: 300px;
      height: 300px;
  }
    ul{
      padding: 0;
      width: 100%;
      height: 100%;
  }
   li{    
      list-style: none;
      text-align: center;
      line-height: 100px;
      margin: 3px;
      background-color: #243F49;
      color: white;
      border: 1px solid white;
      font-weight: bolder;
  }
<div>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
  </ul>
</div>

1.grid網格布局

grid-template-columns 用于定義每一列的寬度; grid-template-rows 用于定義每一行的高度;grid-gap設置網格的行間距、列間距

ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*設置為grid網格布局*/
      display: grid;
      /*設置三行高度都為100px;*/
      grid-template-rows:100px 100px 100px ;
       /*設置三行寬度都為100px;*/
      grid-template-columns: 100px 100px 100px;
      置網格的行間距、列間距都為3px
      /*grid-gap: 3px;*/
  }

2.flex布局

計算好每個li的寬度和高度,總的寬、高度為300px,那么每個li的寬高就為300px/3=100px 但是由于每個li設置了margin為3px那么:
每個li的寬度= 100px - (margin-left + marginr-right)=100-(3+3) = 94px 我們將每個li的寬度設置為94px即可。
每個li的高度=100px - (margin-top + margin-bottom) = 100-6 = 94px 我們將每個li的高度設置為94px即可。
確定了總的div寬高度和每個li的寬高度后用flex布局進行換行。
當然了,先確定三個盒子的高、寬度 *3+ 間距 *2 *3個= 總寬/高度這樣的計算順序更快。

  ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*設置布局方式為flex布局*/
      display: flex;
      /*換行*/
      flex-wrap: wrap;
  }
  li{
      /*固定設置每個li的寬度和高度*/
      width: 94px;
      height: 94px;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      border: 1px solid white;
      font-weight: bolder;
  }

3.float浮動定位

給總的div設置一個固定的寬高,計算總的高、寬度 = 三個盒子3 + 間距2 *3個再設置每個li固定的寬高,利用float來換行,再給父元素overflow:hidden進項清除浮動定位。
每個li的寬高度為94px,margin為3px ,div的總高度、寬度=943+32*3=300px。

  ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*清除浮動*/
      overflow: hidden;    
  }
  li{
      /*固定設置每個li的寬度和高度*/
      width: 94px;
      height: 94px;
      /*第三種方法:浮動定位進行換行*/
      float: left;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      font-weight: bolder;
  }

4.inline-block+letter-spacing屬性/font-size:0

和前面兩種一致,先計算寬高度、設置每個li的寬高度,再將li使用dispaly:inline-block換行,再用letter-spacing屬性的負值進行減少字符之間的空白

letter-spacing屬性是增加(值為正)或減少(值為負)字符間距(字符間的空白);

ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*減少字符間的空白*/
      letter-spacing: -5px;/*這里使用font-size:0;也可*/
   }
   li{
      /*設置每個li的固定寬度和高度*/
      width: 94px;
      height: 94px;
      display: inline-block;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      font-weight: bolder;
  }

5.table布局

將父元素設置為dispaly:table布局形式,使得元素以表格形式來顯示,再設置單元格的邊框間距。再設置相應的表格行形式display: table-row;和單元格形式display: table-cell

  <style>
ul{
    width: 300px;
    height: 300px;
    /*元素作為塊級表格來顯示  padding失效*/
    display: table;
    /*設置相鄰單元格的邊框間距*/
    border-spacing: 5px;
}
li{
    list-style: none;
    text-align: center;
    background-color: #243F49;
    color: white;
    font-weight: bolder;
    /*此元素會作為一個表格行來顯示 margin和padding都失效*/
    display: table-row;
}
div{
    line-height: 90px;
    text-align: center;
    /*元素以單元格形式來顯示  Margin失效*/
    display: table-cell;
}
 <ul>
    <li>
      <div>1</div>
      <div>2</div>
      <div>3</div>
    </li>
    <li>
      <div>4</div>
      <div>5</div>
      <div>6</div>
    </li>
    <li>
      <div>7</div>
      <div>8</div>
      <div>9</div>
    </li>
  </ul>

效果圖:

效果圖

到此這篇關于css九宮格布局的五種方法 的文章就介紹到這了,更多相關css九宮格布局內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

  • CSS實現(xiàn)頁面九宮格布局的簡單示范

    九宮格布局在制作一些Web App時還是經??梢杂玫降?這里我們以一個大概的結構示例來作CSS實現(xiàn)頁面九宮格布局的簡單示范,不過需要注意IE6下的兼容性問題.
    2016-06-27

最新評論