精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

原生Details支持手風(fēng)琴模式了!

開發(fā) 前端
首先我們需要判斷一下,也就是檢測details到底支不支持name這個特性,這個很簡單,我們只需要創(chuàng)建一個details元素,然后看這個屬性是否存在就行了。

最近details元素新增了一個name屬性,如下

圖片圖片

別看這只是一個普普通通的屬性,這可是帶來了一個全新的模式,一起了解一下吧

一、快速了解 details

有些同學(xué)可能從來沒有用過details這個標簽,這里簡單介紹一下。

details通常和summary配合使用,天然支持展開收起的效果。例如

<details>
  <summary>System Requirements</summary>
  <p>Requires a computer running an operating system. The computer
  must have some memory and ideally some kind of long-term storage.
  An input device as well as some form of output device is
  recommended.</p>
</details>

效果如下

圖片圖片

雖然有些難看,但都是可以通過 CSS 自定義的。

如果想去除這個“黑色三角”,這個“黑色三角”其實是 ::marker生成的,,而這個 ::marker是通過list-style生成,所以要去除可以這樣

summary{
  list-style: none;
}
/*或者*/
summary{
  display: flex; /*默認是list-style*/
}

還支持嵌套,進一步美化可以實現(xiàn)樹形結(jié)構(gòu)目錄

圖片圖片

以后碰到類似的交互就直接用這個標簽吧,別用JS了

二、新增的 name 屬性

和大多數(shù)表單元素一樣,這個name也是可以直接設(shè)置和獲取的

details.name; // 獲取
details.name = 'xxx'; // 設(shè)置

除此之外,還支持了“手風(fēng)琴”模式。所謂“手風(fēng)琴”模式,相信大家都有所耳聞,就是多個折疊面板,打開其中一個會關(guān)閉其他的,比如下方是ant design中的手風(fēng)琴效果

圖片圖片

現(xiàn)在如果用details就可以很輕易的實現(xiàn)這個效果,結(jié)構(gòu)如下

<div class="con">
  <details>
    <summary>歡迎</summary>
    <p>最近 details元素新增了一個name屬性</p>
  </details>
  <details>
    <summary>關(guān)注</summary>
    <p>別看這只是一個普普通通的屬性,這可是帶來了一個全新的模式,一起了解一下吧</p>
  </details>
  <details>
    <summary>前端</summary>
    <p>details通常和summary配合使用,天然支持展開收起的效果</p>
  </details>
  <details>
    <summary>偵探</summary>
    <p>雖然有些難看,但都是可以通過 CSS 自定義的</p>
  </details>
</div>

效果如下

圖片圖片

嗯,有點丑...我們美化一下

.con{
  width: 300px;
  border-radius: 8px;
  border: 1px solid #9747FF;
  background-color: #fdf0ca ;
  overflow: hidden;
}
summary{
  display: flex;
  align-items: center;
  line-height: 2;
  padding: 0 10px;
  cursor: pointer;
  border-bottom: 1px solid #9747FF;
  background-color: #FFE8A3;
}
summary::before{
  content: '';
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E %3Cpath d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'%3E%3C/path%3E %3C/svg%3E") center/50% no-repeat;
  opacity: .6;
  transform: rotate(-90deg);
}
details[open] summary::before{
  transform: rotate(0deg);
}
p{
  margin: 0;
  padding: 5px 10px;
  border-bottom: 1px solid #9747FF;
}
details:last-child p,
details:last-child:not([open]) summary{
  border: 0;
}

效果如下

圖片圖片

不過現(xiàn)在每個折疊面板是互相獨立的,都可以打開或者關(guān)閉。

現(xiàn)在我們想要把這幾個面板關(guān)聯(lián)起來,就像單選框一樣,用相同的name表示

