当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 12种CSS BUG解决方法与技巧

CSS样式表
CSS垂直居中网页布局实现的5种方法
CSS实现绝对的完美圆角框
WebKit中可用的CSS高级特性
css框架(CSS Frameworks):CSS框架应用
针对不同版本的IE浏览器的条件CSS应用
CSS代码优化7个准则
CSS实例:创建有图标的网站导航菜单
以图例方式介绍CSS制作网页详细步骤
推荐43个XHTML+CSS网页及导航布局实例教程
制作网页过程种需要学习的CSS教程
学习CSS的人值得去的6个CSS资源站
Webjx推荐20个关于CSS3优秀学习资源
import与link的具体区别
CSS设计制作网页不要使用@import
网页收集的优秀的CSS技巧与教程
CSS实例教程:弹性+固宽布局
网页CSS优化使网页具有语义化
Webjx推荐30个网站导航使用CSS的最佳方式
总结:CSS样式表的技术优势和功能
格式化CSS和精简CSS的在线CSS优化工具

CSS样式表 中的 12种CSS BUG解决方法与技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 61 ::
收藏到网摘: n/a

一、 针对浏览器的选择器
  这些选择器在你需要针对某款浏览器进行css设计时将非常有用.
  IE6及其更低版本,本文由52CSS.com整理,转载请注明出处!
  * 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 {}
  要使用这些选择器,请将它们放在样式之前. 例如:
Example Source Code
#content-box {
width: 300px;
height: 150px;
}
Example Source Code
* html #content-box {
width: 250px;
}
二、让IE6支持PNG透明
  一个IE6的Bug引起了大麻烦, 他不支持透明的PNG图片。
  你需要使用一个css滤镜
Example Source Code
*html #image-style {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil
ename.png", sizingMethod="scale");
}
三、移除超链接的虚线
  FireFox下,当你点击一个超链接时会在外围出现一个虚线轮廓. 这很容易解决, 只需要在标签样式中加入:本文由52CSS.com整理,转载请注明出处!
Example Source Code
outline:none.
a{
outline: none;
}
四、给行内元素定义宽度
  如果你给一个行内元素定义宽度,那么它只是在IE6下有效. 所有的HTML元素要么是行内元素要么就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定义行内元素的宽度, 为了解决这个问题你可以将行内元素转变为块元素.
Example Source Code
span { width: 150px; display: block }
五、让固定宽度的页面居中
  为了让页面在浏览器居中显示, 需要相对定位外层div, 然后把margin设置为auto.
Example Source Code
#wrapper {
margin: auto;
position: relative;
}
六、IE6双倍边距的bug
 
七、Box Model 盒模型bug的一般解决办法
 
八、两个层之间的3px间隙
九、在IE中的HTML注释引起文字奇怪的复制
十、图片替换技术
  用文字总比用图片做标题好一些. 文字对屏幕阅读机和SEO都是非常友好的.
Example Source Code
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,然后看看头部会是什么样子的.本文由52CSS.com整理,转载请注明出处!
十一、 最小宽度
  IE6另外一个bug就是它不支持 min-width 属性. min-width又是相当有用的, 特别是对于弹性模板来说, 它们有一个100%的宽度,min-width 可以告诉浏览器何时就不要再压缩宽度了.
除IE6以外所有的浏览器你只需要一个 min-width: Xpx; 例如:
Example Source Code
.container {
min-width:300px;
}
  为了让他在IE6下工作, 我们需要一些额外的工作. 开始的时候我们需要创建两个div, 一个包含另一个:
Example Source Code
<div class="container">
<div class="holder">Content</div>
</div>
  然后你需要定义外层div的min-width属性,本文由52CSS.com整理,转载请注明出处!
Example Source Code
.container {
min-width:300px;
}
这时该是IE hack大显身手的时候了. 你需要包含如下的代码:
Example Source Code
* html .container {
border-right: 300px solid #FFF;
}
* html .holder {
display: inline-block;
position: relative;
margin-right: -300px;
}
  As the browser window is resized the outer div width reduces to suit until it shrinks to the border width, at which point it will not shrink any further. The holder div follows suit and also stops shrinking. The outer div border width becomes the minimum width of the inner div.
十二、隐藏水平滚动条
  为了避免出现水平滚动条, 在body里加入 overflow-x:hidden .
Example Source Code
body { overflow-x: hidden; }
  当你决定使用一个比浏览器窗口大的图片或者flash时, 这个技巧将非常有用