1. 程式人生 > >css3 calc()自適應佈局屬性

css3 calc()自適應佈局屬性

我們想要實現頁面自適應佈局時,通常因為margin的存在,而比較麻煩;有時候想要實現寬度自適應的輸入框時,也因為padding或margin的存在,而相當繁瑣,同時由於瀏覽器相容性而導致最終效果不一致。css3新新增屬性box-sizing,在一定程度上解決了上面的問題,而在今天的文章中我們來通過css3新增加的另外一個屬性calc()來實現適應佈局。 calc()是css3新新增屬性,它可以讓你使用一個算術表示式來表達長度值,這意味著可以用它來定義div的寬度,並設定margin、padding、border等。 calc()的運算規則     使用”+”、”-”、”*”、”/”四則運算;     可以使用百分比、px、em、rem等單位;     可以混合使用各種單位進行計算。 例項1:定位在頁面上的塊元素,含有外邊距 .banner {   position:absolute;   left: 40px;   width: -moz-calc(100% - 80px);   width: -webkit-calc(100% - 80px);   width: calc(100% - 80px);   border: solid black 1px;   box-shadow: 1px 2px;   background-color: yellow;   padding: 6px;   text-align: center; } 例項2:自動調整大小的表單,又適應容器 input {   padding: 2px;   display: block;   width: -moz-calc(100% - 1em);   width: -webkit-calc(100% - 1em);   width: calc(100% - 1em); }   #formbox {   width: -moz-calc(100%/6);   width: -webkit-calc(100%/6);   width: calc(100%/6);   border: 1px solid black;   padding: 4px; } <form>   <div id="formbox">   <label>Type something:</label>   <input type="text">   </div> </form> 瀏覽器相容性     firefox 4.0+已經開支支援calc()功能,需要使用-moz-calc()私有屬性;     chrome從19 dev版,開始支援私有的-webkit-calc()寫法;     IE9支援原生寫法,calc();     Opera貌似還不支援~~ This is why you see examples like this: width: calc(100%/3 - 2*1em - 2*1px); That’s actually the minimum number of characters you need to write that particular expression, so far as I can tell. Given the grammar requirements, you could legitimately rewrite that example like so: width: calc(100% / 3 - 2 * 1em - 2 * 1px); …but not like so: width: calc(100%/3-2*1em-2*1px);