DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS進階教程 >> 12種CSS BUG解決方法與技巧
12種CSS BUG解決方法與技巧
編輯:CSS進階教程     
CSS bug是布局中最頭疼的問題。我們需要兼顧各種浏覽器,以期待獲得一致的效果。非常遺憾的是各廠商之間的競爭導致很多問題的存在。而IE6與IE7在很多問題上也存在著很大的差別。輕松的解決CSS bug是我們必須掌握的技能。現在整理出最常用的12種CSS BUG解決方法以及CSS BUG類的小技巧。

一、 針對浏覽器的選擇器
這些選擇器在你需要針對某款浏覽器進行css設計時將非常有用.
  * 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; 
www.52css.com] * html #content-box { 
width: 250px; 
}
 您也可以參考—CSS hacks:浏覽器特定選擇器介紹
http://www.52css.com/article.asp?id=635

二、讓IE6支持PNG透明
一個IE6的Bug引起了大麻煩, 他不支持透明的PNG圖片。
你需要使用一個css濾鏡.52css.com] *html #image-style { 
background-image: none; 
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil 
ename.png", sizingMethod="scale"); 
}

三、移除超鏈接的虛線
FireFox下,當你點擊一個超鏈接時會在外圍出現一個虛線輪廓. 這很容易解決, 只需要在標簽樣式中加入:本文由52CSS.com整理,轉載請注明出處!.com] outline:none.
a{ 
outline: none; 
}
您也可以參考—除鏈接元素的虛線框(兼容IE7、IE6、FF)
http://www.52css.com/article.asp?id=743

四、給行內元素定義寬度

  如果你給一個行內元素定義寬度,那麼它只是在IE6下有效. 所有的HTML元素要麼是行內元素要麼就好是塊元素. 行內元素包括: <span>, <a>, <strong> 和 <em>. 塊元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定義行內元素的寬度, 為了解決這個問題你可以將行內元素轉變為塊元素.
span { width: 150px; display: block }
五、讓固定寬度的頁面居中
為了讓頁面在浏覽器居中顯示, 需要相對定位外層div, 然後把margin設置為auto. [www.52css.com] #wrapper { 
margin: auto; 
position: relative; 
}

六、IE6雙倍邊距的bug
給此對象加上display:inline即可解決問題。具體介紹:
http://www.52css.com/article.asp?id=144

七、Box Model 盒模型bug的一般解決辦法
這是一個臭名昭著的問題了,詳情參考這裡:
http://www.52css.com/article.asp?id=106

八、兩個層之間的3px間隙
傳說中的“IE 3px bug”,解決的辦法:
http://www.52css.com/article.asp?id=146

九、在IE中的HTML注釋引起文字奇怪的復制
Duplicate Characters Bug很神奇,具體的解決辦法:
http://www.52css.com/article.asp?id=440

十、圖片替換技術
用文字總比用圖片做標題好一些. 文字對屏幕閱讀機和SEO都是非常友好的.
<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處, 這樣對於浏覽者來說就看不見了.

十一、 最小寬度
IE6另外一個bug就是它不支持 min-width 屬性. min-width又是相當有用的, 特別是對於彈性模板來說, 它們有一個100%的寬度,min-width 可以告訴浏覽器何時就不要再壓縮寬度了.
除IE6以外所有的浏覽器你只需要一個 min-width: Xpx; 例如:.52css.com] .container { 
min-width:300px; 
}

為了讓他在IE6下工作, 我們需要一些額外的工作. 開始的時候我們需要創建兩個div, 一個包含另一個:.52css.com] <div class="container"> 
<div class="holder">Content</div> 
</div>

然後你需要定義外層div的min-width屬性,本文由52CSS.com整理,轉載請注明出處!.52css.com] .container { 
min-width:300px; 
}

這時該是IE hack大顯身手的時候了. 你需要包含如下的代碼:.52css.com] * html .container { 
border-right: 300px solid #FFF; 

* html .holder { 
display: inline-block; 
position: relative; 
margin-right: -300px; 
}

十二、隱藏水平滾動條
為了避免出現水平滾動條, 在body裡加入 overflow-x:hidden .
body { overflow-x: hidden; }
當你決定使用一個比浏覽器窗口大的圖片或者flash時, 這個技巧將非常有用.
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved