× 目录 [1]float [2]inline-block [3]table [4]flex
前面的话
等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式
思路一: float
缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的误差
【1】float + padding + background-clip
使用padding来实现子元素之间的间距,使用background-clip使子元素padding部分不显示背景
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ margin-right: -20px; overflow: hidden;}.child{ float: left; height: 100px; width: 25%; padding-right: 20px; box-sizing: border-box; background-clip: content-box;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: lightblue;">1</div> <div class="child" style="background-color: lightgreen;">2</div> <div class="child" style="background-color: lightsalmon;">3</div> <div class="child" style="background-color: pink;">4</div> </div> </div>
【2】float + margin + calc
使用margin实现子元素之间的间距,使用calc()函数计算子元素的宽度
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ overflow: hidden; margin-right: -20px;}.child{ float: left; height: 100px; width: calc(25% - 20px); margin-right: 20px;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: lightblue;">1</div> <div class="child" style="background-color: lightgreen;">2</div> <div class="child" style="background-color: lightsalmon;">3</div> <div class="child" style="background-color: pink;">4</div> </div> </div>
【3】float + margin + (fix)
使用margin实现子元素之间的间距,通过增加结构来实现兼容
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ overflow: hidden; margin-right: -20px;}.child{ float: left; width: 25%;}.in{ margin-right: 20px; height: 100px;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: blue;"> <div class="in" style="background-color: lightblue;">1</div> </div> <div class="child" style="background-color: green;"> <div class="in" style="background-color: lightgreen;">2</div> </div> <div class="child" style="background-color: orange;"> <div class="in" style="background-color: lightsalmon;">3</div> </div> <div class="child" style="background-color: red;"> <div class="in" style="background-color: pink;">4</div> </div> </div> </div>
思路二: inline-block
缺点:需要设置垂直对齐方式vertical-align,则需要处理换行符解析成空格的间隙问题。IE7-浏览器不支持给块级元素设置inline-block属性,兼容代码是display:inline;zoom:1;
【1】inline-block + padding + background-clip
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ font-size: 0; margin-right: -20px; overflow: hidden;}.child{ display:inline-block; vertical-align: top; width: 25%; padding-right: 20px; box-sizing: border-box; background-clip: content-box; font-size: 16px;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: lightblue;">1</div> <div class="child" style="background-color: lightgreen;">2</div> <div class="child" style="background-color: lightsalmon;">3</div> <div class="child" style="background-color: pink;">4</div> </div> </div>
【2】inline-block + margin + calc
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ margin-right: -20px; font-size: 0;}.child{ display: inline-block; vertical-align: top; font-size: 16px; height: 100px; width: calc(25% - 20px); margin-right: 20px;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: lightblue;">1</div> <div class="child" style="background-color: lightgreen;">2</div> <div class="child" style="background-color: lightsalmon;">3</div> <div class="child" style="background-color: pink;">4</div> </div> </div>
【3】inline-block + margin + (fix)
<style>body,p{margin: 0;}.parentWrap{ overflow: hidden;}.parent{ margin-right: -20px; font-size: 0;}.child{ display: inline-block; vertical-align: top; font-size: 16px; width: 25%;}.in{ margin-right: 20px; height: 100px;}</style>
<div class="parentWrap"> <div class="parent" style="background-color: lightgrey;"> <div class="child" style="background-color: blue;"> <div class="in" style="background-color: lightblue;">1</div> </div> <div class="child" style="background-color: green;"> <div class="in" style="background-color: lightgreen;">2</div> </div> <div class="child" style="background-color: orange;"> <div class="in" style="background-color: lightsalmon;">3</div> </div> <div class="child" style="background-color: red;"> <div class="in" style="background-color: pink;">4</div> </div> </div> </div>
思路三: table
缺点:元素被设置为table后,内容撑开宽度。若要兼容IE7-浏览器,需要改为

一致的HTML編碼風格很重要,因為它提高了代碼的可讀性、可維護性和效率。 1)使用小寫標籤和屬性,2)保持一致的縮進,3)選擇並堅持使用單引號或雙引號,4)避免在項目中混合使用不同風格,5)利用自動化工具如Prettier或ESLint來確保風格的一致性。

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

在手機上使用原生select的弊端是什麼?在移動設備上開發應用時,選擇合適的UI組件是非常重要的。許多開發者�...

使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理在Three.js中使用Octree實現房間內的第三人稱漫遊並添加碰�...

使用原生select在手機上的問題在移動設備上開發應用時,我們經常會遇到需要用戶進行選擇的場景。雖然原生sel...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3漢化版
中文版,非常好用

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境