国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

用 popover="hint" 打造友好的 HTML 提示:一招讓界面更“懂人”

開發 前端
今天的這段“HTML 小魔法”,能幫你構建上下文友好的交互提示,不喧賓奪主、不干擾主體流程。 下個項目不妨一試,也歡迎分享實戰體驗與坑點。

最近翻到一篇文章:想把網頁做得“無感且順滑”并不難,難的是分層 UI(尤其是 tooltip / popover)寫著寫著就亂了套。 追求干凈、直覺的體驗沒問題,但要把多個彈層疊放而不打斷用戶流,常常是噩夢。此時,HTML 的 popover="hint" 成了救場“隊友”。

它允許在不關閉其它 popover 的情況下,打開類似 提示/預覽 的輕量界面;也就是說,能在不搶走焦點的前提下補充上下文。

先看實際效果

圖片圖片

HTML popover="hint" 示例(運行中)

<!DOCTYPE html>
<html lang="en">
  <head>
    <style>
      [popover="auto"] {
        inset: unset;
        position: absolute;
        top: 100px;
        justify-self: anchor-center;
        margin: 0;

        text-align: center;
        padding: 8px;
      }

      [popover="hint"] {
        inset: unset;
        position: absolute;
        top: calc(anchor(bottom) + 5px);
        justify-self: anchor-center;
        margin: 0;

        padding: 8px;
        border-radius: 6px;
        background: #271717;
        color: whitesmoke;
        box-shadow: 1px 1px 3px #999;
        border: none;
      }

      /* 幫助段落樣式 */
      .help-para {
        position: absolute;
        top: 16px;
        left: 16px;
        background: #eee;
        font-size: 0.8rem;
        line-height: 1.3;
        width: 50%;
        max-width: 600px;
        margin: 0;
        padding: 16px;
        box-shadow: 1px 1px 3px #999;
      }

      @media (max-width: 640px) {
        .help-para {
          width: auto;
          right: 16px;
        }
      }

      body {
        margin: 50px;
        padding: 10px;
        border: 2px solid lightblue;
        border-radius: 8px;
      }
    </style>
  </head>
  <body>
    <div id="wrapper">
      <section id="button-bar">
        <button
          popovertarget="submenu-1"
          popovertargetaction="toggle"
          id="menu-1"
        >
          Menu A
        </button>

        <button
          popovertarget="submenu-2"
          popovertargetaction="toggle"
          id="menu-2"
        >
          Menu B
        </button>

        <button
          popovertarget="submenu-3"
          popovertargetaction="toggle"
          id="menu-3"
        >
          Menu C
        </button>
      </section>
    </div>
    <div id="submenu-1" popover="auto">
      <button>Option A</button><br /><button>Option B</button>
    </div>
    <div id="submenu-2" popover="auto">
      <button>Option A</button><br /><button>Option B</button>
    </div>
    <div id="submenu-3" popover="auto">
      <button>Option A</button><br /><button>Option B</button>
    </div>

    <div id="tooltip-1" class="tooltip" popover="hint">Tooltip A</div>
    <div id="tooltip-2" class="tooltip" popover="hint">Tooltip B</div>
    <div id="tooltip-3" class="tooltip" popover="hint">Tooltip C</div>

    <script text="text/javascript">
      const tooltips = document.querySelectorAll(".tooltip");
      const btns = document.querySelectorAll("#button-bar button");

      function addEventListeners(i) {
        btns[i].addEventListener("mouseover", () => {
          tooltips[i].showPopover({ source: btns[i] });
        });

        btns[i].addEventListener("mouseout", () => {
          tooltips[i].hidePopover();
        });

        btns[i].addEventListener("focus", () => {
          tooltips[i].showPopover({ source: btns[i] });
        });

        btns[i].addEventListener("blur", () => {
          tooltips[i].hidePopover();
        });
      }

      for (let i = 0; i < btns.length; i++) {
        addEventListeners(i);
      }
    </script>
  </body>
</html>

就是這么簡單:少量 HTML + CSS + JS,就能得到一個上下文感知的小提示——鼠標懸停顯示、移開即收起,既溫柔又不打擾。

還有細節值得說

設置 popover="hint" 的提示,與 popover="auto" 或 popover="manual"并不相同。

  • 它是 輕可關閉(light-dismissible) 的:點擊外部或按下 ESC 即退出;
  • 它不會把 auto 彈層一并關掉;
  • 但它會關閉其他 hint,避免屏幕被提示“刷屏”。

