近來在做H5頁面時(shí),突然發(fā)現(xiàn)一個(gè)問題,使用一個(gè)div包裹一個(gè)img,在手機(jī)預(yù)覽時(shí),發(fā)現(xiàn)圖片與div之間有間隙。
當(dāng)時(shí)第一反應(yīng)就是,是不是間距沒有設(shè)置為0,于是預(yù)覽了下代碼:
.active img {
width:100%;
margin: 0;
}
后來瀏覽了一些技術(shù)文檔,發(fā)現(xiàn)了問題所在,原來是因?yàn)樵贖5文檔聲明下,塊狀元素內(nèi)
部的內(nèi)聯(lián)元素的行為表現(xiàn)所致,簡(jiǎn)單地說就好像塊狀元素內(nèi)部有個(gè)看不見的沒有寬度的空白節(jié)點(diǎn)。
而不設(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)的垂直對(duì)齊方式,
所以可以將img轉(zhuǎn)換成塊級(jí)元素。
第二種方法:display:block,把父元素的font-size設(shè)為0
修改后的代碼:
.active img{
width:100%;
margin:0;
display:block;
}
.active{
font-size;0;
...
}
【 微信掃一掃 】