天天看點

關于CSS+DIV一些相容問題常見的例子

有些網站在IE6.0、Mozilla Firefox1.0、Opera 7.12中浏覽發生變形和錯位。 Www_Chinaz_com

在IE裡居中,但Mozilla裡沒有。在IE中設定body {TEXT-ALIGN: center;}就已經可以居中了,但在Mozilla中必須對需要居中的層再加入以下樣式設定:MARGIN-RIGHT: auto;MARGIN-LEFT: auto; [中國站長站]

超出寬度。在Mozilla裡看正常的頁面,在IE裡因為超出寬度而變形,并排的層移到下面去了。這個情況是因為IE和Mozilla對盒模型解釋不同造成的,有很多解決辦法,比如"!important"方法。

web标準和CSS布局已經被越來越多的設計師了解和掌握。CSS布局經過一段時間的消化了解和應用,會有更多技術美觀兼顧的網頁湧現。

=========================常見錯誤=============================

 CSS+DIV是網站标準(或稱“WEB标準”)中常用的術語之一,通常為了說明與HTML網頁設計語言中的表格(table)定位方式的差別,因為XHTML網站設計标準中,不再使用表格定位技術,而是采用css+div的方式實作各種定位。應用應用DIV+CSS編碼時很容易犯一些錯誤。本文列舉了一些常見的錯誤:

  1. 檢查HTML元素是否有拼寫錯誤、是否忘記結束标記

  即使是老手也經常會弄錯div的嵌套關系。可以用dreamweaver的驗證功能檢查一下有無錯誤。

  2. 檢查CSS是否正确

  檢查一下有無拼寫錯誤、是否忘記結尾的 } 等。可以利用CleanCSS來檢查 CSS的拼寫錯誤。CleanCSS本是為CSS減肥的工具,但也能檢查出拼寫錯誤。

  3. 确定錯誤發生的位置

  如果錯誤影響了整體布局,則可以逐個删除div塊,直到删除某個div塊後顯示恢複正常,即可确定錯誤發生的位置。

  4. 利用border屬性确定出錯元素的布局特性

  使用float屬性布局一不小心就會出錯。這時為元素添加border屬性确定元素邊界,錯誤原因即水落石出。

  5. float元素的父元素不能指定clear屬性

  MacIE下如果對float的元素的父元素使用clear屬性,周圍的float元素布局就會混亂。這是MacIE的著名的bug,倘若不知道就會走彎路。

  6. float元素務必指定width屬性

  很多浏覽器在顯示未指定width的float元素時會有bug。是以不管float元素的内容如何,一定要為其指定width屬性。另外指定元素時盡量使用em而不是px做機關。

  7. float元素不能指定margin和padding等屬性

  IE在顯示指定了margin和padding的float元素時有bug。是以不要對float元素指定margin和padding屬性(可以在float元素内部嵌套一個div來設定margin和padding)。也可以使用hack方法為IE指定特别的值。

  8. float元素的寬度之和要小于100%

  如果float元素的寬度之和正好是100%,某些古老的浏覽器将不能正常顯示。是以請保證寬度之和小于99%。

  9. 是否重設了預設的樣式?

  某些屬性如margin、padding等,不同浏覽器會有不同的解釋。是以最好在開發前首先将全體的margin、padding設定為0、清單樣式設定為none等。

  10. 是否忘記了寫DTD?

  如果無論怎樣調整不同浏覽器顯示結果還是不一樣,那麼可以檢查一下頁面開頭是不是忘了寫下面這行DTD:

以下是引用片段:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

11、使div居中

代碼:<div style="margin:0 auto">&nbsp;</div>

需要注意的問題是,頁面DOCTYPE編碼聲明一定不要忘了,不然還是不能居中的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

此問題可以參考我以前寫過的一篇日志:http://lintex.blog.sohu.com/8583306.html

12、文字垂直居中

代碼:<div style="height:50px; line-height:50px;">It's a test.</div>

關鍵是line-height需要設定成和高度一樣,就可以使文字垂直居中了。

13、IE 6 的雙倍邊距 BUG

這個問題網上介紹的很多,但是這個也是避免不了的問題

<div style="float:left; margin:5px;">

IE 6 下會了解為10px,解決辦法是在style裡面加入“display:inline”