>我一段時間以前就寫了一些關於容器風格查詢的想法。還很早。它們已經在CSS遏制模塊3級規範中定義(目前處於編輯的草案狀態),但仍有一些出色的討論。
>基本思想是,我們可以根據其計算的樣式定義容器,然後將樣式應用於其後代。到目前為止,我見過的最好的例子是從類似&> em< i>和&&lt q> q>當它們在內容已經斜體化的上下文中使用時:
@container <name>? <conditions> { /* conditional styles */ }</conditions></name>>
這是一個總體想法。但是,如果您不知道,Spec的編輯Miriam Suzanne將在公開可用的集裝箱樣式查詢上保留一套持續而徹底的個人筆記。前幾天,它進行了更新,我花了一些時間在那裡試圖將我的頭纏繞在樣式查詢的更多細微差別方面。這是非正式的東西,但我想我會記下一些對我來說突出的事情。誰知道?也許是我們最終可以期待的東西!
em, i, q { font-style: italic; /* default UA behavior */ } /* When the container's font-style is italic, remove italics from these elements. */ @container style(font-style: italic) { em, i, q { font-style: normal; } }>
每個元素都是樣式容器
>>我們甚至不需要解釋分配一個容器名稱或容器類型來定義樣式容器,因為默認情況下,所有內容都是樣式容器。 >
>那麼,您在上面看到了刪除斜體的示例嗎?請注意,它無法識別容器。它使用style()函數直接跳到查詢。那麼,要查詢什麼容器?這將是接收應用樣式的Elements 最接近的相對容器才能優先。 >
我喜歡那個。查詢要搜索一場比賽是非常CSS-y,然後繼續冒泡直到找到匹配條件。
>我的小腦很難理解為什麼我們可以根據樣式逃脫一個隱式容器,但在處理尺寸和內線大小等維度查詢時並不是那麼多。 Miriam很好地解釋了:
contemment >在CSS中,後代風格無法對祖先的計算樣式產生影響。 >,因此不需要遏制,並且在將元素建立為樣式的Query COURARY COUNER COUNER CONELER CONELER CONELER CONERER 。
(強調礦山) 如果找到一個容器:在該容器中解決條件。 >假設我們希望在沒有明確的容器名稱的情況下定義樣式查詢: ,無論容器類型如何。這就是使我們能夠隱式查詢樣式並依靠最近的比賽的原因。這完全可以,因為建立樣式容器時也沒有不利的副作用。
dimensional查詢: 也許我們不希望容器參與匹配過程。那就是可以設置容器類型的地方:
名稱!在幫助瀏覽器搜索比賽時,這更加靈活。
>或和和和和和和和和和和and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and和and and and and and and and and and and and and and和and and和and and and and and and and and and and和and and and and and and and和and and and and and and and和and and and and and and and and and and and wueries以保持乾燥: >在容器樣式查詢與定義toggle()函數的工作之間存在一些重疊。例如,我們可以循環循環兩個字體式的值,例如斜體和正常值: 酷。但是CSS切換的建議表明toggle()函數將是一種更簡單的方法: >
樣式查詢和Web組件 >
再次,我在這裡記下的所有內容都是基於Miriam的筆記,這些筆記不能替代官方規格。但是,它們表明正在討論的內容以及未來可能降落的地方。我感謝Miriam鏈接了一些仍在進行的傑出討論,我們可以遵循這些討論,以保持最大的態度: > style()查詢應該允許!重要標誌嗎? #7413>
>這是因為
>所有元素都是樣式容器@container <name>? <conditions> {
/* conditional styles */
}</conditions></name>
>和em, i, q {
font-style: italic; /* default UA behavior */
}
/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
em, i, q {
font-style: normal;
}
}
顯式樣式查詢容器提供更多控制的更多控制權
如果我們要編寫用於填充的樣式查詢,則沒有可靠的方法來確定最佳的匹配容器,無論我們是使用明確命名的容器還是最近的直接父母。那是因為填充不是繼承的財產。 @container style(font-style: italic) {
em {
font-style: normal;
}
}
>
oh,並且容器名稱接受容器的任何數量的可选和可重複使用的.card-container {
container: card / inline-size; /* implictly a style query container as well */
}
>樣式查詢可以組合@container <name>? <conditions> {
/* conditional styles */
}</conditions></name>
>切換樣式
em, i, q {
font-style: italic; /* default UA behavior */
}
/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
em, i, q {
font-style: normal;
}
}
@container style(font-style: italic) {
em {
font-style: normal;
}
}
但是,除了這種二進制用例之外,其他任何東西都不太合適。但是,樣式查詢是很好的。 Miriam確定了樣式查詢比toggle()更合適的三個實例:.card-container {
container: card / inline-size; /* implictly a style query container as well */
}
>樣式查詢求解“自定義屬性切換hack”
請注意,樣式查詢是“ CSS自定義屬性切換技巧”的正式解決方案。在那裡,我們設置了一個空的自定義屬性( - foo:;),並使用逗號分隔的後備方法將“切換”屬性“切換”,然後將自定義屬性設置為真實值。
.some-element {
container-type: none;
}
>樣式查詢和CSS生成的內容>
.card {
container-name: card layout theme;
}
>我們可以將Web組件定義為容器,並按樣式查詢。首先,我們有&lt;模板&gt;組件的:
然後,我們使用:主機偽元素作為容器來設置容器名稱,容器類型和某些高級屬性:.theme {
container-name: theme;
}
.grid {
container-name: layout;
}
.card {
container-name: card layout theme;
}
>元素內部的元素;可以查詢&lt; Media-host&gt;元素:@container bubble style(--arrow-position: start start) or style(--arrow-position: end start) {
.bubble::after {
border-block-end-color: inherit;
inset-block-end: 100%;
}
}
/* is the same as... */
@container bubble style(--arrow-position: start start) {
/* etc. */
}
@container bubble style(--arrow-position: end start) {
/* etc. */
}
下一步是什麼? em, i, q {
font-style: italic;
}
@container style(font-style: italic) {
em, i, q {
font-style: normal;
}
}
更高級別的自定義屬性,該屬性控制多個聲明#5624
>
>將標準屬性的樣式查詢移至級別4#7185
以上是深入挖掘容器樣式查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)