CSS3:calc() 屬性用法

簡介:

calc是英文單詞calculate(計算)的縮寫,是css3的一個新增的功能,可以使用calc()給元素的border、margin、pading、font-size和width等屬性設(shè)置動態(tài)值。

calc()能給元素的做計算,可以給一個div元素,使用百分比、em、px和rem單位值計算出其寬度或者高度,比如說:width:calc(50% + 2em)

calc()的語法:

.elm {
    width: calc(expression);//其中"expression"是一個用來計算長度的表達(dá)式
}

calc()的運(yùn)算規(guī)則:

1 使用“+”、“-”、“*” 和 “/”四則運(yùn)算;
2 可以使用百分比、px、em、rem等單位;
3 可以混合使用各種單位進(jìn)行計算;
4 表達(dá)式中有“+”和“-”時,其前后必須要有空格,如"widht:calc(12%+5em)"這種沒有空格的寫法是錯誤的;
5 表達(dá)式中有“*”和“/”時,其前后可以沒有空格,但建議留有空格。

注:使用時,注意查看瀏覽器兼容性

瀏覽器兼容性

例子1:

每個格子width隨著瀏覽器的放大縮小而改變
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>calc</title>
        <style type="text/css">
            * {margin: 0;padding: 0;}
            .col-3 {
                width: calc(100%/4 - 5px);
                float: left;
                margin-right: calc(5px*4/3);
                background: #eee;
                color: #333;
                height: 100px;
                text-align: center;
                margin-bottom: calc(5px*4/3);
                font-size: 18px;
                line-height: 100px;
            }
            .col-3:nth-child(4n) {margin-right: 0;}
        </style>
    </head>
    <body>
        <div class="container">
            <div class="col-3">1</div>
            <div class="col-3">2</div>
            <div class="col-3">3</div>
            <div class="col-3">4</div>
            <div class="col-3">5</div>
            <div class="col-3">6</div>
            <div class="col-3">7</div>
            <div class="col-3">8</div>
            <div class="col-3">9</div>
            <div class="col-3">10</div>
            <div class="col-3">11</div>
            <div class="col-3">12</div>
            <div class="col-3">13</div>
            <div class="col-3">14</div>
            <div class="col-3">15</div>
            <div class="col-3">16</div>
        </div>
    </body>
</html>

例子2:

a1和a2之間、跟頁面左右間隔都是30px,其寬度隨著頁面寬度而自適應(yīng)
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .container {
                width: 500px;
                height: 100px;
                background: pink;
                margin: 50px auto;}
            .a1 {
                float: left;
                margin: 30px 15px 0 30px;
                width: -webkit-calc((100% - 90px)/2);
                background: red;
            }
            .a2 {
                float: left;
                margin: 30px 30px 0 15px;
                width: -webkit-calc((100% - 90px)/2);
                background: green;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="a1"> a1 </div>
            <div class="a2"> a 2 </div>
        </div>
    </body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,152評論 1 92
  • 摘自http://www.w3cplus.com/css3/how-to-use-css3-calc-functi...
    Lareina林暖暖閱讀 813評論 0 0
  • 其實CSS中的長度單位一共有8個,分別是px,em,pt,ex,pc,in,mm,cm。(ex:相對長度單位。相對...
    iam夢的的閱讀 657評論 0 0
  • 什么是calc()? 學(xué)習(xí)calc()之前,我們有必要先知道calc()是什么?只有知道了他是個什么東東?在實際運(yùn)...
    ddai_Q閱讀 443評論 0 1
  • 今天瀏覽這個http://www.sitepoint.com站時,因為好奇看了下人家寫的代碼,結(jié)果發(fā)現(xiàn)了這行代碼,...
    arlene112閱讀 969評論 0 0

友情鏈接更多精彩內(nèi)容