日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

CSS錨點定位終于來了!

來源: 責編: 時間:2024-07-17 16:52:30 668觀看
導讀盼了好久,最近 Chrome 125終于迎來了CSS 錨點定位的正式支持。這是一個和 CSS 滾動驅(qū)動動畫一樣,足以顛覆整個 Web 開發(fā)領(lǐng)域的新特性。有了這個特性,很多以前強依賴 JS 的方式,都可以純 CSS解決,并且實現(xiàn)起來更加簡單、更

2py28資訊網(wǎng)——每日最新資訊28at.com

盼了好久,最近 Chrome 125終于迎來了CSS 錨點定位的正式支持。這是一個和 CSS 滾動驅(qū)動動畫一樣,足以顛覆整個 Web 開發(fā)領(lǐng)域的新特性。有了這個特性,很多以前強依賴 JS 的方式,都可以純 CSS解決,并且實現(xiàn)起來更加簡單、更加靈活,一起看看吧!2py28資訊網(wǎng)——每日最新資訊28at.com

2py28資訊網(wǎng)——每日最新資訊28at.com

可以看到,在切換tab時,底下的背景是可以無縫過渡的。在以前,我們要實現(xiàn)這樣的功能,必須要借助 JS來獲取當前點擊元素的尺寸和位置,但現(xiàn)在,只需要借助 CSS 錨點定位就能輕松實現(xiàn)了。2py28資訊網(wǎng)——每日最新資訊28at.com

位置信息前面以及提到了,用anchor(left)和anchor(top)就可以了,那尺寸呢,需要用到anchor-size。2py28資訊網(wǎng)——每日最新資訊28at.com

anchor-size(width) /*錨點元素寬度*/anchor-size(height)  /*錨點元素高度*/

利用這個特性,我們可以很輕松的實現(xiàn)這樣一個效果,結(jié)構(gòu)如下:2py28資訊網(wǎng)——每日最新資訊28at.com

<nav class="tab">  <a class="item" href="#HTML" name="HTML">HTML</a>  <a class="item" href="#CSS" name="CSS">CSS</a>  <a class="item" href="#JavaScript" name="JavaScript">JavaScript</a>  <a class="item" href="#React" name="React">React</a>  <a class="item" href="#Vue" name="Vue">Vue</a></nav>

我們用偽元素來當做tab高亮背景,關(guān)鍵實現(xiàn)如下:2py28資訊網(wǎng)——每日最新資訊28at.com

.tab::after{  content: '';  position: absolute;  border-radius: 100px;  background-color: rgba(65, 105, 225, 0.2);  position-anchor: --anchor-el;  width: anchor-size(width);  height: anchor-size(height);  left: anchor(left);  top: anchor(top);  transition: .3s;  pointer-events: none;}.item:target{  anchor-name: --anchor-el;}

這樣就能輕松實現(xiàn)這個效果了,你也可以訪問以下在線鏈接(Chrome 125+)2py28資訊網(wǎng)——每日最新資訊28at.com

  • CSS anchor nav (codepen.io)[2]


2py28資訊網(wǎng)——每日最新資訊28at.com

6. 動態(tài)調(diào)整位置 position-try-options

有時候定位元素會處于屏幕邊緣,當沒有足夠空間顯示時,可以通過position-try-options來設置一個備用位置。2py28資訊網(wǎng)——每日最新資訊28at.com

舉個例子,比如一個氣泡,默認是朝上的,當滾動到屏幕邊緣時會自動朝下,示意如下:2py28資訊網(wǎng)——每日最新資訊28at.com

2py28資訊網(wǎng)——每日最新資訊28at.com

這種情況就可以用@position-try來實現(xiàn)了,具體做法是這樣的。2py28資訊網(wǎng)——每日最新資訊28at.com

先通過position-try-options指定一個變量名,比如--bottom。2py28資訊網(wǎng)——每日最新資訊28at.com

tooltip{      position: fixed;      position-anchor: --anchor-el;      inset-area: top;      position-try-options: --bottom;}

