成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

@container 和 :has():兩個強大功能登陸 Chrome

系統 瀏覽器
要想使用容器查詢,首先要在父元素上設置 container-type,該屬性用來聲明元素是一個查詢容器,并且定義查詢容器的類型。聲明了該屬性就意味著告訴瀏覽器,在該元素上創建一個容器上下文,之后可能要查詢此容器。

大家好,我是 CUGGZ。

Chrome 105 測試版于 2022 年 8 月 4 日發布,預計 2022 年 8 月下旬成為穩定版。@container?(容器查詢) 和 :has()(父選擇器) 這兩個強大的新響應式 API 將登陸 Chrome 105。下面就來看看這兩個強大功能的妙用!

@container:容器查詢

容器查詢使開發人員能夠查詢父選擇器的大小和樣式信息,使子元素可以擁有其響應式樣式邏輯,無論它位于網頁上的哪個位置。

開發人員現在也可以查詢頁面內元素的大小,而不是依賴于視口來設置輸入(如可用空間)的樣式。這個功能意味著組件擁有了其響應式樣式邏輯。這使得組件更具彈性,因為樣式邏輯與之相連,無論它出現在頁面上的什么位置。

目前瀏覽器對容器查詢的支持如下:

圖片

要想使用容器查詢,首先要在父元素上設置 container-type,該屬性用來聲明元素是一個查詢容器,并且定義查詢容器的類型。聲明了該屬性就意味著告訴瀏覽器,在該元素上創建一個容器上下文,之后可能要查詢此容器。

來看一個例子,有一個帶有圖像和文本內容的卡片,如下所示:

圖片

要創建容器查詢,首先要在卡片容器上設置容器類型(container-type):

.card-container {
container-type: inline-size;
}

將 container-type? 設置為 inline-size? 就會查詢父級的 inline-direction 大小。在像英語這樣的拉丁語言中,這將是卡片的寬度,因為文本從左到右內聯流動。

現在,我們可以通過 @container 將樣式應用于其任何子項:

.card {
display: grid;
grid-template-columns: 1fr 1fr;
}

@container (max-width: 400px) {
.card {
grid-template-columns: 1fr;
}
}

這里,當容器寬度小于等于 400px 時,@container 中的樣式就會生效。

Dmeo:https://codepen.io/web-dot-dev/pen/dymdbpg

has():父選擇器

CSS :has()?偽類使開發人員能夠檢查父元素是否包含具有特定參數的子元素。例如,p:has(span) 表示一個段落 (p) 選擇器,其中有一個 span??梢允褂盟鼇碓O置父元素(段落)本身的樣式,或設置其子元素的樣式。

目前瀏覽器對父選擇器的支持如下:

圖片

我們可以將 ?:has() 的父選擇功能與容器查詢的父查詢功能結合起來,以創建一些真正動態的樣式。

讓我們來基于上面的例子進行改造,如果有卡片沒有圖像,就增加標題的大小,并將網格布局調整為單列。如下圖所示:

圖片

在這個例子中,帶有圖像的卡片是兩列布局,沒有圖像的卡片是單列布局。此外,沒有圖像的卡片具有更大的標題。使用 :has() 編寫此代碼:

.card:has(.visual) {
grid-template-columns: 1fr 1fr;
}

上面的代碼正在尋找一個具有 .visual? 類的元素來應用兩列樣式。另一個很簡潔的 CSS 函數是 :not()?,它和 :has()? 具有相同的規范,但已經存在了更長時間并且具有更好的瀏覽器支持。我們可以組合使用 :has()? 和 :not(),如下所示:

.card:not(:has(.visual)) h1 {
font-size: 4rem;
}

在上面的代碼中,定義了一個選擇器,該選擇器為不包含 .visual 類的卡片設置 h1 的樣式。

Demo:https://codepen.io/web-dot-dev/pen/JjLpPKv

總結

上面的例子組合使用了 :has()、:not()? 和 @container。給這些代碼添加一些樣式,并在網格中并排展示這些卡片,效果如下:

圖片

Demo:https://codepen.io/web-dot-dev/pen/XWEZrje

通過上面的例子,可以看到現代 CSS 是如此強大。期待這兩個強大的功能登陸 Chromium 105 并獲得更多瀏覽器的支持!

參考:https://developer.chrome.com/blog/has-with-cq-m105/

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2010-08-13 16:10:11

FlexCSS

2009-08-26 18:15:39

ibmdwFlex

2010-08-06 14:23:25

FlexCSS

2009-09-08 10:35:24

LINQ技術

2010-06-23 16:42:33

2010-03-04 13:36:55

openSUSE

2009-12-25 12:58:52

GoogleChrome OS

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2024-03-13 13:44:06

DartFlutterSDK

2009-09-10 16:01:26

介紹LINQ

2010-09-17 12:39:51

JAVA反射機制

2009-12-24 11:13:21

2010-03-19 09:34:42

Cisco 2600模

2010-04-27 17:58:17

Oracle 9i

2010-03-24 10:32:05

Python多線程

2015-01-14 11:29:50

谷歌Chrome RemoiOS

2010-04-07 15:05:29

Oracle to_c

2010-03-26 13:39:28

Python標準庫

2010-01-25 13:37:39

千兆骨干交換機

2010-03-22 15:07:58

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品美女在线观看视频在线观看 | 欧美亚洲综合久久 | 91精品国产一区二区在线观看 | 亚洲伊人久久综合 | 成人午夜免费视频 | 欧美国产日韩一区 | 99精品久久久 | 成人在线中文字幕 | 亚洲一区二区综合 | 久久国产视频播放 | av免费看片 | 男女网站免费观看 | 欧美一区二区 | 欧美日韩久久精品 | 欧美日韩精品一区二区天天拍 | 亚洲男人的天堂网站 | 一区欧美 | 97精品超碰一区二区三区 | 欧美一级在线观看 | 久久精品国产亚洲 | 亚洲欧洲精品成人久久奇米网 | 夜久久| av黄色在线观看 | 97精品国产手机 | 成人高清在线 | 性色的免费视频 | 国产一区2区 | 亚洲精品1区| 在线免费观看毛片 | 国产高清一区二区三区 | 日韩中文字幕一区 | 黄色国产| 日韩电影中文字幕在线观看 | 国产超碰人人爽人人做人人爱 | 欧美大片黄 | 国产精品一区二区三区久久 | 欧美日韩成人在线观看 | 精品久久久久久亚洲国产800 | 亚洲美女在线视频 | 在线视频 欧美日韩 | 国产在线精品一区二区三区 |