文章出處
【問題】頁面中如果有多張圖片,那么圖片之間會有一些間距,在某些情況下(如切好的圖片再次拼接),在顯示上就會出現一些問題。效果如下:
對應代碼:
1 <div class="f0"> 2 <img src="images/1.png" > 3 <img src="images/2.png" > 4 <img src="images/3.png" > 5 </div>
【問題分析】
這個是瀏覽器的一個設計問題。
1.img本來是行內元素,卻可以用width 和height,當父元素沒有設置高度的時候,用子元素們的高度計算出的高度給父元素的時候就會出現3px空隙這類的問題。
2.img圖片默認排版為 inline-block;而所有的inline-block元素之間都會有空白。
【解決方法】
方法一:
將img顯示設置成 display:block;
因圖片橫向排列,同時設置向左浮動,樣式代碼如下:
1 .f0 img{ 2 width: 150px; 3 display: block; 4 float: left;
方法二:
將父容器字體大小設為零。font-size:0;
1 div.f0 { 2 font-size: 0; 3 }
方法三:
去掉<img>標簽之間的空格,將所用的<img>標簽書寫在同一行(即各個img標簽之間不留空格),無須設置其他樣式。
1 <div class="f0"> 2 <img src="images/1.png"><img src="images/2.png"><img src="images/3.png"> 3 </div>
效果:
【小問題】如果在樣式中引用了bootstrap.css并且為圖片設置了"img-rounded"類,
并且根據上述的方法設置樣式,則在圖片之間會出現1px左右的縫隙。如下:
【示例完整代碼】
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <style> 8 body{ 9 background: #dedede; 10 padding: 5% 5%; 11 margin: 0; 12 } 13 div.f0{ 14 font-size: 0; 15 } 16 div.f0 img{ 17 width: 150px; 18 display: block; 19 float: left; 20 } 21 .f0 img{ 22 width: 150px; 23 float: left; 24 display: block; 25 } 26 </style> 27 <body> 28 <div class="f0"> 29 <img src="images/1.png"> 30 <img src="images/2.png"> 31 <img src="images/3.png"> 32 </div> 33 </body> 34 </html>
相關問題更多方案討論參考:
http://www.w3cfuns.com/article-5597087-1-1.html
http://www.dynamicdrive.com/forums/showthread.php?24880-White-space-between-lt-li-gt-items
![]() |
不含病毒。www.avast.com |
全站熱搜