中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

css樣式中calc的含義是什么

發布時間:2022-09-14 17:57:18 來源:億速云 閱讀:204 作者:iii 欄目:web開發

這篇文章主要介紹“css樣式中calc的含義是什么”,在日常操作中,相信很多人在css樣式中calc的含義是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”css樣式中calc的含義是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在css中,calc是計算的意思;calc可以理解為一個函數function,是calculate的縮寫,用來指定一個元素的長度,calc可以給元素做計算,使用指定的單位值計算出長度值,語法為“元素{長度屬性:calc(表達式)}”。

本教程操作環境:windows10系統、CSS3&&HTML5版本、Dell G3電腦。

css樣式中的calc是什么意思

calc()從字面我們可以把他理解為一個函數function。其實calc是英文單詞calculate(計算)的縮寫,是css3的一個新增的功能,用來指定元素的長度。

比如說,你可以使用calc()給元素的border、margin、pading、font-size和width等屬性設置動態值。為何說是動態值呢?因為我們使用的表達式來得到的值。不過calc()最大的好處就是用在流體布局上,可以通過calc()計算得到元素的寬度。

calc()能做什么?

calc()能讓你給元素的做計算,你可以給一個div元素,使用百分比、em、px和rem單位值計算出其寬度或者高度,比如說“width:calc(50% + 2em)”,這樣一來你就不用考慮元素DIV的寬度值到底是多少,而把這個煩人的任務交由瀏覽器去計算。

calc()語法

calc()語法非常簡單,就像我們小時候學加 (+)、減(-)、乘(*)、除(/)一樣,使用數學表達式來表示:

.elm {
  width: calc(expression);
}

其中”expression”是一個表達式,用來計算長度的表達式。

calc()的運算規則

calc()使用通用的數學運算規則,但是也提供更智能的功能:

使用“+”、“-”、“*” 和 “/”四則運算;

可以使用百分比、px、em、rem等單位;

可以混合使用各種單位進行計算;

表達式中有“+”和“-”時,其前后必須要有空格,如”widht: calc(12%+5em)”這種沒有空格的寫法是錯誤的;

表達式中有“*”和“/”時,其前后可以沒有空格,但建議留有空格。

大家在實際使用時,同樣需要添加瀏覽器的前綴

 .elm {
    /*Firefox*/
    -moz-calc(expression);
    /*chrome safari*/
    -webkit-calc(expression);
    /*Standard */
    calc();
 }

通過上面的了解,大家對calc()不在那么陌生,但對于實際的運用可能還是不太了解,那么大家就接下來跟我一起動手,通過實例來了解他吧。首先我們來看一個最常用的實例:

<div class="demo">
     <div class="box"></div>
</div>

上面的結構很簡單,就是一個div.demo的元素中包含了一個div.box的元素,接下來我們一步一步來看其中的變化。

第一步:添加普通樣式:

.demo {
    width: 300px;
    background: #60f;
}
.box {
  width: 100%;
    background: #f60;
    height: 50px;
}

此時的效果很簡單,就是div.box完全遮蓋了div.demo,如下圖所示:

css樣式中calc的含義是什么

第二步,在div.box上添加border和padding

這一步很棘手的事情來了,在div.box上添加10px的內距padding,同時添加5px的border:

.demo {
    width: 300px;
    background: #60f;
}
.box {
  width: 100%;
  background: #f60;
  height: 50px;
  padding: 10px;
  border: 5px solid green;
}

為了更好的說明問題,我在div.demo上添加了一個padding:3px 0;

.demo {
    width: 300px;
    background: #60f;
padding: 3px 0;  
}
.box {
  width: 100%;
  background: #f60;
  height: 50px;
  padding: 10px;
  border: 5px solid green;
}

這個時候大家不知道能否想到問題會發生在哪?其實很簡單,這個時候div.box的寬度大于了其容器div.demo的總寬度,從而撐破容器伸出來了,如圖所示:

css樣式中calc的含義是什么

第三步,calc()的運用

為了解決撐破容器的問題,以前我們只能去計算div.box的寬度,用容器寬度減去padding和border的值,但有時候,我們苦于不知道元素的總寬度,比如說是自適應的布局,只知道一個百分值,但其他的值又是px之類的值,這就是難點,死卡住了。隨著CSS3的出現,其中利用box-sizing來改變元素的盒模型類型實使實現效果,但今天我們學習的calc()方法更是方便。

知道總寬度是100%,在這個基礎上減去boder的寬度(5px 2 = 10px),在減去padding的寬度(10px 2 = 20px),即”100% - (10px + 5px) * 2 = 30px” ,最終得到的值就是div.box的width值:

.demo {
    width: 300px;
    background: #60f;
    padding: 3px 0;
}
.box {
    background: #f60;
    height: 50px;
    padding: 10px;
    border: 5px solid green;
width: 90%;/*寫給不支持calc()的瀏覽器*/
    width:-moz-calc(100% - (10px + 5px) * 2);
    width:-webkit-calc(100% - (10px + 5px) * 2);
    width: calc(100% - (10px + 5px) * 2);
}

這樣一來,通過calc()計算后,div.box不在會超出其容器div.demo的寬度,如圖所示:

css樣式中calc的含義是什么

到此,關于“css樣式中calc的含義是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平度市| 普陀区| 子洲县| 富源县| 顺昌县| 广南县| 收藏| 乐亭县| 孝义市| 铁力市| 大连市| 阜城县| 紫阳县| 崇州市| 龙口市| 长子县| 兴安县| 全椒县| 鲜城| 襄樊市| 云南省| 宿松县| 阿克| 长海县| 海口市| 临西县| 磐石市| 平邑县| 桐柏县| 聂拉木县| SHOW| 芒康县| 定结县| 凭祥市| 宾川县| 镇远县| 精河县| 梁平县| 杂多县| 纳雍县| 安远县|