Popover API
Baseline 2025 >
Newly available
*
Since 2025ë 1ì, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
Popover APIë ê°ë°ììê² ë¤ë¥¸ íì´ì§ ì½í ì¸ ìì íì¤ë² ì½í ì¸ ë¥¼ íìí ì ìë íì¤ì ì´ê³ ì¼ê´ëë©° ì ì°í ë©ì»¤ëì¦ì ì ê³µí©ëë¤. íì¤ë² ì½í ì¸ ë HTML ìì±ì ì¬ì©íì¬ ì ì¸ì ì¼ë¡ ì ì´íê±°ë JavaScript를 íµí´ ì ì´í ì ììµëë¤.
ê°ë ë° ì¬ì©ë²
ì¹ìì ë§¤ì° ì¼ë°ì ì¸ í¨í´ì ë¤ë¥¸ ì½í ì¸ ìì ì½í ì¸ ë¥¼ íìíì¬ ì¬ì©ìì 주ì를 í¹ì ì¤ì ì ë³´ë ìíí´ì¼ íë ìì ì¼ë¡ ì ëíë ê²ì ëë¤. ì´ ì½í ì¸ ë ì¤ë²ë ì´, íì , íì¤ë², ëí ìì ë± ì¬ë¬ ê°ì§ ì´ë¦ì¼ë¡ ë¶ë¦´ ì ììµëë¤. 문ìììë ì´ë¥¼ íì¤ë²ë¼ê³ ë¶ë¦ ëë¤. ì¼ë°ì ì¼ë¡ ë¤ìê³¼ ê°ì´ ë§í ì ììµëë¤.
- 모ë¬, ì¦ íì¤ë²ê° íìëë ëììë íì¤ë²ê° ì´ë¤ ìì¼ë¡ë ìëí ëê¹ì§(ì: ì¤ìí ì íì´ ì´ë£¨ì´ì§ ëê¹ì§) íì´ì§ì ëë¨¸ì§ ë¶ë¶ì´ ìí¸ìì©íì§ ìë ìíë¡ ë ëë§ ë©ëë¤.
- ë¹ëª¨ë¬, íì¤ë²ê° íìëë ëì íì´ì§ì ëë¨¸ì§ ë¶ë¶ê³¼ ìí¸ ìì©í ì ììì ì미í©ëë¤.
íì¤ë² API를 ì¬ì©íì¬ ìì±ë íì¤ë²ë íì ë¹ëª¨ë¬ì
ëë¤. ëª¨ë¬ íì¤ë²ë¥¼ ë§ë¤ë ¤ë©´ <dialog>를 ì¬ì©íë ê²ì´ ì¬ë°ë¥¸ ë°©ë²ì´ì§ë§, 기본ì ì¼ë¡ <dialog> ììë top layerì ë°°ì¹ëì§ ìì§ë§, íì¤ë²ë ë°°ì¹ëë¤ë ì ì ì ìíì¸ì. ì를 ë¤ì´ ì§ìëë íì¤ë²ë¥¼ ë§ë¤ë ì ì¸ì HTMLì ì¬ì©íì¬ ì ì´íë ¤ë ê²½ì°ì ê°ì´ ë ìì ì¬ì´ìë ìë¹í ì¤ë³µì´ ììµëë¤. íì¤ë² ì ì´ì ìµìì ìì¤ ë°°ì¹ë¥¼ ëí ìì ì미ì ê²°í©íë ¤ë ê²½ì°, <dialog> ìì를 íì¤ë²ë¡ ë°ê¿ ìë ììµëë¤.
popover APIì ì¼ë°ì ì¸ ì¬ì© ì¬ë¡ìë ì¡ì ë©ë´, ì¬ì©ì ì§ì 'í ì¤í¸' ì림, í¼ ìì ì ì, ì½í ì¸ ì í기 ëë êµì¡ì© UI ê°ì ìí¸ìì© ììê° í¬í¨ë©ëë¤.
íì¤ë²ë ë ê°ì§ ë°©ë²ì¼ë¡ ë§ë¤ ì ììµëë¤.
-
ì ì¸ì ì¼ë¡, ìë¡ì´ HTML í¹ì± ì¸í¸ë¥¼ íµí´ ë¤ì ì½ë를 ì¬ì©íì¬ í ê¸ ë²í¼ì´ ìë ê°ë¨í íì¤ë²ë¥¼ ë§ë¤ ì ììµëë¤.
html<button popovertarget="mypopover">íì¤ë²ë¥¼ í ê¸íì¸ì</button> <div id="mypopover" popover>íì¤ë² ì½í ì¸ </div> -
ì를 ë¤ì´
HTMLElement.togglePopover()ì ê°ì JavaScript API를 ì¬ì©íì¬ íì¤ë²ë¥¼ íìì ì¨ê¹ ê°ì í ê¸ í ì ììµëë¤.
íì¤ë²ê° ì íë ë ë°ìíë ìë¡ì´ ì´ë²¤í¸ì íì¤ë²ì ì¤íì¼ì ì§ì íë ë° ëìì´ ëë CSS 기ë¥ë ì¶ê°ëììµëë¤. 모ë ìë¡ì´ 기ë¥ì ìëì ëì´ëì´ ììµëë¤.
ì´ API ì¬ì©ì ëí ìì¸í ìë´ë popover API ì¬ì©í기 문ì를 참조íì¸ì.
HTML í¹ì±
popover-
ìì를 íì¤ë² ììë¡ ì ííë ì ì ìì±ì¼ë¡, íì¤ë² ìí(
"auto"ëë"manual")를 ê°ì¼ë¡ ë°ìµëë¤. popovertarget-
<button>ëë<input>ìì를 íì¤ë² ì ì´ ë²í¼ì¼ë¡ ë°ê¾¸ê³ ì ì´í íì¤ë² ììì ID를 ê°ì¼ë¡ ë°ìµëë¤. popovertargetaction-
컨í¸ë¡¤
<button>ëë<input>ì¼ë¡ ì ì´ëë íì¤ë² ìììì ìíí ìì ("hide","show", ëë"toggle")ì ì§ì í©ëë¤.
CSS 기ë¥
::backdrop-
::backdropìì¬ ìì(pseudo-element)ë íì¤ë² ìì ë°ë¡ ë¤ì ë°°ì¹ëë ì ì²´ íë©´ ììë¡, ìíë ê²½ì° íì¤ë² ë¤ì ìë íì´ì§ ì½í ì¸ ì í¨ê³¼(ì: íë¦¬ê² ì²ë¦¬)를 ì¶ê°í ì ììµëë¤. :popover-open-
:popover-openìì¬ í´ëì¤(pseudo-class)ë íì¤ë² ììê° íì ìíì¼ ëë§ ì¼ì¹íë©°, íì¤ë² ììê° íìë ë ì¤íì¼ì ì§ì íë ë° ì¬ì©í ì ììµëë¤.
ì¸í°íì´ì¤
ToggleEvent-
íì¤ë² ììì ìíê° íìì ì¨ê¹ ì¬ì´ë¥¼ ì íí ë ì¬ì©ììê² ì리ë ì´ë²¤í¸ë¥¼ ëíë ëë¤. íì¤ë²ì ìíê° ë³ê²½ë ë ë°ìíë
beforetoggleë°toggleì´ë²¤í¸ì ì´ë²¤í¸ ê°ì²´ì ëë¤.
ë¤ë¥¸ ì¸í°íì´ì¤ë¡ì íì¥
>ì¸ì¤í´ì¤ ìì±
HTMLElement.popover-
JavaScript를 íµí´ ììì íì¤ë² ìí(
"auto"or"manual")를 ê°ì ¸ì¤ê³ ì¤ì íë©°, ê¸°ë¥ ê°ì§ì ì¬ì©í ì ììµëë¤.popoverì ì HTML í¹ì± ê°ì ë°ìí©ëë¤. -
컨í¸ë¡¤ ë²í¼ì¼ë¡ ì ì´ëë íì¤ë² ìì를 ê°ì ¸ì¤ê³ ì¤ì í©ëë¤. JavaScriptìì
popovertargetHTML í¹ì±ì í´ë¹íë ê°ì ëë¤. -
컨í¸ë¡¤ ë²í¼ì¼ë¡ ì ì´ëë íì¤ë² ìììì ìíí ì¡ì (
"hide","show", ëë"toggle")ì ê°ì ¸ì¤ê³ ì¤ì í©ëë¤.popovertargetactionHTML í¹ì±ì ê°ì ë°ìí©ëë¤.
ì¸ì¤í´ì¤ ë©ìë
HTMLElement.hidePopover()-
íì¤ë² ìì를 ìµìì ë ì´ì´ìì ì ê±°íê³
display: noneì¼ë¡ ì¤íì¼ì ì§ì íì¬ ì¨ê¹ëë¤. HTMLElement.showPopover()-
íì¤ë² ìì를 ìµìì ë ì´ì´ì ì¶ê°íì¬ íìí©ëë¤.
HTMLElement.togglePopover()-
íì¤ë² ìì를 íì ìíì ì¨ê¹ ìí ê°ì í ê¸ í©ëë¤.
ì´ë²¤í¸
HTMLElementbeforetoggleì´ë²¤í¸-
íì¤ë² ììì ìíê° íìì ì¨ê¹ ì¬ì´ ëë ê·¸ ë°ëë¡ ë³ê²½ë기 ì§ì ì ì¤íë©ëë¤.
HTMLElementtoggleì´ë²¤í¸-
íì¤ë² ììì ìíê° íìë¨ìì ì¨ê¹ì¼ë¡ ëë ê·¸ ë°ëë¡ ë³ê²½ë ì§íì ë°ìí©ëë¤. ì´ ì´ë²¤í¸ë ì´ë¯¸
<details>ììì ìí ë³ê²½ì ì리기 ìí´ ì¡´ì¬íì¼ë©°, íì¤ë² ìììë íì¥íë ê²ì´ ë ¼ë¦¬ì ì¼ë¡ ë³´ììµëë¤.
ìì
MDN íì¤ë² ìì ì ì ì²´ 컬ë ì ì ì ê·¼íë ¤ë©´ Popover API ìì ëë© íì´ì§ë¥¼ 참조íì¸ì.
ëª ì¸ì
| Specification |
|---|
| HTML > # dom-popover > |
| HTML > # event-beforetoggle > |
| HTML > # event-toggle > |