快速對比表

Feature

popover=auto

popover=hint

popover=manual

Light Dismiss

Yes

Yes

No

Closes Others

Hints, Autos

Other Hints

Nothing

Nesting

Yes

Special

N/A

嵌套:最容易“繞暈”的一處

有時 tooltip 是“獨立一顆”,有時卻是**“富提示”(像 GitHub 頭像預覽那樣內部還有細小提示)。這種場景下,內層提示不應**把父級直接關掉。

可以這么記:

  1. 系統維護兩套“棧”:
  • auto stack:為 popover="auto";
  • hint stack:為獨立的 hint。
  1. **auto 內的 hint**:并入 auto stack;
  2. **hint 內的 hint**:仍留在 hint stack;
  3. **hint 里不能再嵌 auto**。

把它當“圖層”去理解就好:hint 在 auto 里,跟著父級走;此時鼠標碰到其它不相關的 hint,不會拆父層結構。

一句話總結

今天的這段“HTML 小魔法”,能幫你構建上下文友好的交互提示,不喧賓奪主、不干擾主體流程。 下個項目不妨一試,也歡迎分享實戰體驗與坑點。

感謝閱讀,我們下次見,帶來更多實用的 HTML 小技巧。

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2016-04-13 10:20:19

2016-11-04 13:00:55

Asynces6Javascript

2025-03-25 08:11:38

開發者技巧React

2013-07-30 11:24:33

SAP“簡化IT 一招

2022-06-21 09:27:01

PythonFlaskREST API

2021-11-22 11:30:37

JavaScript代碼瀏覽器

2013-05-03 11:21:27

2018-10-10 14:34:27

ARM嵌入式系統硬件

2021-08-07 07:56:57

Windows 11操作系統微軟

2011-05-11 14:50:54

URL

2012-08-15 09:49:21

數據中心綠色微軟

2018-03-22 12:44:13

2021-07-11 06:36:10

Windows 10操作系統微軟

2012-06-04 09:05:13

2021-10-17 07:14:08

Windows 11操作系統微軟

2021-06-28 20:01:07

電腦性能Windows 7

2022-09-06 11:53:00

開發計算

2020-12-31 06:55:37

機器人自然語言人工智能

2024-02-26 08:00:00

Pythonformat()字符串

2021-04-19 05:44:18

顯示器Twinkle Tra亮度調節
點贊
收藏

51CTO技術棧公眾號

