img標籤間距問題

關於img標籤間距問題:多個img之間有間距,包含img標籤的div之間有間距。css

 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>test</title>
 6     <link rel="stylesheet" type="text/css" href="css/test.css">
 7 </head>
 8 <body>
 9     <div>
10         <img src="images/1.png">
11         <img src="images/2.png">
12         <img src="images/3.png">
13     </div>
14     <div>
15         <img src="images/4.png">
16         <img src="images/5.png">
17         <img src="images/6.png">
18     </div>
19     <div>
20         <img src="images/7.png">
21         <img src="images/8.png">
22         <img src="images/9.png">
23     </div>
24 </body>
25 </html>

谷歌瀏覽器效果:html

 

火狐瀏覽器效果:瀏覽器

 

  咱們發現,不一樣div之間,上下有空白間隙,不一樣img之間,左右有間隙,並且,不一樣瀏覽器的左右間隙大小不一樣。學習

  經學習,個人解決辦法是,同一個div下不一樣img標籤之間不要留空格,並給img的父元素div標籤加上屬性font-size:0。這樣一來,全部的圖片就可以無縫拼接了。字體

下面來講一下爲何這樣作能夠解決問題。spa

  塊級元素包含內聯元素如圖片文字等時,內聯元素默認是和父級元素的baseline(基線)對齊的,而baseline又和父級元素底邊有必定的距離(這個距離和font有關,不必定是5px),因此以上代碼的效果中不一樣div之間有間隙,這是由於圖片與父元素的底邊有距離。說到baseline呢,其實它是vertical-align屬性的默認值,vertical-align屬性是設置元素的垂直排列的,用來定義行內元素的基線相對於該元素所在行的基線的垂直對齊,除了baseline對齊方式以外,還能夠是sub | super | top | text-top | middle | bottom | text-bottom |inherit(任何的版本的Internet Explorer (包括 IE8)都不支持屬性值 "inherit")。code

  知道了問題產生的緣由,就好對症下藥解決問題了,其實就是要消除baseline對齊方式產生的距離。htm

  因此方法一,很容易想到,把對齊方式改一下不就行了,因而設置img的vertical-align屬性爲bottom;blog

  方法二就是上文說的給父元素加上font-size:0的屬性,既然這個距離和font有關,那麼把字體大小設爲0,總該沒有距離了吧;圖片

  方法三可由方法二想到,既然爲0能夠,那把行高設的很小可不能夠呢?經試驗發現,本例圖片大小爲200px,設line-height不大於12就可以消除間隙了,鑑於這個距離通常是5px,因此能夠把line-height設爲5px左右;

  另一個間隙是多個img標籤的左右間隙,是因爲img標籤是行內元素,而事實是當行內元素之間有「回車」、「tab」、「空格」時就會出現間隙。

  因此方法就是上文提到的,去掉img標籤之間全部的空格,若是又不想把全部連續的行內元素寫到一行,能夠多行註釋,把空格回車什麼的註釋掉,就像下圖這樣;當連續的行內元素不是img時,也能夠經過設置父元素的font-size爲0來消除左右間隙。

 

 

轉自:http://www.cnblogs.com/lovelyun/p/4846222.html

相關文章
相關標籤/搜索