1. 程式人生 > >實現img,文字平均分佈問題解決方案

實現img,文字平均分佈問題解決方案

“像編輯word一樣實現兩端對齊”

左對齊和右對齊都是很常見的對齊方式,但是很多時候兩端對齊也是必須解決的。文字對齊的text-align:justify,大家都不陌生,它只相容ie瀏覽器,然而兩端對齊對於很多響應式網頁和移動端的自適應有很大的用處,比如幾個按鈕,不管你螢幕尺寸怎麼變化都要他們之間的間隙保持不變,css3對這一塊也有解決方案,雖然相容性不是很好。不失為一種好的漸進增強方案。

1, text-align: justify+inline-block以及模擬text-align

這裡寫出通用簡單列子結構,下文不在累贅~ 
 <ul>
    <li><img
src="./header.png" alt="">
</li> <li><img src="./header.png" alt=""></li> <li><img src="./header.png" alt=""></li> <li><img src="./header.png" alt=""></li> </ul> 第一種實現樣式: * { padding: 0; margin: 0; } ul li img { width: 100px; height: 100px; } /* attention: 1.IE中要實現塊內單行兩端對齊需要使用其私有屬性text-align-last:justify配合,text-align-last 要生效,必須先定義text-align為justify 2.line-height:0 解決標準瀏覽器容器底部多餘的空白 3.font-size:0清楚firefox下多餘的空白 */ ul { width: 600px; height: 100px; margin: 0 auto; border: 1px solid #abcdef; overflow: hidden; text-align: justify; text-align-last: justify; line-height: 0; font-size: 0; } ul li { list-style: none; display: inline-block; } /* 模擬text-align: 1.text-align-last:justify 目前只有IE支援,標準瀏覽器需要使用 .demo:after 偽類模擬類似效果 2.opera瀏覽器需要新增 vertical-align:top 才能完全解決底部多餘的空白 */ ul::after { content: ""; display: inline-block; height: 0; font-size: 0; width: 100%; vertical-align: top; }

要說的,要注意的,都在程式碼裡面註釋了,實在沒有必要過多的解釋什麼。

2,css3 flex+justify-content: space-between;或者flexbox+box-pack:justify

版本迭代問題,box-pack是css3的新屬性,依賴於display:box(舊版彈性佈局),受box-orient影響,box-pack決定了子標籤水平對齊的方式,可選值有start | end | center | justify。使用box-pack:justify來實現兩端對齊非常簡單,程式碼量也少。如果是display:flex(新版彈性佈局)則用justify-content為水平對齊方式~

把它們2中方式都寫出來

核心程式碼應該是這樣

     ul {
        width: 600px;
        height: 100px;
        margin: 0 auto;
        border: 1px solid red;
        overflow: hidden;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }

3,css3 column(多列布局)

這個也是很簡單的,只需用column-count定義物件的列數,我這個demo有4個img,那麼定義為4列 column-gap定義了物件中列與列的間距,這個只能寫死或者根據排版計算間距,間距不能設定為百分比,顯得不夠靈活

新增以下字首就好:

   ul{
   -webkit-column-count:4;
   -moz-column-count:4;
   column-count:4;
   -webkit-column-gap:20px;
   -moz-column-gap:20px;
   column-gap:20px; 
 }

參考網站 http://www.cnblogs.com/PeunZhang/p/3289493.html