当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS BUG解决方法以及CSS BUG类的小技巧

CSS样式表
图片的alt(替换文本)属性描述
CSS布局实例代码 两列布局实例
将PSD网站模板转换为XHTML+CSS
div+css 定位浅析
CSS 浏览器专用
css设置z-index 失效的解决方法
Div+Css实现屏蔽效果
css 鼠标经过文字变色
不用JS只用CSS制作的网页下拉菜单
CSS 类名的长命名和短命名
css ul li 的使用及浏览器兼容问题
div中英文无法自动换行的解决办法
CSS 基础教程 在网页中使用CSS
CSS技巧 使用标签来创建导航菜单(滑动门教程)
用css创建一个类似按扭的导航
css 横向菜单实现代码
使用CSS做出一个嵌套导航.
css 列表菜单的设计
网页中图片应用CSS的滤镜的效果
CSS 漂亮搜索框美化代码

CSS样式表 中的 CSS BUG解决方法以及CSS BUG类的小技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 58 ::
收藏到网摘: n/a

  CSSbug是布局中最头疼的问题。我们需要兼顾各种浏览器,以期待获得一致的效果。非常遗憾的是各厂商之间的竞争导致很多问题的存在。而IE6与IE7在很多问题上也存在着很大的差别。在ruanchen.com大量的技术文档中,也包含了这方面的内容。轻松的解决CSSbug是我们必须掌握的技能。现在整理出最常用的12种CSSBUG解决方法以及CSSBUG类的小技巧。希望对您的学习、工作有所帮助,如果您依然有疑问,欢迎您到ruanchen.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;
}
  您也可以参考—CSShacks:浏览器特定选择器介绍
二、让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即可解决问题。具体介绍:
七、BoxModel盒模型bug的一般解决办法

八、两个层之间的3px间隙
  传说中的“IE3pxbug”,解决的办法:
九、在IE中的HTML注释引起文字奇怪的复制
  DuplicateCharactersBug很神奇。
十、图片替换技术
  用文字总比用图片做标题好一些.文字对屏幕阅读机和SEO都是非常友好的.
HTML:
<h1><span>Mainheadingone</span></h1>
CSS:
h1{background:url(heading-image.gif)no-repeat;}
h1span{
position:absolute;
text-indent:-5000px;
}
  你可以看到我们对标题使用了标准的<h1>作为标签并且用css来将文本替换为图片.text-indent属性将文字推到了浏览器左边5000px处,这样对于浏览者来说就看不见了.
  关掉css,然后看看头部会是什么样子的.本文由ruanchen.com整理,转载请注明出处!
十一、最小宽度
  IE6另外一个bug就是它不支持min-width属性.min-width又是相当有用的,特别是对于弹性模板来说,它们有一个100%的宽度,min-width可以告诉浏览器何时就不要再压缩宽度了.
除IE6以外所有的浏览器你只需要一个min-width:Xpx;例如:
.container{
min-width:300px;
}
  为了让他在IE6下工作,我们需要一些额外的工作.开始的时候我们需要创建两个div,一个包含另一个:
<divclass="container">
<divclass="holder">Content</div>
</div>
  然后你需要定义外层div的min-width属性,本文由ruanchen.com整理,转载请注明出处!
.container{
min-width:300px;
}
这时该是IEhack大显身手的时候了.你需要包含如下的代码:
*html.container{
border-right:300pxsolid#FFF;
}
*html.holder{
display:inline-block;
position:relative;
margin-right:-300px;
}
  Asthebrowserwindowisresizedtheouterdivwidthreducestosuituntilitshrinkstotheborderwidth,atwhichpointitwillnotshrinkanyfurther.Theholderdivfollowssuitandalsostopsshrinking.Theouterdivborderwidthbecomestheminimumwidthoftheinnerdiv.
十二、隐藏水平滚动条
  为了避免出现水平滚动条,在body里加入overflow-x:hidden.
body{overflow-x:hidden;}
  当你决定使用一个比浏览器窗口大的图片或者flash时,这个技巧将非常有用.