:open
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
:open 㯠CSS ã®æ¬ä¼¼ã¯ã©ã¹ã§ãééã®ç¶æ
ãæã¤è¦ç´ ã®ãã¡ãç¾å¨éãã¦ããç¶æ
ã«ããè¦ç´ ã表ãã¾ãã
æ§æ
:open {
/* ... */
}
解説
:open æ¬ä¼¼ã¯ã©ã¹ã¯ãç¾å¨éãã¦ããç¶æ
ã«ããè¦ç´ ã鏿ãã¾ããããã«ã¯ã次ã®ãããªè¦ç´ ãããã¾ãã
<details>ããã³<dialog>è¦ç´ ã§ãéãã¦ããç¶æ ãã¤ã¾ãopen屿§ãè¨å®ããã¦ããè¦ç´ ã<input>è¦ç´ ã®ãã¡ãã¦ã¼ã¶ã¼ãå¤ã鏿ããããã®ããã«ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã表示ãããã®ï¼ä¾ãã°<input type="color">ï¼ã§ãããã«ã¼ã表示ããã¦ãããã®ã<select>è¦ç´ ã®ãã¡ãã¦ã¼ã¶ã¼ã鏿ããå¤ã表示ããããã«ãããããã¦ã³ããã«ã¼ã表示ãããã®ã§ããã®ããã«ã¼ã表示ããã¦ãããã®ãã«ã¹ã¿ãã¤ãºå¯è½ãª select è¦ç´ ãå®è£ ããå ´åãããã«ã¼èªä½ã¯::picker(select)æ¬ä¼¼è¦ç´ ã使ç¨ãã¦é¸æã§ãããã¨ã«æ³¨æãã¦ãã ããã
ãªããéãã¦ããç¶æ
ã¨éããããç¶æ
ã¯æå³ã¥ãã®ç¶æ
ã§ãããå½è©²è¦ç´ ã®è¡¨ç¤ºç¶æ
ã¨ã¯å¿
ããã対å¿ãã¦ãã¾ãããä¾ãã°ãã³ã³ãã³ãã表示ããããã«å±éããã¦ãã <details> è¦ç´ ã¯éãã¦ããç¶æ
ã§ããã visibility ã®å¤ã hidden ã§ãã£ã¦ãã details:open ã»ã¬ã¯ã¿ã¼ã«ãã£ã¦é¸æããã¾ãã
ããããªã¼ãã¼è¦ç´ ï¼ã¤ã¾ãã popover 屿§ãè¨å®ããã¦ããè¦ç´ ï¼ã¯ã表示ããã¦ãããé表示ã§ãããã表ããåå¥ã®æå³ã¥ãã®ç¶æ
ãæã¡ãéãã¦ããç¶æ
ãéããããç¶æ
ã¨å
±åãããã¨ãã§ãã¾ããè¡¨ç¤ºç¶æ
ã®ããããªã¼ãã¼è¦ç´ ãã¿ã¼ã²ããã«ããã«ã¯ã代ããã« :popover-open æ¬ä¼¼ã¯ã©ã¹ã使ç¨ãã¦ãã ããã
ä¾
>åºæ¬ç㪠:open ã®ä½¿ç¨
ãã®ä¾ã§ã¯ãéãã¦ããç¶æ ãæã¤ HTML è¦ç´ ã®ããã¤ãã示ãã¦ãã¾ãã
CSS
details:open > summary {
background-color: pink;
}
:is(select, input):open {
background-color: pink;
}
HTML
<details>
<summary>Details</summary>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pulvinar dapibus
lacus, sit amet finibus lectus mollis eu. Nullam quis orci dictum, porta lacus
et, cursus nunc. Aenean pulvinar imperdiet neque fermentum facilisis. Nulla
facilisi. Curabitur vitae sapien ut nunc pulvinar semper vitae vitae nisi.
</details>
<hr />
<label for="pet-select">ãããã鏿:</label>
<select id="pet-select">
<option value="dog">ã¤ã</option>
<option value="cat">ãã³</option>
<option value="hamster">ãã ã¹ã¿ã¼</option>
</select>
<hr />
<label for="start">éå§æ¥:</label>
<input type="date" id="start" />
çµæ
:open ã«ãã <select> ã®ç¬èªã®ã¹ã¿ã¤ã«è¨å®
ãã®ä¾ã§ã¯ãåºæ¬ç㪠<select> è¦ç´ ã«ç¬èªã®ã¹ã¿ã¤ã«ãé©ç¨ãã¦ãã¾ãã :open æ¬ä¼¼ã¯ã©ã¹ã使ç¨ãã¦ããããããã¦ã³ã¡ãã¥ã¼ã表示ããã¦ããéãã¦ããç¶æ
ã«ã¹ã¿ã¤ã«ãé©ç¨ãã¦ãã¾ãã
HTML
ãã®ãã«ã¼ãã»ã¬ã¯ã¿ã¼ã«ã¯ç¹å¥ãªç¹ã¯ããã¾ããã
<label>
ã好ããªãã«ã¼ããé¸ãã§ãã ããã
<select name="fruit">
<option>ããã</option>
<option>ããã</option>
<option>ãã¤ã»ã³ããªã¼</option>
<option>ã¯ã©ã³ããªã¼</option>
<option>ã¤ãã¸ã¯</option>
<option>ã°ã¬ã¼ããã«ã¼ã</option>
<option>ã¬ã¢ã³</option>
<option>ãªã¬ã³ã¸</option>
<option>ããã¤ã¤</option>
<option>ã¶ã¯ã</option>
<option>ããã</option>
</select>
</label>
ã¡ã¢:
è¤æ°è¡ã® <select> ï¼ã¤ã¾ãã multiple 屿§ãè¨å®ããã¦ãããã®ï¼ ã¯ä½¿ç¨ãã¦ãã¾ããããããã¯ããããããã¦ã³ã¡ãã¥ã¼ã§ã¯ãªããã¹ã¯ãã¼ã«å¯è½ãªãªã¹ãããã¯ã¹ã¨ãã¦è¡¨ç¤ºãããå¾åããããããéãç¶æ
ãåå¨ãã¾ããã
CSS
ãã® CSS ã§ã¯ã<select> è¦ç´ ã® appearance å¤ã none ã«è¨å®ãã¦ã鏿ããã¯ã¹ãã OS ã®æ¢å®ã®ã¹ã¿ã¤ã«ãåé¤ããããã¤ãã®åºæ¬çãªã¹ã¿ã¤ã«ãèªåèªèº«ã§æå®ãã¦ãã¾ããæã注ç®ãã¹ãã¯ãå³å´ã«ä¸åãã®ç¢å°ã® SVG èæ¯ç»åãæå®ãã¦ãããã¨ã§ããã¦ã¼ã¶ã¼ã¯ä¸åãã®ç¢å°ã§ <select> è¦ç´ ãèªèããå¾åãããããããããè¨è¼ãããã¨ã¯ããèãã§ãã
次ã«ã padding ã <label> è¦ç´ ã®å¨å²ã«è¨å®ããå¾ã§è²ä»ãã®å¢çç·ã追å ãã¦ãã¬ã¤ã¢ã¦ããçµ±ä¸ãããããã«ãéæãªå¢çç·ãè¨å®ãã¾ãã
select {
appearance: none;
width: 100%;
display: block;
font-family: inherit;
font-size: 100%;
padding: 5px;
border: 1px solid black;
background: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='5,5 15,5 10,15'/%3E%3C/svg%3E")
no-repeat right 3px center / 1em 1em;
}
label {
font-family: sans-serif;
max-width: 20em;
display: block;
padding: 20px;
border: 2px solid transparent;
}
<select> ãéãããã¨ãã :open æ¬ä¼¼ã¯ã©ã¹ã使ç¨ãã¦ãç°ãªãèæ¯è²ãè¨å®ããèæ¯ç»åãä¸åãç¢å°ã«å¤æ´ãã¾ããã¾ãã :open æ¬ä¼¼ã¯ã©ã¹ã¨ :has() æ¬ä¼¼ã¯ã©ã¹ãçµã¿åããã¦è¦ªã»ã¬ã¯ã¿ã¼ã使ããå²ãã§ãã <label> è¦ç´ ã«ç°ãªãèæ¯è²ã¨å¢çç·ãè¨å®ãã¾ããããã¯ãæåéãã<label> ã鏿ãã¾ããããã®åå«ã® <select> ãéãã¦ããå ´åã®ã¿ãã¨ããæå³ã§ãã
select:open {
background-color: #f8f2dc;
background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='5,15 10,5 15,15'/%3E%3C/svg%3E");
}
label:has(select:open) {
background-color: #81adc8;
border-color: #cd4631;
}
çµæ
çµæã¯æ¬¡ã®ã¨ããã§ãã <select> ãããããã¦ã³ãéãã¦ãã¹ã¿ã¤ã«è¨å®ã®å¹æã確èªãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| HTML > # selector-open > |
| Selectors Level 4 > # selectordef-open > |