关闭顶部展开顶部

最常用的10种CSS BUG解决方法与技巧_浏览器兼容教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

CSS bug是布局中最头疼的问题。我们需要兼顾各种浏览器,以期待获得一致的效果。
非常遗憾的是各厂商之间的竞争导致很多问题的存在。而IE6与IE7在很多问题上也存在着很大的差别。
轻松的解决CSS bug是我们必须掌握的技能。现在整理出最常用的12种CSS BUG解决方法以及CSS BUG类的小技巧。
希望对您的学习、工作有所帮助,如果您依然有疑问,

一、 针对浏览器的选择器

  这些选择器在你需要针对某款浏览器进行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 {}
  要使用这些选择器,请将它们放在样式之前. 例如:

示例代码 [www.mb5u.com]
#content-box { 
width: 300px; 
height: 150px; 

示例代码 [www.mb5u.com]
* html #content-box { 
width: 250px; 



二、让IE6支持PNG透明

  一个IE6的Bug引起了大麻烦, 他不支持透明的PNG图片。
  你需要使用一个css滤镜

示例代码 [www.mb5u.com]
*html #image-style { 
background-image: none; 
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil 
ename.png", sizingMethod="scale"); 
}

三、移除超链接的虚线

  FireFox下,当你点击一个超链接时会在外围出现一个虚线轮廓. 这很容易解决, 只需要在标签样式中加入:

示例代码 [www.mb5u.com]
outline:none.
a{ 
outline: none; 
}


四、给行内元素定义宽度

  如果你给一个行内元素定义宽度,那么它只是在IE6下有效. 所有的HTML元素要么是行内元素要么就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定义行内元素的宽度, 为了解决这个问题你可以将行内元素转变为块元素.

示例代码 [www.mb5u.com]
span { width: 150px; display: block }

五、让固定宽度的页面居中

  为了让页面在浏览器居中显示, 需要相对定位外层div, 然后把margin设置为auto.

示例代码 [www.mb5u.com]
#wrapper { 
margin: auto; 
position: relative; 
}

七、IE6双倍边距的bug

  给此对象加上display:inline即可解决问题。


八、图片替换技术

  用文字总比用图片做标题好一些. 文字对屏幕阅读机和SEO都是非常友好的.

示例代码 [www.mb5u.com]
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,然后看看头部会是什么样子的.

九、 最小宽度

  IE6另外一个bug就是它不支持 min-width 属性. min-width又是相当有用的, 特别是对于弹性模板来说, 它们有一个100%的宽度,min-width 可以告诉浏览器何时就不要再压缩宽度了.
除IE6以外所有的浏览器你只需要一个 min-width: Xpx; 例如:

示例代码 [www.mb5u.com]
.container { 
min-width:300px; 
}

  为了让他在IE6下工作, 我们需要一些额外的工作. 开始的时候我们需要创建两个div, 一个包含另一个:

示例代码 [www.mb5u.com]
<div class="container"> 
<div class="holder">Content</div> 
</div>

  然后你需要定义外层div的min-width属性,
示例代码 [www.mb5u.com]
.container { 
min-width:300px; 
}

这时该是IE hack大显身手的时候了. 你需要包含如下的代码:

示例代码 [www.mb5u.com]
* 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 .

示例代码 [www.mb5u.com]
body { overflow-x: hidden; }

  当你决定使用一个比浏览器窗口大的图片或者flash时, 这个技巧将非常有用.

来源:52css//所属分类:浏览器兼容教程/更新时间:2008-09-15
loading.. 评论加载中....
相关浏览器兼容教程
闁汇埄鍨遍悺鏇綖閸℃稒鈷掓い鏇楀亾妞わ綇鎷�
婵炲濮崑鎾斥槈閺傝法澧涙俊鑼€濋柣銏╁灲閹凤拷
婵犵鈧啿鈧绱炲澶嬪殧鐎瑰嫭澹嗙换涔侀柣銏╁灲閹凤拷
婵犵鈧啿鈧绱炲澶婄闁诡垎鍕槬闁诲酣娼уΛ娑㈡偉閿燂拷
闂佺ǹ绻愰幊搴ㄥ焵椤掑倸甯堕幖瀛樼矒瀹曟繈鏁撻敓锟�
闂佺ǹ绻愰幊搴ㄥ焵椤掆偓閸氬绮婇敂鍓х煓閻庯絺鏅濋惌娆戠磽娓氬﹥瀚�
闂佽 鍋撴い鏍ㄧ☉閻︻噣鏌涘┑鎰胺缂併劍妞藉銊╊敍濞嗘垵绗¢梺鍝勫€婚幊鎾舵閿燂拷
闂佸搫鍟版慨椋庣礊婢舵劖鐓i悹杞拌濞层倕霉閿濆棙绀€闁告ɑ鐗犲畷鎰版晸閿燂拷
濠碘槅鍨崜婵嗩熆濡吋瀚绘い鎾寸箖鐎氾拷
婵犵鈧啿鈧绱炲鍥ㄥ妞ゆ挻绻冪€氳櫕淇婇妤€澧叉繝顫嫹
濠碘槅鍨崜婵嗩熆濮椻偓瀹曨剟顢欓崗鐓庘偓鐢告煛閸繄孝濠殿噯鎷�
濠碘槅鍨崜婵嗩熆濮椻偓閺屽懘鍩€椤掆偓閳诲酣骞戦幇闈涙闂佸搫瀚搁幏锟�
濠碘槅鍨崜婵嗩熆濮椻偓瀹曪綁骞嬪┑鍫紝
婵犵鈧啿鈧绱炲澶婄煑闁瑰瓨绻勯瀛樹繆椤栨澧叉繝顫嫹
闁诲骸鍘滈崜婵嬫偋閹惰棄鐭楀┑鐘插暙閼靛綊鏌ら懞銉ュ闁绘牭缍佸畷娆撴晸閿燂拷
UB闂佸湱绮崝妤呯嵁閸モ晜瀚氶悗娑櫳戦~锟�
闂佽壈椴稿濠氭焾鐎电硶鍋撻獮鍨仾婵犫偓閿燂拷
闁诲骸绠嶉崹鍝勶耿閸㈢嚜
闂佸憡姊绘慨椋庣礊婢跺瞼鍗氭繛鍡楀閸炲绻涚紙鐘哄厡闁稿骏鎷�
缂傚倷鐒﹂悷锕傚垂濠婂嫮顩锋い鎺嶇缁插湱鈧偣鍊濈紓姘额敊閿燂拷
©2017 www.mb5u.com濠碘槅鍨崜婵嗩熆濮椻偓瀵噣鎮╅幓鎺撳瘶
闂佽 鍋撻柟顖滃椤ワ拷&闂佸憡甯掑Λ鏃堟閿燂拷