原來css也可以計算 calc 使用

2021-10-05 03:49:29 字數 1597 閱讀 3991

什麼是calc:

calc是英文單詞calculate(計算)的縮寫,是css3的乙個新增的功能,用來指定元素的長度。可以使用calc()給元素的border、margin、pading、font-size和width等屬性設定動態值。

calc()可以解決問題

元素寬度為100%時,若再設定margin、padding、border,元素將會撐破父元素,溢位。雖然css3屬性中的box-sizing在一定程度上可以解決這樣的問題,但是calc()函式功能實現該效果更簡單。

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

科普一下box-siziing

box-sizing屬性值可以為這三個值之一:content-box(default),border-box,padding-box。

content-box,border和padding不計算入width之內

padding-box,padding計算入width內

border-box,border和padding計算入width之內,其實就是怪異模式了~

ie8+瀏覽器支援content-box和border-box;ff則支援全部三個值。

calc()語法:

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

.elm
其中"expression"是乙個表示式,用來計算長度的表示式。

calc()的運算規則:

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

使用「+」、「-」、「*」 和 「/」四則運算;

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

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

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

表示式中有「*」和「/」時,其前後可以沒有空格,但建議留有空格。

瀏覽器的相容性:

瀏覽器對calc()的相容性還算不錯,在ie9+、ff4.0+、chrome19+、safari6+都得到較好支援,同樣需要在其前面加上各瀏覽器廠商的識別符,不過可惜的是,移動端的瀏覽器還沒僅有「firefox for android 14.0」支援,其他的全軍覆沒。

在實際使用時,同樣需要新增瀏覽器的字首

.elm
例項:

上面的結構很簡單,就是乙個div.demo的元素中包含了乙個div.box的元素。

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

.demo 

.box

原來這樣也可以賺錢

今天看到這樣一片文章 在義烏買東西便宜到嚇死你 賣100根牙籤只賺1分錢,乙個姓王的商販每天批發牙籤10噸,按100根賺1分錢計算,他每天銷售約1億根牙籤,穩穩當當進賬1萬元。有個攤位賣得是縫衣針,粗的 細的 長的 短的一應俱全,平均1分錢2枚,這個小商販一年賣針也能掙到80萬元。小小的牙籤為何能有...

簡單上手css 你也可以

css是樣式層疊表 cascading style sheets 的簡稱.css也是一種標記語言 作用 設定html中的文字內容 字型,大小,對齊方式等 的外形 寬高,邊框樣式,邊距等 以及版面的布局和外觀顯示樣式.css的規則由兩個主要部分構成 選擇器以及一條或多條宣告.選擇器是用於指定css樣式...

CSS3中的 calc 計算函式

calc 函式用於動態計算長度值 clac 巢狀 calc 函式可以巢狀。在函式裡邊,會被視為簡單的括號表示式,如下例所示。foo 函式的計算值如下所示 foo 例項 1.我們可以創造乙個表示式,用乙個百分比減掉乙個畫素值 foo 本例中,foo 元素總是小於它父元素寬度 50px。2.使用 cal...