5個好用的 CSS 函數(shù)
簡介
CSS 包含了許多函數(shù),而且它能夠完成許多早期需要用 JavaScript才能完成的事情。每年都有新的特性被添加進(jìn)來,這讓我們的開發(fā)更加輕松,也減少了對JavaScript的依賴。CSS 函數(shù)是它所具有的最強大的特性之一,在本文中,我將介紹一些我認(rèn)為有用的函數(shù)。
attr()
attr 函數(shù)用于獲取所選元素的屬性值。它接受三個參數(shù),屬性名稱,類型和默認(rèn)值。
語法: attr( attribute-name? [,]? )
事例:
- <p data-text="the attr function"
- data-tooltip="Hi from attr!" class="attr">This text is combined with</p>
css
- 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()
這個函數(shù)使我們能夠計算CSS值,而不是指定確切的值。通常用于計算元素的大小或位置。它支持加法、減法、乘法和除法。
需要特別注意重要一點是+和-運算符必須用空格隔開,不然無法正常工作。*和/運算符不有這限制,但出于一致性的考慮,建議添加空格。
另外,很棒的是,我們可以混合CSS單位,例如,我們可以減去百分比和像素。
我們可以用calc構(gòu)建一個帶有居中元素的示例:
- <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()
通過這個函數(shù),我們可以使用一個自定義屬性的值作為另一個CSS屬性的值。簡單地說,我們可以定義一個顏色,例如,將它放在自定義屬性(CSS變量)中,然后通過調(diào)用var函數(shù)重用該屬性值。
與CSS變量一起,該函數(shù)提高了可維護(hù)性并減少了重復(fù)。一個用例是為網(wǎng)站創(chuàng)建主題。
此函數(shù)接受兩個參數(shù),即自定義屬性和一個默認(rèn)值,如果出現(xiàn)問題,將使用它們。
- :root {
- --bg-color: green;
- --color: white
- }
- p.var {
- background-color: var(--bg-color);
- color: var(--color)
- }
效果:
源碼:https://codepen.io/protic_milos/pen/GRpYJKd
counter()
就我個人而言,我從未使用過這種方法,但它看起來是很有趣。這個函數(shù)返回指定計數(shù)器的當(dāng)前值,需要與 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()
這個函數(shù)創(chuàng)建一個圓形區(qū)域來屏蔽它所應(yīng)用的元素。你可以指定它的半徑和位置。通常與圖像一起使用來創(chuàng)建圓角形狀。此函數(shù)是clip-path屬性值。
另外,值得一提的是,除了圓之外,您還可以創(chuàng)建橢圓和多邊形形狀。
- <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
總結(jié)
正如我之前多次提到的,在很多情況下,開發(fā)人員都忽視了CSS的可能性,因此失去了web站點的簡單性。每一年我們都可以依靠CSS為我們提供所需的設(shè)計能力,這很好,JavaScript 應(yīng)該把注意力放在其他事情上,而不是設(shè)計上。
作者:Milos Protic 譯者:前端小智 來源:devinduct
原文:https://devinduct.com/63/5-useful-css-functions
本文轉(zhuǎn)載自微信公眾號「 大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系大遷世界公眾號。