国产一区二区日韩| 久久精品免视看| 国产一区二区三区直播精品电影| 亚洲国产日韩综合一区| 性欧美ⅴideo另类hd| 国产美女一区| 中文字幕欧美亚洲| 99re热视频在线| 久久国产成人精品| 亚洲欧美aⅴ...| 亚洲高清久久网| 丝袜综合欧美| 欧洲一区二区三区免费视频| 日韩精品一区二区三区swag | 邻家有女韩剧在线观看国语| 全国精品免费看| 欧美韩国理论所午夜片917电影| 高清av电影在线观看| 99久精品视频在线观看视频| 欧美激情一区二区三区不卡| 国产激情二区| 欧美日韩性视频在线| 欧美资源在线观看| 欧美福利网址| 国产伦精品免费视频| 91中文在线| 欧美在线免费| 樱花www成人免费视频| 欧美一区二区三区红桃小说| 蜜臀精品久久久久久蜜臀| 久久99国产精品| 久久资源在线| 欧美视频免费播放| 婷婷激情综合网| 三级三级久久三级久久18| 蜜桃成人av| 亚洲另类激情图| 日本色护士高潮视频在线观看| 亚洲日本va午夜在线影院| 欧美三级在线观看视频| 国内一区二区在线| 91手机在线观看| 青草在线视频在线观看| 久久久免费在线观看| 天堂√中文最新版在线| 91久久久久久久久久久久久| 精品大片一区二区| 中文字幕国产亚洲| 国产原创在线观看| 久久精品网站免费观看| 水蜜桃在线免费观看| 欧美日韩一区二区免费在线观看 | 免费欧美日韩国产三级电影| 51国偷自产一区二区三区| 天天色天天射综合网| 国产精品高清免费在线观看| 日韩网站中文字幕| 91网站视频在线观看| 天堂在线视频| 91sa在线看| 成人午夜在线视频| 免费a级毛片在线观看| 国产传媒日韩欧美成人| 国产日韩精品在线看| 日本一区二区三区在线播放| 91视视频在线直接观看在线看网页在线看 | 麻豆视频在线看| 欧美日韩成人在线观看| 精品日韩在线| 国产精品一级久久久| 国产成人精品免费一区二区| 捆绑紧缚一区二区三区在线观看| 黑人精品xxx一区| 久草资源在线观看| 色狠狠久久aa北条麻妃| 五月天亚洲一区| 国产日韩一区在线| 精品综合久久88少妇激情| 在线视频欧美性高潮| 亚洲美女电影在线| 97成人在线视频| 国产欧美日本一区二区三区| 亚洲区小说区| 成人全视频高清免费观看| 欧美性猛交视频| 国产成人精品免费网站| 欧美三日本三级少妇三99| 日韩在线不卡视频| 91大神精品| 最近的2019中文字幕免费一页| 久久99国产精品久久99大师| 蜜桃导航-精品导航| 精品亚洲porn| 免费毛片在线| 少妇高潮久久77777| 红杏视频成人| 国产白丝袜美女久久久久| 国产亚洲精品美女| 国产呦精品一区二区三区网站 | 成人免费在线| 美女一区视频| 欧美日韩大陆一区二区| 红桃视频国产精品| 欧美极品少妇videossex| 任我爽在线视频精品一| 日韩欧美国产小视频| 亚洲高清成人| 污网站免费看| 成人免费看黄网站| 国产精品九色蝌蚪自拍| 欧美黑人巨大videos精品| 在线观看免费成人av| 91av视频在线播放| 亚洲午夜私人影院| 999亚洲国产精| 久久青草视频| 国产精品12p| 欧美激情一级欧美精品| 欧美性猛交xxxx偷拍洗澡| 99久久精品费精品国产风间由美| 69久久精品| 亚洲精品国产suv一区88| 2019中文字幕全在线观看| 国产视频一区二区在线观看| 国产高清不卡| 成人一区二区电影| 国产午夜精品一区理论片飘花| 亚洲欧洲国产日本综合| 草草视频在线一区二区| 激情视频网址| 亚洲精品成人自拍| 国内伊人久久久久久网站视频 | 国产综合色激情| av免费网站观看| 91av视频在线免费观看| 欧美日韩亚洲91| 中文字幕亚洲精品在线观看 | 黄视频在线免费看| 激情亚洲综合网| 欧美18视频| 国产色综合天天综合网| 日韩视频免费观看高清完整版在线观看 | 国产尤物视频在线| 国产探花一区在线观看| 老司机精品视频在线观看6| 亚洲一区二区高清视频| 26uuu亚洲伊人春色| 欧美韩国理论所午夜片917电影| 久久久av亚洲男天堂| 亚洲精品一区二区三区福利 | 欧美激情精品久久久| 日韩免费性生活视频播放| 国产精品久久久爽爽爽麻豆色哟哟| 不卡一卡二卡三乱码免费网站| 久久99久久99| 91在线视频网址| 成人免费小视频| 国产成人av一区二区三区在线| 成人激情文学综合网| 岛国精品在线播放| 美女视频免费一区| 国产传媒日韩欧美成人| 26uuu精品一区二区三区四区在线| 国产一区二三区| 国产精品一级片在线观看| 久久久国产精品麻豆| 国产欧美日韩在线看| 久久午夜老司机| 国产成人精品免费在线| 国产精品丝袜一区| 偷拍日韩校园综合在线| 91精品国产91热久久久做人人| 在线视频一区二区| 国产精品欧美一区二区三区奶水 | 免费日韩av电影| 欧美精品二区三区四区免费看视频 | 欧美一级黄色片视频| 香港三级日本三级a视频| 黄页在线播放| 久草在线国产| 色大18成网站www在线观看| www成人在线视频| 国产综合视频| 激情综合网天天干| 成人听书哪个软件好| 午夜精品久久久久影视| 欧美禁忌电影| 高清久久一区| 国产精品一二三产区| 高清欧美日韩| 成人激情免费视频| 四虎精品在线| 精品日韩欧美| 九色国产在线观看| 亚洲少妇中文在线| 国产不卡av在线| 99热这里只有精品7| 污污网站在线| 婷婷久久免费视频| 国产精品亚洲综合久久|