文章出處

【問題】頁面中如果有多張圖片,那么圖片之間會有一些間距,在某些情況下(如切好的圖片再次拼接),在顯示上就會出現一些問題。效果如下:

對應代碼:

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
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()