<div class="con">
  <details name="a">
    <summary>歡迎</summary>
    <p>最近 details元素新增了一個name屬性</p>
  </details>
  <details name="a">
    <summary>關(guān)注</summary>
    <p>別看這只是一個普普通通的屬性,這可是帶來了一個全新的模式,一起了解一下吧</p>
  </details>
  <details name="a">
    <summary>前端</summary>
    <p>details通常和summary配合使用,天然支持展開收起的效果</p>
  </details>
  <details name="a">
    <summary>偵探</summary>
    <p>雖然有些難看,但都是可以通過 CSS 自定義的</p>
  </details>
</div>

這樣就是實現(xiàn)了手風(fēng)琴的效果了

圖片圖片

是不是非常簡單呢?

三、還是需要 polyfill 一下

雖然好用,但是兼容性還不行,需要用一段 JS 來兜個底。

首先我們需要判斷一下,也就是檢測details到底支不支持name這個特性,這個很簡單,我們只需要創(chuàng)建一個details元素,然后看這個屬性是否存在就行了,如下

'name' in document.createElement('details');

效果如下

圖片圖片

對于不支持的瀏覽器,我們就需要通過監(jiān)聽打開關(guān)閉狀態(tài)了,直接監(jiān)聽click事件

details元素其實還有一個toggle事件,也可以用于監(jiān)聽,但是在這里不太合適,因為toggle是在狀態(tài)改變后才觸發(fā),有點晚了,會造成閃爍的問題


我們需要監(jiān)聽所有的details元素,然后根據(jù)name屬性,把其他相同name的都關(guān)閉,具體實現(xiàn)如下

// details name polyfill
if (!('name' in document.createElement('details'))) {
  const details = [...document.querySelectorAll('details')]
  details.forEach(el => {
    el.addEventListener('click', () => {
      if (!el.open) {
        details.filter(d => d.getAttribute('name') === el.getAttribute('name') && d!==el && d.open).forEach(m => {
          m.open = false
        })
      }
    })
  })
}

我們現(xiàn)在來看Firefox的效果

圖片圖片

同樣支持多個分組,每個分組設(shè)置相同的name就行

圖片圖片

完整代碼可以訪問以下鏈接:

  • details with name (juejin.cn)[1]
  • details with name (codepen.io)[2]

四、總結(jié)一下

總的來說是一個不痛不癢的新特性,你學(xué)到了,下面總結(jié)一下

  1. details通常和summary配合使用,天然支持展開收起的效果
  2. summary前面的黑色三角形是::marker渲染的,可以通過設(shè)置list-style: none去除
  3. 新增的name屬性可以直接通過dom.name的方式設(shè)置和獲取
  4. 多個details元素添加name屬性后會變成手風(fēng)琴模式,即打開其中一個會關(guān)閉其他
  5. 目前兼容性還不行,需要polyfill一下
  6. 可以通過'name' in document.createElement('details')來檢測是否支持該特性
責(zé)任編輯:武曉燕 來源: 前端偵探
相關(guān)推薦

2012-05-09 13:45:04

jQuery

2012-08-22 10:28:03

jQuery

2023-01-30 14:09:51

物聯(lián)網(wǎng)網(wǎng)絡(luò)存儲

2023-09-21 10:09:10

JavaScript數(shù)組分組

2025-07-29 00:00:00

2023-08-29 09:43:21

Node.js.env

2025-01-20 00:00:00

Java語言Record

2023-09-13 11:58:17

云原生反模式

2025-07-04 01:55:00

CSS樣式Chrome

2011-02-24 10:23:46

FireFTP

2025-11-07 00:00:00

2020-11-09 14:41:58

iOS 14.2蘋果JIT

2015-04-15 13:33:23

2021-07-13 07:52:03

云原生彈性模式

2023-07-13 15:24:13

云計算云原生架構(gòu)

2023-08-16 15:30:32

Windows 11微軟

2019-04-25 11:02:43

Chrome瀏覽器Windows 10

2009-06-03 08:50:03

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

2022-07-07 08:30:50

類型注解原生JS

2022-04-06 08:19:13

Go語言切片
點贊
收藏

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

