12种CSS BUG解决方法与技巧

所属分类: 网页制作 / CSS 阅读数: 1057
收藏 0 赞 0 分享
一、 针对浏览器的选择器
  这些选择器在你需要针对某款浏览器进行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时, 这个技巧将非常有用
更多精彩内容其他人还在看

2013年五大主流浏览器 HTML5 与 CSS3 兼容性大比拼

这篇文章主要介绍了2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼,需要的朋友可以参考下
收藏 0 赞 0 分享

前端设计师需要了解的9个问题

这篇文章主要介绍了前端设计师需要了解的9个问题以及注意事项,非常的实用,是篇非常不错的文章,这里推荐给大家
收藏 0 赞 0 分享

CSS强制性换行的方法区别详解

自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行
收藏 0 赞 0 分享

CSS语义化命名方式及常用命名规则

本文搜集了一些CSS语义化命名方式以及命名规则。如有错误或不妥之处,敬请指出,欢迎你提出更好的建议,加插更多的命名规范。
收藏 0 赞 0 分享

ul li内容宽度的问题的解决方案

在IE6下只要我设置LI的宽度为auto,不论LI里面的内容多长,LI的宽度始终是100%,即UL的宽度(这里我已经写死了UL的宽度)。设置max-width也没用。高手们,在IE系列浏览器中如何使LI的宽度真正的随着内容增长而增长呢?像FF那样。
收藏 0 赞 0 分享

html5+css3气泡组件的实现

本文是html5+css3系列教程的第一篇,给大家讲述html5+css3实现气泡组件,讲解的十分的详细,这里推荐给大家,希望对大家能有所帮助
收藏 0 赞 0 分享

html5+css3之CSS中的布局与Header的实现

本文从CSS3的布局(CSS的布局的演化、CSS3盒模型-box-sizing、float布局中的bfc、Flexbox简介)Header布局的实现(float实现布局、Header js的实现)向我们展示了HTML5与CSS3的魅力。
收藏 0 赞 0 分享

一款恶搞头像特效的制作过程 利用css3和jquery

今天给大家介绍一款恶搞头像特效的制作过程,你可以把任意一张照片放到跳舞的漫画中,为他带上不同的帽子,让他翩翩起舞,下面我们一起来看一下制作过程和效果
收藏 0 赞 0 分享

大图片根据分辨率自适应宽度仍居中显示

一个1920*900的大图,在1024*768的分辨率下仍居中显示,如何做到这一点,下面是一个可行的解决方案
收藏 0 赞 0 分享

CSS3提交意见输入框样式代码

这个提交意见输入框,结构使用到了table,样式用的css3,包含了多方面的知识,比较适合新手朋友们
收藏 0 赞 0 分享
查看更多