自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CSS 中的 11 個(gè)新特性和功能

開發(fā) 前端
9 月 13 日,CSS 工作組發(fā)布了 CSS 值和單位模塊第 5 級的第一個(gè)公共工作草案。它描述了 CSS 屬性接受的通用值和單位以及它們使用的語法,并附帶了一些有趣的新功能。

9 月 13 日,CSS 工作組發(fā)布了 CSS 值和單位模塊第 5 級的第一個(gè)公共工作草案。它描述了 CSS 屬性接受的通用值和單位以及它們使用的語法,并附帶了一些有趣的新功能。

注意:由于它是最近才發(fā)布的,并且目前處于工作草案狀態(tài),本文中描述的許多功能將發(fā)生變化,并且它們不是在所有瀏覽器中可用(有些瀏覽器可用!)。

不久前還無法想象的事情正在進(jìn)入規(guī)范:隨機(jī)值、使用屬性作為任何屬性的值、能夠在計(jì)算中使用順序……看起來很有希望。

這些功能中的許多都有一個(gè)共同點(diǎn):它們簡化了 CSS 代碼。以前需要多條規(guī)則或黑客解決方案的事情將只需一兩行 CSS 即可實(shí)現(xiàn)。正如我所說,它看起來很有希望。

這是新更改的列表(更多詳細(xì)信息如下):

  • 對 attr() 函數(shù)的更改:因此它可以與任何屬性和任何 CSS 屬性一起使用(不僅僅是在內(nèi)容上)。
  • calc-size() 函數(shù):在計(jì)算中使用 auto 或 min-content 等固有值。
  • 新的 first-valid() 函數(shù)可避免自定義屬性值無效的問題。
  • 新的 *-mix() 函數(shù)系列,帶有新的比率符號。
  • 新的 *-progress() 函數(shù)系列,用于計(jì)算范圍之間或媒體或容器內(nèi)的進(jìn)度比率。
  • 使用新的 random() 和 random-item() 函數(shù)進(jìn)行隨機(jī)化,從范圍或列表中返回隨機(jī)值(終于?。?/span>
  • 新的 brothers-count() 和 brothers-index() 函數(shù)提供整數(shù)值,可根據(jù)順序和大小進(jìn)行操作。
  • 新的 toggle() 函數(shù),用于設(shè)置嵌套元素的樣式,輕松循環(huán)遍歷值列表。
  • 帶有逗號分隔值列表的參數(shù)的新函數(shù)符號,可避免逗號分隔參數(shù)的歧義。
  • 新的 URL 修飾符,可更好地控制 url() 請求。
  • 擴(kuò)展位置類型以允許流相關(guān)值。

1、對 attr() 函數(shù)的更改

讀取屬性并在 CSS 中使用它并不是什么新鮮事。使用 attr() 已經(jīng)可以做到這一點(diǎn),但一個(gè)常見的抱怨是功能有限,只能處理字符串和內(nèi)容。

attr() 函數(shù)將進(jìn)行一些更新,因此任何獨(dú)立于其數(shù)據(jù)類型的數(shù)據(jù)屬性都可以在任何屬性中使用。

它將像指定類型一樣簡單,如果我們愿意,還可以指定一個(gè)后備值,以防萬一出現(xiàn)意外情況。

這是一個(gè)期待已久的更新,將讓很多開發(fā)人員感到高興。

2、使用 calc-size() 操作內(nèi)在值

此模塊還引入了一個(gè)新功能,可以安全地操作內(nèi)在值(auto、max-content、fit-content 等)。此功能在過渡和動(dòng)畫中特別有用。

它還添加了新關(guān)鍵字(size),為計(jì)算提供更多靈活性,使處理尺寸更加容易。

既然已經(jīng)存在 calc(),為什么還要?jiǎng)?chuàng)建一個(gè)全新的函數(shù)?正如文檔所解釋的那樣,這樣做有向后兼容性和實(shí)際原因(例如,在所有情況下都可以平滑插值,尤其是在以百分比操作時(shí))。

