html 中設置span的width完美解決方法


在默認情況下,由於span是行標簽,設置width是無效的。只有改變display的屬性,才可以實現設置寬度。

1.初步想法

span{

  background-color:#ccc;

  display:block;

  width:50px;

}

如果想span單獨成行,不與前后內容鏈接,可以這樣寫。如果不想如此,還需修改:

2、再次修改,用上float,變成同行

span{

  background-color:#ccc;

  display:block;

  float:left;

  width:50px;

}

 

但如果span前面沒有文字,那的確是可行的。但是如果有了,前后文字就會連在一起,而span跑到了第二行。

其實,在Html的各種Element中,的確有既是inline,又能夠設定寬度的情況存在。例如button對象,就可以很好的在文字中間出現,並且設定寬度。

能不能讓span象button那樣顯示呢?通過css2標准中display的定義和inline對象的解釋,發現css2標准的制定者把所有的Element在是否屬於inline上做了非此即彼的規定,要么是inline,要么是block,沒有制定button那樣既是inline,又可以象block那樣設置寬度的屬性值。

在css2.1標准草案中display的定義中增加了一個叫inline-block的屬性值,針對的恰好是我們面對的這種情形。那么再看看各種瀏覽器的對應情況。

Firefox:通過display的文檔了解到,inline-block在Firefox 3以后的會實現。通過Mozllia擴展屬性參考了解到,在Firefox 3以前的版本,例如現在的Firefox 2中,可以用-moz-inline-box達到同樣的效果。

IE:通過MSDN中的display文檔了解到,inline-block已經實現。實際測試發現IE 6.0以后都沒問題。

3.完美之法

 

span{

  background-color:#ccc;

  display:-moz-inline-box;

  display:inline-block;

  width:150px;

}


免責聲明!

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



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