Baseline Widely available
<input>
è¦ç´ ã® radio
åã¯ãä¸è¬ã«ã©ã¸ãªã°ã«ã¼ããããªãã¡é¢é£ãããªãã·ã§ã³ã®çµã¿åããã示ãã©ã¸ãªãã¿ã³ã®éã¾ãã§ãã
ã°ã«ã¼ãå ã§ã©ã¸ãªãã¿ã³ã¯ä¸ã¤ããåæã«é¸æãããã¨ãã§ãã¾ãããã©ã¸ãªãã¿ã³ã¯ãµã¤ããå°ããªåã§æããã鏿ããããå¡ãã¤ã¶ããããã強調表示ãããããã¾ãã
試ãã¦ã¿ã¾ããã<fieldset>
<legend>Select a maintenance drone:</legend>
<div>
<input type="radio" id="huey" name="drone" value="huey" checked />
<label for="huey">Huey</label>
</div>
<div>
<input type="radio" id="dewey" name="drone" value="dewey" />
<label for="dewey">Dewey</label>
</div>
<div>
<input type="radio" id="louie" name="drone" value="louie" />
<label for="louie">Louie</label>
</div>
</fieldset>
p,
label {
font:
1rem "Fira Sans",
sans-serif;
}
input {
margin: 0.4rem;
}
ã©ã¸ãªãã¿ã³ã¨å¼ã°ããã®ã¯ã以ä¸ã®ããã«å¤è¦ãæä½æ¹æ³ãå¤ãåã®ã©ã¸ãªã®ããã·ã¥ãã¿ã³ã«ä¼¼ã¦ããããã§ãã
ã¡ã¢: ãã§ãã¯ããã¯ã¹ã¯ã©ã¸ãªãã¿ã³ã«ä¼¼ã¦ãã¾ãããéè¦ãªéããããã¾ããã©ã¸ãªãã¿ã³ã¯ä¸çµã®ä¸ã§ä¸ã¤ã®å¤ã鏿ããããã«è¨è¨ããã¦ããã®ã«å¯¾ãããã§ãã¯ããã¯ã¹ã¯åå¥ã«å¤ããªã³ã¾ãã¯ãªãã«è¨å®ã§ãã¾ããè¤æ°ã®ã³ã³ããã¼ã«ãåå¨ããã¨ããã§ã¯ãã©ã¸ãªãã¿ã³ã¯å ¨ä½ã®ä¸ã§ä¸ã¤ã鏿ã§ãã¾ããããã§ãã¯ããã¯ã¹ã¯è¤æ°ã®å¤ã鏿ãããã¨ãã§ãã¾ãã
å¤value
屿§ã¯ã©ã¸ãªãã¿ã³ã®å¤ãæã¤æååã§ããå¤ã¯ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããã¦ã¼ã¶ã¼ã«è¡¨ç¤ºãããã¨ã¯ããã¾ããã代ããã«ãã°ã«ã¼ãå
ã®ã©ã®ã©ã¸ãªãã¿ã³ã鏿ããã¦ããããèå¥ããããã«ä½¿ç¨ããã¾ãã
ã©ã¸ãªã°ã«ã¼ãã¯ãã°ã«ã¼ãå
ã®ããããã®ã©ã¸ãªãã¿ã³ã«åã name
ãè¨å®ãããã¨ã§å®ç¾©ãã¾ããã©ã¸ãªã°ã«ã¼ãã確ç«ãããã¨ãã°ã«ã¼ãå
ã®ã©ã¸ãªãã¿ã³ã鏿ããã¨ãåãã°ã«ã¼ãã®ç¾å¨é¸æããã¦ããã©ã¸ãªãã¿ã³ãèªåçã«é¸æè§£é¤ããã¾ãã
ãã¼ã¸å
ã«ã¯ãåºæã® name
ãæã£ã¦ããéãã好ããªã ãã®æ°ã®ã©ã¸ãªã°ã«ã¼ãã使ãããã¨ãã§ãã¾ãã
ä¾ãã°ããã©ã¼ã ã§ã¦ã¼ã¶ã¼ã«å¸æããåãåããæ¹æ³ãå°ããå¿
è¦ãããå ´åã3 ã¤ã®ã©ã¸ãªãã¿ã³ã使ããããããã® name
ããããã£ã« contact
ãè¨å®ãã¾ããã1 ã¤ã¯ value
ã email
ã«ã1 ã¤ã¯ value ã phone
ã«ã1 ã¤ã¯ value ã mail
ã«è¨å®ãã¾ããã¦ã¼ã¶ã¼ã¯ value
ã¾ã㯠name
ãè¦ããã¨ã¯ããã¾ããï¼è¡¨ç¤ºãããã³ã¼ãã追å ããªãéãï¼ã
æçµç㪠HTML ã¯ãã®ããã«ãªãã¾ãã
<form>
<fieldset>
<legend>叿ããé£çµ¡æ¹æ³ã鏿ãã¦ãã ããã</legend>
<div>
<input type="radio" id="contactChoice1" name="contact" value="email" />
<label for="contactChoice1">ã¡ã¼ã«</label>
<input type="radio" id="contactChoice2" name="contact" value="phone" />
<label for="contactChoice2">é»è©±</label>
<input type="radio" id="contactChoice3" name="contact" value="mail" />
<label for="contactChoice3">éµä¾¿</label>
</div>
<div>
<button type="submit">éä¿¡</button>
</div>
</fieldset>
</form>
ããã§ã¯ä¸ã¤ã®ã©ã¸ãªãã¿ã³ããããããããã® name
ã contact
ã«è¨å®ããã¦ãããããããã®ã©ã¸ãªãã¿ã³ãåå¥ã«èå¥ããããã®åºæã® value
ãæã£ã¦ãã¾ããããããã¯åºæã® id
ãæã£ã¦ããã <label>
è¦ç´ ã® for
屿§ã§ã©ã¸ãªãã¿ã³ã«ã©ãã«ãçµã³ã¤ããããã«ä½¿ããã¾ãã
ãã®ä¾ããã¡ãã§è©¦ããã¨ãã§ãã¾ãã
ã©ã¸ãªã°ã«ã¼ãã®ãã¼ã¿è¡¨ç¾ã©ã¸ãªãã¿ã³ã鏿ãããç¶æ
ã§ä¸è¨ã®ãã©ã¼ã ãéä¿¡ãããã¨ããã©ã¼ã ã®ãã¼ã¿ã«ã¯ contact=value
ã®å½¢ã®é
ç®ãå«ã¾ãã¾ããä¾ãã°ãã¦ã¼ã¶ã¼ããé»è©±ãã©ã¸ãªãã¿ã³ãã¯ãªãã¯ãã¦ãããã©ã¼ã ãéä¿¡ããã¨ããã©ã¼ã ã®ãã¼ã¿ã«ã¯ contact=phone
ã¨ããè¡ãå«ã¾ãã¾ãã
HTML ã§ value
屿§ãçç¥ããã¨ãéä¿¡ããããã©ã¼ã ãã¼ã¿ã®ãã®ã°ã«ã¼ãã«ã¯ on
ã®å¤ãå²ãå½ã¦ããã¾ãããã®å ´åãã¦ã¼ã¶ã¼ããé»è©±ããã¯ãªãã¯ãã¦ãã©ã¼ã ãéä¿¡ããã®ã«ãçµæã®ãã©ã¼ã ãã¼ã¿ã contact=on
ã¨ãªãããæçã§ã¯ããã¾ãããã§ãããã value
屿§ãè¨å®ãããã¨ãå¿ããªãããã«ãã¦ãã ããã
ã¡ã¢: ãã©ã¼ã ãéä¿¡ãããã¨ãã«ã©ã¸ãªãã¿ã³ãå ¨ã鏿ããã¦ããªãã¨ãã©ã¸ãªã°ã«ã¼ããéä¿¡ããããã©ã¼ã ã«ã¾ã£ããå«ã¾ãããå ±åãããå¤ããªããªãã¾ãã
å®éã«ã¯ããã©ã¼ã ãã°ã«ã¼ãå
ã®ã©ã¸ãªãã¿ã³ãã¾ã£ãã鏿ããªãç¶æ
ã§éä¿¡ããã®ã許å¯ãããã¨ã¯ä¸è¬çã§ã¯ãªãã®ã§ãæ¢å®ã§ä¸ã¤ã checked
ç¶æ
ãè¨å®ãã¦ãããã¨ã«ã¯æå³ãããã¾ããä¸è¨ã®æ¢å®ã®ã©ã¸ãªãã¿ã³ã®é¸æãåç
§ãã¦ãã ããã
ä¾ã«è¥å¹²ã®ã³ã¼ããå ãã¦ããã®ãã©ã¼ã ã§çæããããã¼ã¿ã確èªã§ããããã«ãã¾ãããã HTML ã夿´ãã¦ããã©ã¼ã ãã¼ã¿ãåºåããããã® <pre>
ã追å ãã¾ãã
<form>
<fieldset>
<legend>叿ããé£çµ¡æ¹æ³ã鏿ãã¦ãã ããã</legend>
<div>
<input type="radio" id="contactChoice1" name="contact" value="email" />
<label for="contactChoice1">ã¡ã¼ã«</label>
<input type="radio" id="contactChoice2" name="contact" value="phone" />
<label for="contactChoice2">é»è©±</label>
<input type="radio" id="contactChoice3" name="contact" value="mail" />
<label for="contactChoice3">éµä¾¿</label>
</div>
<div>
<button type="submit">éä¿¡</button>
</div>
</fieldset>
</form>
<pre id="log"></pre>
ãããããããããã® JavaScript ã追å ãã¦ãã¦ã¼ã¶ã¼ããéä¿¡ããã¿ã³ãã¯ãªãã¯ããã¨ãã«çºçãã submit
ã¤ãã³ãã®ã¤ãã³ããªã¹ãã¼ãè¨å®ãã¾ãã
const form = document.querySelector("form");
const log = document.querySelector("#log");
form.addEventListener(
"submit",
(event) => {
const data = new FormData(form);
let output = "";
for (const entry of data) {
output = `${output}${entry[0]}=${entry[1]}\r`;
}
log.innerText = output;
event.preventDefault();
},
false,
);
ãã®ä¾ã試ãã¦ã¿ã¦ã contact
ã°ã«ã¼ãã«äºã¤ä»¥ä¸ã®çµæãåºãªããã¨ã確èªãã¦ãã ããã
ãã¹ã¦ã® <input>
åã§å
±éãã屿§ã«å ãã radio
åã®å
¥åã¯æ¬¡ã®å±æ§ã«ã対å¿ãã¦ãã¾ãã
checked
: è«ç屿§ã§ãããããã°ããã®ã©ã¸ãªãã¿ã³ãã©ã¸ãªã°ã«ã¼ãå ã§ç¾å¨é¸æããã¦ãããã®ã§ãããã¨ã示ãã¾ãã
Firefox ã¯ä»ã®ãã©ã¦ã¶ã¼ã¨ã¯ç°ãªããæ¢å®ã§ãã¼ã¸èªã¿è¾¼ã¿ãã¾ããã£ã¦ <input>
ã®ãã§ãã¯ç¶æ
ãç¶æãã¾ãããã®æ©è½ãå¶å¾¡ããã«ã¯ autocomplete
屿§ã使ç¨ãã¦ãã ããã
value
value
ã¯ãã¹ã¦ã® <input>
ã§å
±éã®ãã®ã®ä¸ã¤ã§ããããããradio
åã®å
¥åæ¬ã§ã¯ç¹å¥ãªç®çã«ãªãã¾ãããã©ã¼ã ãéä¿¡ãããã¨ããç¾å¨ãã§ãã¯ããã¦ããã©ã¸ãªãã¿ã³ã®ã¿ããµã¼ãã¼ã«éä¿¡ãããå ±åãããå¤ã¯ value
屿§ã®å¤ã«ãªãã¾ãã value
ãæå®ããã¦ããªãå ´åã¯ãæ¢å®ã§ on
ã¨ããæååã«ãªãã¾ããããã¯ä»¥åã«å¤ã®ç¯ã§èª¬æããéãã§ãã
required
required
屿§ã¯ãã»ã¨ãã©ã® <input>
ã«å
±éãã屿§ã§ããåãååã®ã©ã¸ãªãã¿ã³ã®ã°ã«ã¼ãã®ããããã« required
屿§ãããå ´åããã®ã°ã«ã¼ãã®ã©ã¸ãªãã¿ã³ã®ããããããã§ãã¯ããå¿
è¦ãããã¾ããããã®å±æ§ãé©ç¨ããã¦ããã©ã¸ãªãã¿ã³ããã§ãã¯ããå¿
è¦ãããããã§ã¯ããã¾ããã
ä¸è¨ã§æãåºæ¬çãªã©ã¸ãªãã¿ã³ã®ä½¿ç¨æ¹æ³ãè¦ã¦ãã¾ãããä»ã«å¿ è¦ã«ãªããããªã©ã¸ãªãã¿ã³ã«é¢ãããã使ãããæ©è½ãæè¡ãè¦ã¦ã¿ã¾ãããã
æ¢å®ã®ã©ã¸ãªãã¿ã³ã®é¸æã©ã¸ãªãã¿ã³ãæ¢å®ã§é¸æç¶æ
ã«ããã«ã¯ãåã« checked
屿§ãå ããã ãã§ããååã®ä¾ãæ´æ°ããã¨ãã®ããã«ãªãã¾ãã
<form>
<fieldset>
<legend>叿ããé£çµ¡æ¹æ³ã鏿ãã¦ãã ããã</legend>
<div>
<input
type="radio"
id="contactChoice1"
name="contact"
value="email"
checked />
<label for="contactChoice1">ã¡ã¼ã«</label>
<input type="radio" id="contactChoice2" name="contact" value="phone" />
<label for="contactChoice2">é»è©±</label>
<input type="radio" id="contactChoice3" name="contact" value="mail" />
<label for="contactChoice3">éµä¾¿</label>
</div>
<div>
<button type="submit">éä¿¡</button>
</div>
</fieldset>
</form>
ãã®å ´åãæåã®ã©ã¸ãªãã¿ã³ã¯æ¢å®ã§é¸æãããããã«ãªãã¾ãã
ã¡ã¢: è¤æ°ã®ã©ã¸ãªãã¿ã³ã« checked
屿§ãæå®ããå ´åãå¾ããæå®ãããã®ãå
ã«æå®ãããã®ã䏿¸ããã¾ããã¤ã¾ããæå¾ã« checked
ãããã©ã¸ãªãã¿ã³ã鏿ããããã¨ã«ãªãã¾ããããã¯ãä¸åº¦ã«é¸æã§ããã©ã¸ãªãã¿ã³ã¯ã°ã«ã¼ãå
ã® 1 ã¤ã ãã§ãããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯æ°ããã©ã¸ãªãã¿ã³ããã§ãã¯ããããã³ã«ãä»ã®ã©ã¸ãªãã¿ã³ã®é¸æãèªåçã«è§£é¤ããããã§ãã
ä¸è¨ã®ä¾ã§ã¯ãã©ã¸ãªãã¿ã³ãã®ãã®ã ãã§ãªããé¢é£ãã <label>
è¦ç´ ãã¯ãªãã¯ãããã¨ã§ãã©ã¸ãªãã¿ã³ã鏿ã§ãããã¨ã«ãæ°ã¥ãã§ããããããã㯠HTML ãã©ã¼ã ã®ã©ãã«ã®å®ã«ä¾¿å©ãªæ©è½ã§ãç¹ã«ã¹ãã¼ããã©ã³ã®ãããªç»é¢ã®å°ããªæ©å¨ã§ã¯ãã¦ã¼ã¶ã¼ãæã鏿è¢ãã¯ãªãã¯ãããããªãã¾ãã
ã¢ã¯ã»ã·ããªãã£ãè¶ãã¦ããã®ãã¨ããã©ã¼ã ã« <label>
è¦ç´ ãé©åã«è¨å®ããè¯ãçç±ã§ãã
required
屿§ãè¨å®ãããã©ã¸ãªãã¿ã³ã®å ´åãã¾ãã¯åãååã®ã©ã¸ãªãã¿ã³ã®ã°ã«ã¼ãã§ããã®ãã¡ã® 1 ã¤ä»¥ä¸ã« required
ãè¨å®ããã¦ããå ´åããã®ã³ã³ããã¼ã«ãæå¹ã¨ã¿ãªãããã«ã¯ã©ã¸ãªãã¿ã³ã鏿ããã¦ããå¿
è¦ãããã¾ããã©ã®ã©ã¸ãªãã¿ã³ããã§ãã¯ããã¦ããªãå ´åãããªãã¼ã·ã§ã³ä¸ã« ValidityState
ãªãã¸ã§ã¯ãã® valueMissing
ããããã£ã true
ãè¿ãããã©ã¦ã¶ã¼ãã¦ã¼ã¶ã¼ã«ãªãã·ã§ã³ã®é¸æãè¦æ±ãã¾ãã
次ã®ä¾ã¯ããã®è¨äºå ¨ä½ã§è¦ã¦ããä¾ãå°ã詳ãããããã®ã§ãããã¤ãã®è¿½å ã®ã¹ã¿ã¤ã«è¨å®ã¨ãå°éè¦ç´ ã使ç¨ãããã¨ã§ããé©åãªæå³ã¥ãããªããã¦ãã¾ãã HTML ã¯ãã®ããã«ãªã£ã¦ãã¾ãã
<form>
<fieldset>
<legend>叿ããé£çµ¡æ¹æ³ã鏿ãã¦ãã ããã</legend>
<div>
<input
type="radio"
id="contactChoice1"
name="contact"
value="email"
checked />
<label for="contactChoice1">ã¡ã¼ã«</label>
<input type="radio" id="contactChoice2" name="contact" value="phone" />
<label for="contactChoice2">é»è©±</label>
<input type="radio" id="contactChoice3" name="contact" value="mail" />
<label for="contactChoice3">éµä¾¿</label>
</div>
<div>
<button type="submit">éä¿¡</button>
</div>
</fieldset>
</form>
ãã®ä¾ã§ã¯ã CSS ã絡ãã§ããã®ãå°ãç¹å¾´çã§ãã
html {
font-family: sans-serif;
}
div:first-of-type {
display: flex;
align-items: flex-start;
margin-bottom: 5px;
}
label {
margin-right: 15px;
line-height: 32px;
}
input {
appearance: none;
border-radius: 50%;
width: 16px;
height: 16px;
border: 2px solid #999;
transition: 0.2s all linear;
margin-right: 5px;
position: relative;
top: 4px;
}
input:checked {
border: 6px solid black;
}
button,
legend {
color: white;
background-color: black;
padding: 5px 10px;
border-radius: 0;
border: 0;
font-size: 14px;
}
button:hover,
button:focus {
color: #999;
}
button:active {
background-color: white;
color: black;
outline: 1px solid black;
}
ããã§æãæ³¨ç®ãã¹ãã¯ãappearance
ããããã£ï¼ä¸é¨ã®ãã©ã¦ã¶ã¼ã§å¯¾å¿ãã¦ããããã«å¿
è¦ãªæ¥é è¾ä»ãï¼ã使ç¨ãã¦ããç¹ã§ããæ¢å®ã§ãã©ã¸ãªãã¿ã³ï¼ã¨ãã§ãã¯ããã¯ã¹ï¼ã¯ããããã®ã³ã³ããã¼ã«ã®ããã®ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ãã¤ãã£ãã¹ã¿ã¤ã«ã§ã¹ã¿ã¤ã«è¨å®ããã¦ãã¾ãã appearance: none
ãæå®ãããã¨ã§ããã¤ãã£ãã®ã¹ã¿ã¤ã«è¨å®ãå®å
¨ã«åé¤ããèªåèªèº«ã§ã¹ã¿ã¤ã«ã使ãããã¨ãã§ãã¾ããããã§ã¯ã border
㨠border-radius
㨠transition
ã使ç¨ãã¦ãã©ã¸ãªé¸æã®ã¢ãã¡ã¼ã·ã§ã³ãããããã«ä½æãã¦ãã¾ããã¾ãã :checked
æ¬ä¼¼ã¯ã©ã¹ãã鏿æã®ã©ã¸ãªãã¿ã³ã®å¤è¦³ã®ã¹ã¿ã¤ã«ãæå®ããããã«ä½¿ç¨ããã¦ãããã¨ã«æ³¨ç®ãã¦ãã ããã
ã¡ã¢: ãã appearance
ããããã£ã使ç¨ãããå ´åã¯ãã¨ã¦ãæ
éã«ãã¹ãããå¿
è¦ãããã¾ãããã®ããããã£ã¯ã»ã¨ãã©ã®ç¾ä»£ã®ãã©ã¦ã¶ã¼ã§å¯¾å¿ãã¦ãã¾ããããã®å®è£
ã¯å¤§ããç°ãªã£ã¦ãã¾ããå¤ããã©ã¦ã¶ã¼ã§ã¯ããã¼ã¯ã¼ã none
ã§ããç°ãªãå½¢ã§åã广ãæãããã¾ã£ãã対å¿ãã¦ããªããã©ã¦ã¶ã¼ãããã¾ããææ°ã®ãã©ã¦ã¶ã¼ã§ã¯ããã®ãããªéãã¯å°ãããªã£ã¦ãã¾ãã
ã©ã¸ãªãã¿ã³ãã¯ãªãã¯ããã¨ã 2 ã¤ã®ãã¿ã³ã®ç¶æ ãå¤ããã¨ãã«ããããã§æ»ãããªãã§ã¼ãã¢ã¦ã/ã¤ã³å¹æããããã¨ã«æ³¨æãã¦ãã ãããããã«ãå¡ä¾ã¨éä¿¡ãã¿ã³ã®ã¹ã¿ã¤ã«ã¨è²ã¯ãå¼·ãã³ã³ãã©ã¹ããä¿æããããã«ã«ã¹ã¿ãã¤ãºããã¦ãã¾ããããã¯ãå®éã®ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã§ä½¿ç¨ãããå¤è¦³ã§ã¯ãªãããããã¾ãããããã®å¯è½æ§ã示ãã¦ãããã¨ã¯ééãããã¾ããã
æè¡çæ¦è¦ 仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ å ±<input>
ããã³ãããå®è£
ãã¦ãã HTMLInputElement
ã¤ã³ã¿ã¼ãã§ã¤ã¹RadioNodeList
: ã©ã¸ãªãã¿ã³ã®ãªã¹ãã表ç¾ããã¤ã³ã¿ã¼ãã§ã¤ã¹RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4