3、新的 first-valid() 函數(shù)

引入了一種新方法:first-valid()。其思想是將一個(gè)值列表傳遞給該函數(shù);這些值將被解析,并且將使用第一個(gè)有效的值。這在處理 CSS 自定義屬性(又稱 CSS 變量)時(shí)特別有用。

使用 CSS 變量時(shí)的一個(gè)問題是,在聲明中,它們被視為有效值,即使實(shí)際包含的值無效。設(shè)置后備值也無濟(jì)于事,后備聲明也將被忽略。

使用這種方法,我們可以通過使用 first-valid() 將所有后備聲明合并為一個(gè)聲明來簡化代碼。

4、新的 *-mix() 函數(shù)系列

它還引入了一個(gè)新函數(shù) mix(),可用于簡化不同的 *-mix 函數(shù)。您想混合顏色嗎?您可以執(zhí)行類似 color-mix(red 60%, blue) 的操作,或者更簡單的 mix(60%, red, blue) 也可以。正如我們所說的顏色,我們還可以混合長度、變換函數(shù)等。

該符號也擴(kuò)展到其他 *-mix 函數(shù)系列:

  • calc-mix()
  • color-mix()
  • cross-fade()
  • palette-mix()

如果在進(jìn)度參數(shù)(第一個(gè))中未指定緩動(dòng)函數(shù),則默認(rèn)應(yīng)用線性。

5、新的 *-progress() 函數(shù)系列

它們表示給定值從一個(gè)起始值到另一個(gè)終止值的比例進(jìn)展。結(jié)果是一個(gè)介于 0 和 1 之間的數(shù)字,可用于運(yùn)算,但與前面描述的 *-mix 函數(shù)系列結(jié)合使用時(shí)會(huì)特別方便。

此系列中有三個(gè)函數(shù):

  • progress():通用,適用于任何數(shù)學(xué)函數(shù)。
  • media-progress():適用于媒體功能。
  • content-progress():適用于容器查詢。

6、CSS 中的隨機(jī)化函數(shù)

趣味設(shè)計(jì)具有一定程度的隨機(jī)化,而 CSS 中卻沒有這種功能。但此模塊引入了兩個(gè)新函數(shù),它們可從列表 (random-item()) 或范圍 (random()) 中返回隨機(jī)值。

無需再使用黑客技巧或依賴其他語言來實(shí)現(xiàn)此目的。語法也簡單而強(qiáng)大,可以通過選擇器或元素計(jì)算隨機(jī)數(shù)。

7、新sibling函數(shù)

有時(shí)您可能希望根據(jù)容器內(nèi)元素的順序提供不同的樣式。不幸的是,計(jì)數(shù)器不能在 CSS 中這樣使用。

隨著兩個(gè)返回?cái)?shù)字的新函數(shù)的引入,可以使用它們進(jìn)行操作,這個(gè)障礙被消除了:

  • sibling-count():返回兄弟的數(shù)量。
  • sibling-index():返回元素在兄弟列表中的位置/順序。

不再需要在每個(gè)元素上設(shè)置自定義屬性或使用 nth-child 編寫單獨(dú)的選擇器。

8、新的 toggle() 函數(shù)

引入了一種在嵌套元素中定義值的便捷新方法。toggle() 函數(shù)設(shè)置元素及其后代將循環(huán)使用的值,從而大大簡化了代碼。忘記復(fù)雜的規(guī)則或重新定義 - 一切都將在一行代碼中完成。

例如,假設(shè)我們有一個(gè)包含四個(gè)嵌套級別的列表。我們希望奇數(shù)級別有圓盤,偶數(shù)級別有正方形。

我們可以在不同級別執(zhí)行 ul > li ul > li ul > li ul { … },或者我們可以執(zhí)行類似 ul { list-style-type: disc, square; } 的操作。砰!完成了!

