网页制造aiyiweb文章简介:
CSS BUG处理方法以及CSS BUG类的小技巧.
CSS bug是规划中最头疼的问题。我们需求兼顾各种浏览器,以期待获得分歧的效果。非常遗憾的是各厂商之间的竞争导致很多问题的存在。而IE6与IE7在很多问题上也存在着很大的差别。在Aiyiweb.Com大量的技术文档中,也包含了这方面的内容。轻松的处理CSS bug是我们必须掌握的技能。如今整理出最常用的12种CSS BUG处理方法以及CSS BUG类的小技巧。希望对您的学习、任务有所协助,如果您仍然有疑问,欢迎您到Aiyiweb.Com查阅、搜索相关内容。
一、 针对浏览器的选择器 这些选择器在你需求针对某款浏览器进行css设计时将非常有用.
IE6及其更低版本
* html {}
IE7及其更低版本
*:first-child+html {} * html {}
仅针对IE7
*:first-child+html {}
IE7和当代浏览器
html>body{}
仅当代浏览器(IE7不适用)
html>/**/body{}
Opera9及其更低版本
html:first-child {}
Safari
html[xmlns*=""] body:last-child {}
要使用这些选择器,请将它们放在款式之前. 例如:
#content-box {
width: 300px;
height: 150px;
}
* html #content-box {
width: 250px;
}
您也可以参考—CSS hacks:浏览器特定选择器引见
二、让IE6支持PNG通明 一个IE6的Bug惹起了大麻烦, 他不支持通明的PNG图片。
你需求使用一个css滤镜
*html #image-style {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil
ename.png", sizingMethod="scale");
}
三、移除超链接的虚线 FireFox下,当你点击一个超链接时会在外围出现一个虚线轮廓. 这很容易处理, 只需求在标签款式中加入:
outline:none.
a{
outline: none;
}
您也可以参考—除链接元素的虚线框(兼容IE7、IE6、FF)
四、给行内元素定义宽度 如果你给一个行内元素定义宽度,那么它只是在IE6下无效. 所有的HTML元素要么是行内元素要么就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定义行内元素的宽度, 为了处理这个问题你可以将行内元素转变为块元素.
span { width: 150px; display: block }
五、让固定宽度的页面居中 为了让页面在浏览器居中显示, 需求绝对定位外层div, 然后把margin设置为auto.
#wrapper {
margin: auto;
position: relative;
}
六、IE6双倍边距的bug 给此对象加上display:inline即可处理问题。具体引见:
七、Box Model 盒模型bug的普通处理办法八、两个层之间的3px间隙 传说中的“IE 3px bug”,处理的办法:
九、在IE中的HTML注释惹起文字奇怪的复制 Duplicate Characters Bug很神奇。
十、图片替换技术 用文字总比用图片做标题好一些. 文字对屏幕阅读机和SEO都是非常敌对的.
HTML:
<h1><span>Main heading one</span></h1>
CSS:
h1 { background: url(heading-image.gif) no-repeat; }
h1 span {
position:absolute;
text-indent: -5000px;
}
你可以看到我们对标题使用了标准的<h1>作为标签并且用css来将文本替换为图片. text-indent属性将文字推到了浏览器左边5000px处, 这样对于浏览者来说就看不见了.
关掉css,然后看看头部会是什么样子的.本文由Aiyiweb.Com整理,转载请注明出处!
十一、 最小宽度 IE6另外一个bug就是它不支持 min-width 属性. min-width又是相当有用的, 特别是对于弹性模板来说, 它们有一个100%的宽度,min-width 可以通知浏览器何时就不要再紧缩宽度了.
除IE6以外所有的浏览器你只需求一个 min-width: Xpx; 例如:
.container {
min-width:300px;
}
为了让他在IE6下任务, 我们需求一些额外的任务. 开始的时候我们需求创建两个div, 一个包含另一个:
<div class="container">
<div class="holder">Content</div>
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。