国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > CSS > 正文

初探CSS3中的calc()功能

2024-07-11 08:34:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

之前,我們想要實(shí)現(xiàn)一個(gè)完美的寬度自適應(yīng)的輸入框好麻煩,曾經(jīng)也被作為對(duì)前端技術(shù)的一個(gè)挑戰(zhàn)。類似的常見場(chǎng)景還有100%寬+邊框的容器等。遇到這些情況,我們不得不分外小心,因?yàn)楦鱾€(gè)瀏覽器的表現(xiàn)可能不一致。

現(xiàn)在,firefox和webkit相繼支持calc()功能了,我們也可以學(xué)習(xí)下了。
calc()是干嘛的?

calc()是單詞calculate(計(jì)算)的縮寫,是css3的一個(gè)新的長(zhǎng)度單位功能,可以使用簡(jiǎn)單的數(shù)學(xué)運(yùn)算。

嗯,CSS3越來(lái)越高級(jí)了。
運(yùn)算規(guī)則

calc()使用通用的數(shù)學(xué)運(yùn)算規(guī)則,但是也提供更智能的功能:

    使用“+”“-”“*”“/”四則運(yùn)算;
    可以使用百分比、px、em、rem等單位;
    可以混合使用各種單位進(jìn)行計(jì)算。

實(shí)例:

我們來(lái)看幾個(gè)小例子來(lái)理解下calc()功能吧:

CSS Code復(fù)制內(nèi)容到剪貼板

.box{ border:1px solid #ddd; width:calc(100%-2px) }  

容器寬度加上邊框?qū)挾日?00%。

CSS Code復(fù)制內(nèi)容到剪貼板

.box{ width:calc(10em+20px) }  

寬度,10em加20px。

CSS Code復(fù)制內(nèi)容到剪貼板

.box{ margin-left:20px; width:calc(100%/3-20px); }    
.box:nth-child(3n){ margin-left:0; }  

3欄等寬布局。
瀏覽器支持

firefox 4.0+已經(jīng)開支支持calc()功能,不過(guò)要使用-moz-calc()私有屬性,chrome從19 dev版,也開始支持私有的-webkit-calc()寫法,IE9這次則牛逼了一次,原生支持標(biāo)準(zhǔn)的不帶前綴的寫法了。Opera貌似還不支持~~

所以如果我們要用這個(gè)屬性的話,要記得帶上各瀏覽器的兼容性。

eric meyer提到w3c規(guī)范的一條備注(評(píng)論里面的同學(xué)也有提到):

    Note that the grammar requires spaces around binary ‘+’ and ‘-’ operators. The ‘*’ and ‘/’ operators do not require spaces. via CSS3 Values and Units specification

也就是說(shuō),”+”、”-“兩個(gè)符號(hào)邊上必須要有空格,而”*”、”/”符號(hào)則不是必須的。

然后我們可能要這樣寫:

CSS Code復(fù)制內(nèi)容到剪貼板

width: calc(100%/3 – 2*1em – 2*1px);  

這樣寫也是可以的:

CSS Code復(fù)制內(nèi)容到剪貼板

width: calc(100% / 3 – 2 * 1em – 2 * 1px);  

但是這樣寫就是錯(cuò)的:

CSS Code復(fù)制內(nèi)容到剪貼板

width: calc(100%/3-2*1em-2*1px);  

嗯,這樣很容易寫錯(cuò)啊。還好現(xiàn)在支持的瀏覽器還不太多,我會(huì)繼續(xù)觀望并保持更新~~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 于都县| 德钦县| 广东省| 肃南| 浪卡子县| 万年县| 灌南县| 富川| 桂阳县| 凤山县| 交口县| 林甸县| 贵港市| 阳信县| 莱州市| 呼玛县| 龙州县| 驻马店市| 嘉兴市| 东城区| 武冈市| 辰溪县| 应用必备| 民权县| 闵行区| 含山县| 益阳市| 五常市| 永春县| 荣成市| 米泉市| 黄陵县| 若尔盖县| 台南县| 花莲市| 甘孜县| 乌拉特中旗| 广元市| 巴彦淖尔市| 呈贡县| 庆云县|