然后通過@position-try來定義規(guī)則。2py28資訊網(wǎng)——每日最新資訊28at.com

@position-try --bottom {  inset-area: bottom;}

這樣就實現(xiàn)定位元素位置自動調(diào)整了。2py28資訊網(wǎng)——每日最新資訊28at.com

除此之外,還有一種便捷寫法,直接給position-try-options指定以下關(guān)鍵字。2py28資訊網(wǎng)——每日最新資訊28at.com

position-try-options: flip-block; /*垂直翻轉(zhuǎn)*/position-try-options: flip-inline; /*水平翻轉(zhuǎn)*/

這樣就無需@position-try定義了,實現(xiàn)更簡單。2py28資訊網(wǎng)——每日最新資訊28at.com

  • CSS anchor position-try-options (codepen.io)[3]

當然,我覺得這個功能還是稍顯不足的,比如當氣泡帶有箭頭時,雖然也能翻轉(zhuǎn),但是卻無法改變箭頭的位置,也就是無法查詢到當前是否已經(jīng)翻轉(zhuǎn)了,就像這樣。2py28資訊網(wǎng)——每日最新資訊28at.com

2py28資訊網(wǎng)——每日最新資訊28at.com

首先是點擊出現(xiàn),這個就是popover的功能了,通過popovertarget和popover屬性,將兩者結(jié)合起來,就能輕松實現(xiàn)點擊出現(xiàn)菜單的功能。2py28資訊網(wǎng)——每日最新資訊28at.com

<button class="btn" popovertarget="more"></button><div class="menu" id="more" popover>  <button class="item">編輯</button>  <button class="item">刪除</button></div>

然后就定位,利用CSS錨點定位,將菜單定位到按鈕的右下方,也就兩三行代碼的事。2py28資訊網(wǎng)——每日最新資訊28at.com

.btn{  anchor-name: --menu;}.menu{  position-anchor: --menu;  inset-area: bottom span-right;}

這樣就能輕易實現(xiàn)懸浮菜單了,你也可以訪問以下在線鏈接(Chrome 125+)2py28資訊網(wǎng)——每日最新資訊28at.com

  • CSS anchor menu (codepen.io)[4]

在codepen上找到了一個更完善的多級菜單案例。2py28資訊網(wǎng)——每日最新資訊28at.com

https://codepen.io/jh3y/pen/dyLjbwG2py28資訊網(wǎng)——每日最新資訊28at.com

四、總結(jié)和其他

介紹了這么多,一下子肯定難以接受,多回顧幾遍就明白了,至少可以知道錨點定位是干嘛的,如果以后有類似的需求也有一定的方向,下面總結(jié)一下本文要點2py28資訊網(wǎng)——每日最新資訊28at.com

  • CSS 錨點定位是一個顛覆性的新特性,一定要學會
  • CSS 錨點定位可以設置任意元素相對任意元素做定位
  • 主要是通過anchor-name和position-anchor兩個屬性關(guān)聯(lián)
  • 錨點的位置用anchor()來定義,比如anchor(left)表示錨定元素的最左側(cè),anchor(top)表示錨定元素的最上側(cè)
  • anchor-center可以實現(xiàn)居中定位,水平居中justify-self: anchor-center,垂直居中align-self: anchor-center
  • inset-area是一種更人性化的定位方式,和常見的組件庫表示方位比較類似
  • 還可以通過 anchor-size來錨點元素的尺寸,anchor-size(width)表示寬度,anchor-size(height)表示高度
  • position-try-options可以根據(jù)定位元素是否處于屏幕邊緣而自適應定位方向
  • 實際中更推薦和popover相互配合,可以輕松實現(xiàn)各類懸浮層效果
  • 兼容性要求 Chrome 125+,期待早日使用吧