亚洲第一成肉网| 亚洲欧美日韩国产yyy| 国产精品第九页| 影视先锋久久| 在线成人av影院| 日本福利视频在线| 欧美精品videos另类| 国产.欧美.日韩| 国产精品扒开腿做爽爽爽男男| 91ts人妖另类精品系列| 美国成人xxx| 欧美精品久久一区| 黄色大片在线免费看| 成年人视频网站在线| 成人激情小说网站| 91啪国产在线| 五月婷婷丁香在线| 亚洲国产美女 | 成人欧美一区| 国产馆精品极品| 国产精品电影网| 精品一级少妇久久久久久久| 第一sis亚洲原创| 亚洲国产中文字幕久久网 | 成人看片在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲砖区区免费| 三级在线播放| 成人av中文字幕| 91免费观看| 91久久久久国产一区二区| 久久免费国产| 3344国产精品免费看| 久久视频免费看| 91精品亚洲| 在线观看国产成人av片| 欧美 变态 另类 人妖| 成人av影音| 欧美一区2区视频在线观看| 美女少妇一区二区| 久久久人成影片一区二区三区在哪下载| 亚洲午夜一二三区视频| 日本高清xxxx| 麻豆传媒视频在线观看| 国产精品久久久久久久岛一牛影视| 久久久99国产精品免费| 天天摸夜夜添狠狠添婷婷 | 人妻在线日韩免费视频| www.爱久久| 欧美成人精品福利| 亚洲精品鲁一鲁一区二区三区| 亚洲高清影院| 91精品午夜视频| 992tv人人草| 精品国产一区二区三区2021| 制服丝袜中文字幕一区| 亚洲精品国产一区二区三区| 91国产精品| 欧美一区二区三区影视| 国产sm在线观看| www.神马久久| 日韩激情在线视频| 日韩av在线看免费观看| 国产中文精品久高清在线不| 中文字幕国产亚洲| 情侣偷拍对白清晰饥渴难耐| 亚洲字幕久久| 欧美黄色小视频| 国产精彩视频在线| 国产精品最新自拍| 国产精品福利网| 国产精品欧美激情在线| 国产suv一区二区三区88区| 国产精品乱码视频| 青青青草原在线| 国产精品乱码一区二区三区软件| 宅男噜噜99国产精品观看免费| 中文字幕伦理免费在线视频| 午夜精品久久久久久久99樱桃| 欧美日韩国产精品激情在线播放| 日本欧美一区| 日韩一级大片在线观看| 国产精品边吃奶边做爽| 精品理论电影| 久久91精品国产| yjizz国产| 精品一区二区av| 国产伦精品一区| 青青九九免费视频在线| av成人免费在线观看| 欧洲亚洲一区二区| 在线观看男女av免费网址| 欧美日韩国产在线播放| 欧美性猛交久久久乱大交小说| 福利一区在线| 精品久久国产老人久久综合| 日韩av片在线| 在线日韩av| 国产精品一二三视频| 丰满肥臀噗嗤啊x99av| 欧美激情一区二区三区| 九色自拍视频在线观看| 免费日韩成人| 日韩大陆毛片av| 外国一级黄色片| 日韩中文字幕不卡| 国产成人看片| 欧美日韩在线资源| 一本久久a久久精品亚洲 | 国产成人在线视频网址| 久久久久九九九| 91亚洲天堂| 欧美综合天天夜夜久久| 538国产视频| 中文字幕乱码亚洲无线精品一区| 国产精品久久久久77777| 人妻一区二区三区四区| 亚洲蜜桃精久久久久久久| 日本老熟妇毛茸茸| 偷窥自拍亚洲色图精选| 久久久久久久久久久av| 国产精品欧美久久久久天天影视| 国产午夜精品在线观看| 国产91xxx| 亚洲视频国产| 久久在线免费观看视频| 中文字幕在线观看免费| 国产视频视频一区| aa免费在线观看| 国产精品主播在线观看| 久久91精品国产| 国产片高清在线观看| 亚洲国产激情av| 欧美精品第三页| 香蕉久久夜色精品国产使用方法| 国内成人精品一区| www.看毛片| 亚洲另类色综合网站| 亚洲天堂伊人网| 国产精品99在线观看| 国产精品日韩欧美| 91欧美在线视频| 欧美综合视频在线观看| 亚洲第一视频区| 日韩在线播放一区二区| 欧美一区二区三区在线播放| 国模套图日韩精品一区二区| 亚洲免费精彩视频| 日韩在线播放中文字幕| 久久久影院官网| 日韩av黄色网址| 久操精品在线| 国产精品久久久久久久7电影| 国产高清美女一级毛片久久| 欧美在线影院一区二区| 潮喷失禁大喷水aⅴ无码| 久久精品久久久精品美女| 一区二区三区四区欧美| japansex久久高清精品| 欧美老女人性生活| 亚洲精品综合久久| 欧美日韩国产黄| 久久久久久亚洲中文字幕无码| 三级不卡在线观看| 亚洲精品美女久久7777777| 91成人福利社区| 久久免费精品视频| 欧美少妇另类| 欧美日韩中文字幕一区| 91porn在线视频| 不卡视频在线看| 男女曰b免费视频| 国产精品午夜一区二区三区| 国产在线观看精品一区二区三区| 影音先锋中文在线视频| 日韩av中文字幕在线播放| 久久久999久久久| 一区二区三区在线免费| 香蕉网在线播放| 麻豆精品新av中文字幕| 欧美一区二区三区综合| 亚洲精品国产动漫| 91精品久久久久久综合乱菊| 91福利区在线观看| 中文字幕日韩综合av| 国产 欧美 自拍| 欧美午夜免费电影| 国产稀缺真实呦乱在线| 日本一区免费视频| 久久久久久久久久久久国产精品| 亚洲免费一区二区| 樱空桃在线播放| 国产成人av| 国产99在线播放| av免费在线一区| 高清一区二区三区日本久| 国产98在线| 亚洲成人性视频| 91丨porny丨在线中文 | 中文字字幕在线观看| 樱桃视频在线观看一区| a天堂中文字幕| 成人综合婷婷国产精品久久 | 久久久久北条麻妃免费看| 成人午夜免费福利| 欧美吻胸吃奶大尺度电影 | 在线观看日韩毛片| 国产一级一片免费播放| 国产精品美女久久久久久久久久久| 四虎精品一区二区| 精品亚洲国产成人av制服丝袜| 欧美色图另类小说| 亚洲狠狠婷婷| 蜜臀av.com| 成人羞羞在线观看网站| 久久久国产精品一区二区三区| 欧美电影院免费观看| 国产精品观看在线亚洲人成网| av资源网在线播放| 欧美成人激情图片网| 自拍视频在线| 亚洲精品视频网上网址在线观看| 黄色成人一级片| 欧美一区二区三区免费| 一区二区三区亚洲视频| 欧美性极品少妇| 国产女主播喷水视频在线观看| 婷婷中文字幕一区三区| 久一视频在线观看| 亚洲女子a中天字幕| 欧美一区二区三区观看| 欧美极品美女视频| 国产精品免费无码| 久久精品人人爽人人爽| 久久精品一区二区免费播放| av中文字幕一区| 精品人妻一区二区免费| 国产 日韩 欧美大片| 中文字幕1区2区| 国产精品1024| 97超碰人人看| 国产福利91精品| 国产a级片视频| 成人激情免费网站| 天天躁日日躁狠狠躁av| 成人国产在线观看| 青青草视频网站| 99久久精品费精品国产一区二区| 99精品一区二区三区无码吞精| 成人亚洲一区二区一| youjizz.com日本| 不卡的看片网站| 瑟瑟视频在线观看| 国产视频911| 自拍偷拍第9页| 亚洲精品成人在线| 国语对白一区二区| 精品露脸国产偷人在视频| 在线视频一区二区三区四区| 日韩人体视频一二区| 国产美女www| 欧美日本国产一区| 日本高清不卡在线| 免费av在线播放| 欧美黄色成人网| 性欧美18~19sex高清播放| 国产不卡视频在线| 免费成人高清在线视频| 97久久精品午夜一区二区| 国产一级成人av| 欧美一区二区三区四区在线观看地址| 成人看的视频| www.日本三级| 国产亚洲一级| 九九精品久久久| 国产成人aaa| 男人舔女人下部高潮全视频| 亚洲欧洲日韩在线| 国产精品6666| 91福利在线观看| 午夜精品一二三区| 国产视频久久久久| 美女隐私在线观看| 午夜精品久久久久久99热软件| 456成人影院在线观看| 亚洲一区二区三区四区视频| 日韩啪啪网站| 欧美日韩在线免费观看视频| 亚洲日本免费| 国产三级三级看三级| 国产91对白在线观看九色| 亚洲av毛片基地| 亚洲地区一二三色| 亚洲一级特黄毛片| 日韩精品黄色网| 18videosex性欧美麻豆| 浅井舞香一区二区| 136福利精品导航| 水蜜桃一区二区| 亚洲日韩视频| 无码人妻一区二区三区在线视频| 91在线porny国产在线看| 五月天av网站| 色94色欧美sute亚洲线路二| 蜜臀av中文字幕| 久久精品中文字幕电影| 澳门成人av网| 国产高清在线精品一区二区三区| 久久亚洲影视| 青青在线视频观看| 成人一区在线看| 国产精品国产精品88| 欧美在线不卡视频| 天堂网www中文在线| 欧美疯狂性受xxxxx另类| 久久精品超碰| 日韩欧美一区二区三区久久婷婷| 国产欧美一级| 久久久久无码国产精品一区李宗瑞 | 久久人妻少妇嫩草av蜜桃| 国产精品久久久久久久久晋中| 日韩 欧美 中文| 精品成人一区二区| 中文在线手机av| 成人夜晚看av| 亚洲av成人片无码| 91在线视频在线| 国产精品变态另类虐交| 日韩一区二区三区电影在线观看| jizz亚洲| 国产精品精品视频一区二区三区| 欧美1区二区| 日韩视频在线视频| 成人精品亚洲人成在线| 黄色在线观看免费| 日韩欧美国产综合| 伊人电影在线观看| 亚洲aa在线观看| 亚洲综合专区| 人妻少妇偷人精品久久久任期| 亚洲人成小说网站色在线| 97在线视频人妻无码| 久久精品亚洲国产| 免费观看亚洲天堂| 韩国无码av片在线观看网站| 国产精品996| 免费在线视频观看| 精品国产一区久久| 国产在线观看www| 久久精品国产理论片免费 | 97视频在线免费播放| 26uuu成人网一区二区三区| 亚洲久久在线观看| 国产一区二区日韩| 亚洲欧洲一二区| 日韩a级黄色片| 99国产精品国产精品毛片| 欧美特黄aaaaaa| 在线亚洲午夜片av大片| 欧美成人xxxx| 久久香蕉视频网站| heyzo一本久久综合| 久久中文字幕免费| 搡老女人一区二区三区视频tv| 欧美性www| 日韩精品在线观看av| 99精品欧美一区二区三区综合在线| 亚洲久久在线观看| 日韩在线中文视频| 7m精品国产导航在线| 成人久久久久久久久| 亚洲欧洲日韩在线| 少妇高潮一区二区三区99小说| 欧美一区深夜视频| 91欧美在线| 亚洲av永久无码精品| 在线亚洲人成电影网站色www| 日本成a人片在线观看| 国产精品毛片va一区二区三区| 亚洲一区国产一区| 天天操天天摸天天舔| 日韩欧美久久久| 欧美一区 二区 三区| 日本女人高潮视频| 91视频免费播放| 国产精品爽爽久久久久久| 97在线精品视频| 欧美韩日高清| 久久久久久久无码| 欧美另类变人与禽xxxxx| freexxx性亚洲精品| 亚洲区一区二区三区| 成人v精品蜜桃久久一区| 91成人在线免费| 91av在线免费观看视频| 国产精品久久久乱弄 | 亚洲国产精品天堂| 国产无套精品一区二区三区| 尤物av一区二区| 岛国最新视频免费在线观看|