很多朋友發(fā)現(xiàn)在ie6下面經(jīng)常性出現(xiàn)代碼換行在頁(yè)面上都會(huì)出現(xiàn)空隙的bug,而在其他瀏覽器下不會(huì)出現(xiàn)該類情況,最后只得被迫使用css hack來解決這個(gè)bug,但是要知道高手們是可是從來不用css hack的,這是怎么回事呢?
我們先來說一下ie6對(duì)換行或者空格的解釋:
比如:<a href="#"></a> <div></div>,我看到a標(biāo)簽和div之間是有空格的,瀏覽器默認(rèn)都識(shí)別一個(gè)空格,這一點(diǎn)ie6和其他瀏覽器不一樣,因?yàn)閍標(biāo)簽?zāi)J(rèn)不具備block(獨(dú)居一行)的屬性,所以ie6認(rèn)為a標(biāo)簽和div中間的空格有效,從而導(dǎo)致a標(biāo)簽和div之前會(huì)有空隙,而在其他瀏覽器下面不會(huì)出現(xiàn),其他瀏覽器解釋的原理是只要2個(gè)標(biāo)簽任意一個(gè)標(biāo)簽具備了block(獨(dú)居一行)的屬性,就忽略他們之間的任意換行符和空格符。
而ie6的解釋原理是只要任意一個(gè)標(biāo)簽不具備block(獨(dú)居一行)的屬性,就認(rèn)為它們之間的換行符、空格都是在頁(yè)面上解釋出來的,從而行程一個(gè)空格間隙。