最近幾年CSS更新的確實有點太快了,很多以往的疑難雜癥都有了新的解決方式。但是很多時候?qū)W這些好像暫時沒啥用,畢竟可能 5 年以后才用得上。但是原生特性不像其他,一個框架兩三年就有可能被淘汰,或者有新的替代品出現(xiàn),原生的學到了就學到了,只要web存在的一天,就永遠都不會過時,所以也不虧是吧。2py28資訊網(wǎng)——每日最新資訊28at.com

[1]CSS anchor (codepen.io): https://codepen.io/xboxyan/pen/dyEVVPb。2py28資訊網(wǎng)——每日最新資訊28at.com

[2]CSS anchor nav (codepen.io): https://codepen.io/xboxyan/pen/zYQpvqg。2py28資訊網(wǎng)——每日最新資訊28at.com

[3]CSS anchor position-try-options (codepen.io): https://codepen.io/xboxyan/pen/dyEJYRO。2py28資訊網(wǎng)——每日最新資訊28at.com

[4]CSS anchor menu (codepen.io): https://codepen.io/xboxyan/pen/qBGpOKq。2py28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-101375-0.htmlCSS錨點定位終于來了!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: ES13 中最具變革性的五個 JavaScript 功能

下一篇: 軟件版本號為什么那么奇怪?你知道嗎?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
一区二区福利| 国产精品福利网站| 久久激情一区| 欧美综合77777色婷婷| 久久久国产精品亚洲一区 | 欧美不卡在线视频| 伊人成人在线视频| 国产精品女人久久久久久| 国产精品萝li| 国内精品99| 亚洲精品视频一区| 亚洲一区二区少妇| 久久免费一区| 欧美区高清在线| 国产精品美女www爽爽爽视频 | 蜜乳av另类精品一区二区| 欧美电影电视剧在线观看| 欧美日韩一区二区视频在线观看| 国产精品qvod| 在线观看成人小视频| 99人久久精品视频最新地址| 亚洲一区二区在线播放| 欧美成人一品| 欧美日韩一区二区三区在线观看免 | 欧美在线精品免播放器视频| 欧美91视频| 国产精品久久影院| 亚洲乱码精品一二三四区日韩在线| 亚洲免费影视| 欧美激情一区二区三区四区 | 欧美国产一区在线| 国产精品久久久久久久久免费桃花 | 亚洲欧美国产毛片在线| 欧美va亚洲va香蕉在线| 国产精品系列在线| 日韩视频免费| 免费久久99精品国产自| 国产精品人人做人人爽人人添| 亚洲欧洲免费视频| 亚洲欧美成人网| 欧美人成免费网站| 亚洲精品视频二区| 久久综合伊人77777尤物| 国产欧美精品在线播放| 日韩视频久久| 欧美日韩成人网| 尤物九九久久国产精品的分类| 亚洲欧美日韩在线综合| 欧美视频精品在线| 欧美人在线视频| 亚洲国产精彩中文乱码av在线播放| 亚洲女人小视频在线观看| 国产精品mm| 亚洲欧美日韩国产| 国产女主播视频一区二区| 99re热这里只有精品视频| 蜜桃久久精品乱码一区二区| 影音先锋欧美精品| 久久久欧美一区二区| 精品不卡一区二区三区| 欧美激情小视频| 日韩亚洲一区在线播放| 欧美亚州一区二区三区| 亚洲一区二区三区中文字幕| 国产精品萝li| 久久岛国电影| 亚洲国产精品一区二区第一页| 欧美区一区二| 午夜在线精品偷拍| 一区二区三区在线观看欧美| 欧美sm重口味系列视频在线观看| 亚洲国产精品一区二区www在线 | 国产精品分类| 久久精品2019中文字幕| 亚洲国产专区校园欧美| 国产精品swag| 欧美在线啊v一区| 亚洲精品乱码| 国产欧美日韩一区二区三区| 欧美成人激情视频| 亚洲欧美日韩一区二区三区在线观看| 国产一区二区三区精品久久久| 欧美本精品男人aⅴ天堂| 亚洲欧美日韩一区二区三区在线观看| 国产日韩高清一区二区三区在线| 裸体素人女欧美日韩| 另类专区欧美制服同性| 亚洲精品日韩精品| 国产视频欧美视频| 欧美精品乱码久久久久久按摩| 久久av一区二区| 中文精品视频| 亚洲黄页一区| 狠狠色噜噜狠狠狠狠色吗综合| 欧美午夜久久| 欧美成人中文| 久久久久久久一区| 久久精品官网| 亚洲欧美三级伦理| 中文精品一区二区三区 | 亚洲激情视频网| 韩国女主播一区| 国产欧美一区二区三区在线老狼 | 国产日韩视频一区二区三区| 欧美日韩在线精品一区二区三区| 免费看av成人| 久久久久久久久久久久久女国产乱| 亚洲一区二区三区激情| 99av国产精品欲麻豆| 亚洲免费观看高清完整版在线观看| 一区二区三区在线观看欧美| 国产一区二区三区黄视频| 国产区亚洲区欧美区| 国产农村妇女毛片精品久久莱园子| 国产精品v片在线观看不卡 | 亚洲高清久久久| 亚洲国产欧美日韩| 亚洲精品美女在线观看播放| 99av国产精品欲麻豆| 国产精品99久久99久久久二8| 亚洲一区二区在| 久久精品一二三| 久久www免费人成看片高清| 亚洲国产成人久久综合一区| 欧美国产先锋| 国产精品亚洲成人| 亚洲欧洲一二三| 久久久成人网| 国产精品蜜臀在线观看| 亚洲日本中文字幕区| 久久精品盗摄| 国产美女一区| 一区二区三区色| 日韩一级精品视频在线观看| 亚洲国产色一区| 国产伦精品一区二区三| 欧美高清不卡在线| 久久九九精品99国产精品| 欧美亚洲综合另类| av成人天堂| 亚洲精品国产系列| 影音先锋久久精品| 国产日韩一区二区三区| 欧美三级视频在线| 欧美日韩精品综合| 国产欧美欧洲在线观看| 国产婷婷色综合av蜜臀av| 国产精品国产三级国产普通话三级| 国产精品伦理| 亚洲精品一区在线观看| 亚洲在线电影| 欧美精品在线观看91| 日韩午夜中文字幕| 在线观看欧美黄色| 国产欧美日韩视频一区二区三区| 国产精品免费一区二区三区在线观看| 欧美暴力喷水在线| 男女激情久久| 国产精品久久二区二区| 国产日韩精品久久久| 最新成人av在线| 中日韩视频在线观看| 亚洲欧美另类在线| 亚洲伊人一本大道中文字幕| 亚洲欧美在线免费观看| 美女黄毛**国产精品啪啪| 亚洲性图久久| 亚洲国产精品一区二区www| 91久久久国产精品| 一色屋精品视频在线观看网站| 国产伦精品一区二区三区高清版| 免费成人毛片| 欧美激情成人在线视频| 国产精品一二| 欧美在线播放| 亚洲人成在线观看| 国产精品久久久久久模特| 久久久久久穴| 中国成人亚色综合网站| 国产一区日韩一区| 欧美日韩日本国产亚洲在线| 国产欧美日韩高清| 欧美高清不卡| 国产精品青草久久| 欧美一区二区在线观看| 国产欧美日韩免费看aⅴ视频| 小嫩嫩精品导航| 在线观看精品视频| 亚洲一区二区三区四区五区黄| 欧美va亚洲va日韩∨a综合色| 国产精品老女人精品视频| 在线成人av.com| 亚洲一区在线观看免费观看电影高清| 久久久精品国产一区二区三区 | 久久这里只有精品视频首页| 欧美丝袜一区二区| 亚洲国产精品123| 久久乐国产精品| 国产日韩欧美高清免费| 亚洲私人影院| 欧美视频在线观看 亚洲欧| 亚洲精品网站在线播放gif| 久久成人综合视频| 国产午夜精品一区二区三区欧美 |