做者:Milos Protic
譯者:前端小智
來源:devinduct
點贊再看,養成習慣本文
GitHub
https://github.com/qq44924588... 上已經收錄,更多往期高贊文章的分類,也整理了不少個人文檔,和教程資料。歡迎Star和完善,你們面試能夠參照考點複習,但願咱們一塊兒有點東西。css
CSS 包含了許多函數,並且它可以完成許多早期須要用 JavaScript才能完成的事情。每一年都有新的特性被添加進來,這讓咱們的開發更加輕鬆,也減小了對JavaScript的依賴。CSS 函數是它所具備的最強大的特性之一,在本文中,我將介紹一些我認爲有用的函數。前端
attr
函數用於獲取所選元素的屬性值。 它接受三個參數,屬性名稱
,類型
和默認值
。git
語法: attr( attribute-name <type-or-unit>? [, <fallback> ]? )
事例:github
<p data-text="the attr function" data-tooltip="Hi from attr!" class="attr">This text is combined with</p>
cssweb
p::after { content: ' ' attr(data-text); } p.attr:hover::after { content: ' ' attr(data-tooltip); background-color: orange; color: white }
效果:面試
源碼:https://codepen.io/protic_milos/pen/GRpYJKdsegmentfault
這個函數使咱們可以計算CSS值,而不是指定確切的值。一般用於計算元素的大小或位置。它支持加法、減法、乘法和除法。函數
須要特別注意重要一點是+
和-
運算符必須用空格隔開,否則沒法正常工做。*
和/
運算符不有這限制,但出於一致性的考慮,建議添加空格。工具
另外,很棒的是,咱們能夠混合CSS單位,例如,咱們能夠減去百分比和像素。學習
咱們能夠用calc
構建一個帶有居中元素的示例:
<p class="calc">Centered with calc</p>
css
p.calc { padding: 10px; background-color: orange; color: white; width: 200px; text-align:center; margin-left: calc(50% - 100px) }
效果:
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
經過這個函數,咱們可使用一個自定義屬性的值做爲另外一個CSS屬性的值。簡單地說,咱們能夠定義一個顏色,例如,將它放在自定義屬性(CSS變量)中,而後經過調用var
函數重用該屬性值。
與CSS變量一塊兒,該函數提升了可維護性並減小了重複。一個用例是爲網站建立主題。
此函數接受兩個參數,即自定義屬性和一個默認值,若是出現問題,將使用它們。
:root { --bg-color: green; --color: white } p.var { background-color: var(--bg-color); color: var(--color) }
效果:
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
就我我的而言,我從未使用過這種方法,但它看起來是頗有趣。這個函數返回指定計數器的當前值,須要與 counter-reset
和counter-increment
配合使用。
咱們能夠用它來計算其餘元素,好比有序列表。
<div class="counter"> <span>Mars</span> <span>Bounty</span> <span>Snickers</span> </div>
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
這個函數建立一個圓形區域來屏蔽它所應用的元素。你能夠指定它的半徑和位置。一般與圖像一塊兒使用來建立圓角形狀。此函數是clip-path
屬性值。
另外,值得一提的是,除了圓以外,您還能夠建立橢圓和多邊形形狀。
<img class="circle" src="https://devinduct.com/Uploads/PostImages/1122dcb9-954a-4641-9ca6-c38e9472698f.png" />
css
img.circle { clip-path: circle(30%); }
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
正如我以前屢次提到的,在不少狀況下,開發人員都忽視了CSS的可能性,所以失去了web站點的簡單性。每年咱們均可以依靠CSS爲咱們提供所需的設計能力,這很好,JavaScript 應該把注意力放在其餘事情上,而不是設計上。
代碼部署後可能存在的BUG無法實時知道,過後爲了解決這些BUG,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebug。
原文:https://devinduct.com/63/5-us...
乾貨系列文章彙總以下,以爲不錯點個Star,歡迎 加羣 互相學習。
https://github.com/qq44924588...
我是小智,公衆號「大遷世界」做者,對前端技術保持學習愛好者。我會常常分享本身所學所看的乾貨,在進階的路上,共勉!
關注公衆號,後臺回覆福利,便可看到福利,你懂的。