相信很多小伙伴在頁面布局上都碰到過行內元素之間存在默認的間隙的問題。其實這是因為行內塊元素之間,瀏覽器會有一個默認的間距。如圖:
解決的辦法有四種:
1.html中將行內元素在同一行顯示,不影響美觀即可,可讀性比較差
<div class="main"> <!-- 在html中將行內元素在同一行顯示,不影響美觀即可,可讀性比較差 --> <div class="left"></div><div class="middle"></div><div class="right"></div> </div>
2.在父元素上設置font-size: 0px;
<div class="main"> <div class="left"></div> <div class="middle"></div> <div class="right"></div> --> </div>
.main{ width:200px; height:200px; margin:50px; font-size: 0px; /*在父元素上設置font-size: 0px; */ } .left{ width:50px; height: 80px; margin:0; vertical-align: middle; background:red; display: inline-block; } .middle{ width:50px; height: 100px; vertical-align: middle; background:blue; display: inline-block; } .right{ width:50px; height: 150px; vertical-align: middle; background:green; display: inline-block; }
3.在父元素上設置word-spacing的值為合適的負值
<div class="main"> <div class="left"></div> <div class="middle"></div> <div class="right"></div> --> </div>
.main{ width:200px; height:200px; margin:50px; word-spacing: -10px; /*在父元素上設置word-spacing的值設為合適的負值 */ } .left{ width:50px; height: 80px; margin:0; vertical-align: middle; background:red; display: inline-block; } .middle{ width:50px; height: 100px; vertical-align: middle; background:blue; display: inline-block; } .right{ width:50px; height: 150px; vertical-align: middle; background:green; display: inline-block; }
4.將行內元素設置為浮動狀態,不過這樣做可能會有布局問題。
<div class="main"> <div class="left"></div> <div class="middle"></div> <div class="right"></div> </div>
.main{ width:200px; height:200px; margin:50px; word-spacing: -10px; /*在父元素上設置word-spacing的值設為合適的負值 */ } .left{ float: left; width:50px; height: 80px; margin:0; vertical-align: middle; background:red; display: inline-block; } .middle{ float: left; width:50px; height: 100px; vertical-align: middle; background:blue; display: inline-block; } .right{ float: left; width:50px; height: 150px; vertical-align: middle; background:green; display: inline-block; }
最終效果如圖:
原文鏈接:https://blog.csdn.net/Febby_/java/article/details/90139227