正確的使用CSS樣式居中代碼實現元素居中


 text-align是用於設置或對象中文本的對齊方式。一般情況下我們設置文本對齊方式的時候需要用此屬性進行設置,如:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
  div { text-align: left; }   表示文本居左對齊。

  margin是設置對象四邊的外延邊距,被稱為外補丁或外邊距。如:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
  div { margin: 20px 10px 30px 40px; }
  表示對象外邊距,頂20px、右10px、下30px、左40px。

  我們設置某個對象水平方向居中的時候,常常將左右的外邊距設置為auto來實現。如:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div { margin: 0 auto; }

  現在的問題是:body{text-align:center}與margin:0 auto的異同。text-align:center設置為文本或img標簽等一些內聯對象(或與之類似的元素)的居中。margin:0 auto是設置塊元素(或與之類似的元素)的居中。但這兩個屬性IE與FF的理解也有所不同。
  我們設置一個段落P,在段落內存在一個圖片img標簽。  我們設置body{text-align:center;}。得到下面的圖片:


  在IE中,段落P,圖片img同時實現了居中對齊,也就是說text-align:center;同時作用於元素p與元素img。   在FF中,段落P,沒有能實現居中對齊,而圖片img實現了居中對齊,也就是說text-align:center;作用於img標簽,而段落p標簽沒有起到居中的作用。
  我們設置段落 p {margin:0 auto;}。得到下面的圖片:


  我們發現在IE與FF中,段落P均實現了居中對齊。圖片img由於不是作用對象,所以不會居中對齊。
  有三種情況需要說明:
  一、有朋友在操作的時候,將margin:0 auto;的選擇器混淆了,應該是作用對象,如div,p,而不是body。如果設置:body { margin:0 auto; }將不會達到任何效果,除非你定義body的寬度,那將會讓body內的元素產生位置變化。如我們設置body寬度為500px。對p段落不作任何設置,我們最大化窗口將會看到段落並非處於窗口的最左上角。
  二,我們設置段落 p {text-align:center;} 將要實現的並不是段落本身的對齊方式,而是段落內元素居中對齊。
  三,我們設置圖片標簽img {margin:0 auto;} ,我們就犯了一個小錯誤,img類於內聯對象,不可以設置圖片img標簽的margin屬性,如果你一定想要設置,那么首先要將它的屬性轉變為塊元素,如下面的代碼:img {display:block; margin:0 auto;}
  有朋友產生疑問了,那該如何使用呢?說說我的建議:
  如果頁面中的元素,均位於div標簽或其它塊元素內,進行了合理的嵌套,我們不必設置body{text-align:center}。只需要設置相應的div元素margin:0 auto;即可。如上面的代碼所講述,頁面中的元素均位於段落p標簽中,只需要將段落居中即可。
  如果頁面中的元素,有一部分不是在div標簽或其它塊元素內,我們需要設置body{text-align:center}。但也會遇到問題,這樣設置以后,大部分內聯元素,都居中對齊了,包括頁面中其它的一些文本,還需要進行相應的調整才能適應設計的需要。如:我們設置body內有一個段落P,在段落內有一個圖片img及一段文本,在body內還存在一個獨立的圖片img,看下面的圖片:

  我們實現了段落p的居中,同時也讓位於段落外的圖片實現了居中,但段落中的圖片與文本居中對齊了。如下是運行代碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM