你对CSS兼容:IE6中背景图片设置问题是否了解,这里和大家分享一下,相信本文介绍一定会让你有所收获。
CSS兼容:一个IE6在no-repeat情况下依然重复背景图片的BUG
背景图片的设置是CSS布局时常用的一种属性,应用background的url,引入背景图片,可以设置为不重复平铺,如下面的代码:
- background:url(http://www.w3cbbs.com/images/w3cbbs/logow3cbbs.png)no-repeat;
◆在大多数情况下,此设置不会有任何问题。背景图片按设置的形式呈现,不会平铺于容器,无论容器是何宽度与高度。但在IE6下,有一种情况,如果未定义宽高,则会产生即使定义了no-repeat,背景图片依然重复的BUG。
以IE6中运行下面的代码:
SourceCodetoRun
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
- <title>CSS兼容问题:一个IE6在no-repeat情况下依然重复背景图片的BUG-www.52css.com</title>
- <styletypestyletype="text/css">
- #bigbox{background:url(http://www.w3cbbs.com/images/w3cbbs/logow3cbbs.png)no-repeat;}
- #smallbox{height:75px;}/*撑开bigbox*/
- #marginbox{margin-top:-20px;}/*向上margin的box*/
- </style>
- </head>
- <body>
- </head>
- <body>
- <dividdivid="bigbox">
- <dividdivid="smallbox"></div>
- <dividdivid="marginbox"><imgsrcimgsrc="http://52css.com/skins/52css_logo4.png"width="200"height="90"/></div>
- <dividdivid="content"></div>
- </div>
- </body>
- </html>
◆解决的办法很简单,为容器定义宽度即可。如果没有实际宽度,可以定义为100%。此BUG不需要额外的HACK,只需要在使用时注意避免即可。解决后的代码如下,在IE6中运行:
SourceCodetoRun
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
- <title>CSS兼容问题:一个IE6在no-repeat情况下依然重复背景图片的BUG-www.52css.com</title>
- <styletypestyletype="text/css">
- #bigbox{width:100%;background:url(http://www.w3cbbs.com/images/w3cbbs/logow3cbbs.png)no-repeat;}
- #smallbox{height:75px;}/*撑开bigbox*/
- #marginbox{margin-top:-20px;}/*向上margin的box*/
- </style>
- </head>
- <body>
- </head>
- <body>
- <dividdivid="bigbox">
- <dividdivid="smallbox"></div>
- <dividdivid="marginbox"><imgsrcimgsrc="http://52css.com/skins/
- 52css_logo4.png"width="200"height="90"/></div>
- <dividdivid="content"></div>
- </div>
- </body>
- </html>
【编辑推荐】
- IE6中常见CSS兼容性解决十大技巧
- IE6 IE7 IE8三个版本的CSS兼容速查手册
- 十个修复IE6下bug技巧
- 探秘IE8 JavaScript功能超乎想象
- 技术前沿 一段JS代码轻松解决IE6-IE8的兼容性问题