做者:Milos Protic
譯者:前端小智
來源:devinduct
點贊再看,微信搜索
【大遷世界】,B站關注
【前端小智】這個沒有大廠背景,但有着一股向上積極心態人。本文
GitHub
https://github.com/qq44924588... 上已經收錄,文章的已分類,也整理了不少個人文檔,和教程資料。
最近開源了一個 Vue 組件,還不夠完善,歡迎你們來一塊兒完善它,也但願你們能給個 star 支持一下,謝謝各位了。css
github 地址:https://github.com/qq44924588...前端
簡介
CSS 包含了許多函數,並且它可以完成許多早期須要用 JavaScript才能完成的事情。每一年都有新的特性被添加進來,這讓咱們的開發更加輕鬆,也減小了對JavaScript的依賴。CSS 函數是它所具備的最強大的特性之一,在本文中,我將介紹一些我認爲有用的函數。vue
attr()
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/GRpYJKd微信
calc()
這個函數使咱們可以計算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
var()
經過這個函數,咱們可使用一個自定義屬性的值做爲另外一個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()
就我我的而言,我從未使用過這種方法,但它看起來是頗有趣。這個函數返回指定計數器的當前值,須要與 counter-reset
和counter-increment
配合使用。
咱們能夠用它來計算其餘元素,好比有序列表。
<div class="counter"> <span>Mars</span> <span>Bounty</span> <span>Snickers</span> </div>
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
circle()
這個函數建立一個圓形區域來屏蔽它所應用的元素。你能夠指定它的半徑和位置。一般與圖像一塊兒使用來建立圓角形狀。此函數是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...
交流
文章每週持續更新,能夠微信搜索「 大遷世界 」第一時間閱讀和催更(比博客早一到兩篇喲),本文 GitHub https://github.com/qq449245884/xiaozhi 已經收錄,整理了不少個人文檔,歡迎Star和完善,你們面試能夠參照考點複習,另外關注公衆號,後臺回覆福利,便可看到福利,你懂的。
本文同步分享在 博客「前端小智」(SegmentFault)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。