近來在做H5頁面時,突然發(fā)現(xiàn)一個問題,使用一個div包裹一個img,在手機(jī)預(yù)覽時,發(fā)現(xiàn)圖片與div之間有間隙。
當(dāng)時第一反應(yīng)就是,是不是間距沒有設(shè)置為0,于是預(yù)覽了下代碼:
.active img {
width:100%;
margin: 0;
}
后來瀏覽了一些技術(shù)文檔,發(fā)現(xiàn)了問題所在,原來是因為在H5文檔聲明下,塊狀元素內(nèi)
部的內(nèi)聯(lián)元素的行為表現(xiàn)所致,簡單地說就好像塊狀元素內(nèi)部有個看不見的沒有寬度的空白節(jié)點。
而不設(shè)置vertical-align屬性,vertical-align默認(rèn)是baseline。
現(xiàn)解決方案有如下兩種:
1.第一種最直接的解決方法是:
設(shè)置img的標(biāo)簽:vertical-align:bottom
修改后的的代碼:
.active img{
width:100%;
margin:0;
vertical-align:bottom;//top和bottom都可以
}
2.由于baseline是設(shè)置行內(nèi)元素(inline)或者表格單元素(table-cell)的垂直對齊方式,
所以可以將img轉(zhuǎn)換成塊級元素。
第二種方法:display:block,把父元素的font-size設(shè)為0
修改后的代碼:
.active img{
width:100%;
margin:0;
display:block;
}
.active{
font-size;0;
...
}
【 微信掃一掃 】