關(guān)于這個(gè)函數(shù)唯一有點(diǎn)令人擔(dān)憂的是它的名字。也許只有我一個(gè)人覺得,“toggle”這個(gè)詞有“二元性”的含義:開/關(guān)、是/否 - 兩個(gè)值可以相互切換。 toggle() 函數(shù)可以有任意多個(gè)參數(shù),因此將其命名為“toggle”感覺很奇怪。

9、參數(shù)的新函數(shù)符號

您可能已經(jīng)注意到,一些新函數(shù)(例如 random() 或 toggle())可以接受以逗號分隔的值列表的參數(shù)。

在這些情況下,我們?nèi)绾螀^(qū)分一個(gè)參數(shù)和下一個(gè)參數(shù)?這就是為什么有人提議對函數(shù)符號進(jìn)行“逗號升級”。這意味著我們可以使用分號 (;) 而不是逗號 (,) 來明確分隔參數(shù)。

例如,假設(shè)您想在頁面上使用隨機(jī)字體系列并指定不同的選項(xiàng):

  • Times,serif
  • Arial,sans-serif
  • Roboto,sans-serif

所有這些參數(shù)都是以逗號分隔的值列表。如果我們使用逗號分隔參數(shù),那將是一團(tuán)糟。但使用新符號,很容易識別一個(gè)參數(shù)的結(jié)束位置和下一個(gè)參數(shù)的開始位置:

.random-font {
  font-family: random-item(Times, serif; Arial, sans-serif; Roboto, sans-serif);
}

10、位置類型的擴(kuò)展

CSS 已經(jīng)具有邊距、填充和邊框的邏輯屬性 - 這些值與文本書寫方向有關(guān),并且可能因語言而異。

現(xiàn)在為位置類型引入了此功能(不要與位置屬性混淆)。指示位置的屬性(例如 background-position、object-position 等)可以指定與文本流和方向相關(guān)的值。

可以使用的新值為:

  • x-start
  • x-end
  • y-start
  • y-end
  • block-start
  • block-end
  • inline-start
  • inline-end

結(jié)論

它仍處于早期階段,情況會(huì)發(fā)生變化,但 CSS 值和單位模塊級別 5 中包含的一些新特性和功能看起來非常有前景。

有些也是期待已久的!尤其是將任何屬性與任何屬性一起使用的可能性。我記得很久以前在規(guī)范中看到過這個(gè)選項(xiàng)。希望這是實(shí)現(xiàn)它所需要的推動(dòng)力。

不要忘記查看 CSS 值和單位模塊級別 5 工作草案以獲取更多詳細(xì)信息。如果您有任何問題或意見,請?jiān)谒麄兊?GitHub 存儲(chǔ)庫中記錄工單。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2017-03-13 15:27:55

CSS新特性

2022-08-05 13:14:25

ES2022JavaScript代碼

2023-02-10 13:15:45

Windows 11

2010-09-03 10:24:01

CSSmargin

2021-10-27 10:15:25

Python新特性編程語言

2022-06-06 09:56:38

編程語言Python

2020-04-27 09:21:25

Android谷歌功能

2012-12-25 10:52:23

IBMdW

2021-10-20 16:44:50

Windows 11操作系統(tǒng)微軟

2023-12-11 09:02:27

CSS前端CSS 新特性

2021-12-10 14:53:17

微軟Windows 11Windows

2009-01-03 15:01:16

ibmdwLotusQuickr

2023-01-05 08:00:24

RegExpFoo類字段

2009-03-11 20:07:31

LinuxFedora 11新特性

2012-05-07 13:45:45

Oraclen 11g虛擬列數(shù)據(jù)庫

2022-02-09 15:55:01

JavaHttpClientJAVA11

2021-12-09 22:22:19

Windows 11操作系統(tǒng)微軟

2021-06-26 10:04:23

Code特性技巧

2010-09-29 14:08:31

2023-08-14 09:59:31

Debian操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號