css3中的calc函數淺析
前言
其實在之前學習CSS3的時候,我并沒有注意到有calc()這個屬性,后來在看一個大牛的代碼的時候看到了這個,然后就引發(fā)了后來的一系列的查找、學習,以及這篇博客的誕生。好了,廢話不多說了,來干正事。
簡介
其實,calc()這個形式看起來就很容易讓人想到Javascript里的函數,當然他不是js里的函數,但是他有著類似函數的功能,可以用來計算,括號里是一個表達式,通常用calc()來指定元素的長度,不管是width、height、border還是padding等都可以用他來指定。說白了,calc()就是css3的一個指定元素長度的屬性,他的特殊之處在于他可以做計算,而且支持混合使用各種單位,比如%、px、em等。所以這個屬性特別適用于那些自適應的布局。
兼容性:在IE9+、FF4.0+、Chrome19+、Safari6+都得到了較好支持(據說在使用時要加上供應商前綴,但是我測試了一下,不加也是可以用的),但是在移動端的支持不是很好。
正文:
最近在一次項目中我遇到一個很普通的問題,相信大家都會遇到過,我的需求是這樣的,我的側邊欄的高度是百分百的,就像下面的例子一樣:

這時我要在頂部導航欄上加一些需求,要實現的效果類似于這樣,不過想很郁悶它出現了滾動條,效果如下:

我不想它出現滾動條,這個時候可能很多同學會說,我可以用絕對定位等等,但我的頂部導航欄本來就是絕對定位呀,于是乎我翻了一翻css3,發(fā)現了一個神奇的函數,calc!!!(啊尼路亞,啊尼路亞,啊尼路亞,啊尼路亞~~~)
下面是一些粗鄙的無聊的復制粘貼過來的函數說明:
calc() 函數用于動態(tài)計算長度值。
需要注意的是,運算符前后都需要保留一個空格,例如:width: calc(100vh - 10px);
任何長度值都可以使用calc()函數進行計算;
calc()函數支持 "+", "-", "*", "/" 運算;
calc()函數使用標準的數學運算優(yōu)先級規(guī)則;
支持版本:CSS3
兼容性:(開頭說了)
回到正事,了解了它的內容,接下來就要看看它能給你帶來的好處,比如:消滅滾動條,當我把父級的高度設置成height: calc(100vh - '我的需求內容高度')時滾動條神奇的消失了,呈現了這樣的效果:

登登登登~?。?!是不是很神奇,為什么會這樣呢?因為100vh就相當于window.innerHeight, 是瀏覽器的內部高度, 滾動條高度也計算在內。如果高只設置100%是可用高度, 就不包含滾動條的高度啦, 是不是非常好用的一個東西(說那么多大家走過路過應施舍點點贊給我,謝謝謝謝~)
其實不僅僅只有高,還有很多很多應用場景都是可以實現的,比如我們經常會給自己的ul li設置padding或者margin,當li的個數沒有超過一定的數量時它是不會換到第二行的,但有時候就因為那么一點點padding或者margin就換行了,使得左邊或者右邊空白了一處很難看,大家都可以用calc這個函數去解決,我就不一一舉例了哈,本人技術水平有限,就說到這了,如果有錯的地方,希望大家可以多多指出,祝大家級別年年跳,薪資翻又翻。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
本篇文章主要介紹了巧用CSS3的calc()寬度計算做響應模式布局的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-22
這篇文章主要介紹了CSS3 calc()會計算屬性詳解的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-27- 這篇文章主要介紹了詳解CSS 3 的 calc() 方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-01-12
- 這篇文章主要介紹了淺談css3中calc在less編譯時被計算的解決辦法的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-04
calc是css3的一個新功能,用來指定元素的長度,calc()最大的好處就是用在流體布局上,可以通過calc()計算得到元素的寬度。接下來腳本之家小編給大家分享CSS3 Calc實現滾動2017-09-14- 這篇文章主要介紹了 CSS3的calc()做響應模式布局的實現方法,需要的朋友可以參考下2017-09-06
CSS3 函數技巧 用css 實現js實現的事情(clac Counters Tooltip)
這篇文章主要介紹了如何使用CSS3代碼更好實現js中效果,clac Counters Tooltip等功能使得代碼更為簡潔明了,需要的朋友可以參考下2017-08-15- 數學表達式calc()是CSS中的函數,主要用于數學運算。這篇文章給大家介紹了CSS中的數學表達式calc()的相關知識,感興趣的朋友一起看看吧2020-01-19




