通過連續(xù)的點擊+1/-1按鈕可以看出,當#pg寬度>#pg背景圖片寬度(400px)且為奇數(shù)時,右側(cè)才會出現(xiàn)這1px的空隙
當我們糾結(jié)于奇偶數(shù)的時候,神奇的
body{margin-left:1px}
出現(xiàn)了,詳見《CSS IE one pixel image offset hack》。當設(shè)置了body的左外邊距為1px時,不管奇偶數(shù)都不會出現(xiàn)這個1px的空隙了。不過,當body寬度小于背景大圖寬度(這里是400px)且為偶數(shù)時,左側(cè)交界處卻出現(xiàn)了1px的空隙
看來只有用JS解決了,是當body寬度≥背景大圖寬度(這里是400px)時,令body margin-left:1px,<時則去除margin-left:1px 全部代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>Sub-Pixel</title> <style type="text/css"> body, div, p{margin:0;padding:0;} body{text-align:center;} button{margin:1em;padding:0 1em;} #pg, body{background-position:center 0;background-repeat:no-repeat;} body{background-image:url('http://webteam.tencent.com/wp-content/uploads/2010/3/1749_003.jpg');} #pg{margin:0 auto;width:200px;height:200px;background-image:url('http://webteam.tencent.com/wp-content/uploads/2010/3/1749_004.jpg');} .fix-bg{margin-left:1px;} </style> </head> <body> <div id="pg"></div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/ jquery.min.js"></script> <script> $(document).ready(function(){ var body = $('body'); function fixBg() { (body.width() >= 400) ? body.addClass('fix-bg') : body.removeClass('fix-bg'); } fixBg(); $(window).resize(fixBg); }) </script> </body> </html>
后記
眼看就要圓滿了,轉(zhuǎn)念一想:“如果大圖寬度是奇數(shù),會出現(xiàn)這個問題嗎?如果出現(xiàn)了,那怎么搞捏?” 額…介個,介個…
原文:http://webteam.tencent.com/?p=1749
本文鏈接:http://m.95time.cn/tech/web/2010/7467.asp
出處:騰訊Webteam
責任編輯:bluehearts
上一頁 Sub-Pixel Bug?! [2] 下一頁
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|