Baseline Widely available
<input>
è¦ç´ ã® checkbox
åã¯ãæ¢å®ã§ããã¯ã¹ã¨ãã¦æç»ãããæ¿åºã®æ¸é¡ã§è¦ãããããã«ãæå¹ãªæã«ã¯ãã§ãã¯ãå
¥ãã¾ããæ£ç¢ºãªå¤è¦ã¯ãã©ã¦ã¶ã¼ãå®è¡ããã¦ãããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®æ§æã«ããã¾ããä¸è¬ã«ããã¯åè§å½¢ã§ãããè§ã丸ããªããã¨ãããã¾ãããã§ãã¯ããã¯ã¹ã«ãã£ã¦ããã©ã¼ã ã§åä¸ã®å¤ã鏿ãã¦ï¼ã¾ãã¯é¸æããã«ï¼éä¿¡ãããã¨ãã§ãã¾ãã
<fieldset>
<legend>Choose your monster's features:</legend>
<div>
<input type="checkbox" id="scales" name="scales" checked />
<label for="scales">Scales</label>
</div>
<div>
<input type="checkbox" id="horns" name="horns" />
<label for="horns">Horns</label>
</div>
</fieldset>
p,
label {
font:
1rem "Fira Sans",
sans-serif;
}
input {
margin: 0.4rem;
}
ã¡ã¢: ã©ã¸ãªãã¿ã³ã¯ãã§ãã¯ããã¯ã¹ã¨ä¼¼ã¦ãã¾ãããéè¦ãªéããããã¾ããåãååã®ã©ã¸ãªãã¿ã³ã¯ã°ã«ã¼ãåããã¦ãããåæã« 1 ã¤ãã鏿ã§ããªãã®ã«å¯¾ãããã§ãã¯ããã¯ã¹ã¯åä¸ã®å¤ããªã³ã«ããããªãã«ãããåãæ¿ãããã¨ãã§ãã¾ããè¤æ°ã®ã³ã³ããã¼ã«ãããå ´æã§ã¯ãã©ã¸ãªãã¿ã³ã¯ãã®ä¸ã§ä¸ã¤ãã鏿ã§ãã¾ãããããã§ãã¯ããã¯ã¹ã¯è¤æ°ã®å¤ã鏿ã§ãã¾ãã
å¤ãã§ãã¯ããã¯ã¹ã®å¤ã表ãæååã§ããããã¯ã¯ã©ã¤ã¢ã³ãå´ã«ã¯è¡¨ç¤ºããã¾ãããããµã¼ãã¼ä¸ã§ã¯ãã§ãã¯ããã¯ã¹ã® name
ã¨å
±ã«éä¿¡ããããã¼ã¿ã«ä¸ãããã value
ã«ãªãã¾ããæ¬¡ã®ä¾ãè¦ã¦ãã ããã
<form>
<div>
<input
type="checkbox"
id="subscribeNews"
name="subscribe"
value="newsletter" />
<label for="subscribeNews">Subscribe to newsletter?</label>
</div>
<div>
<button type="submit">Subscribe</button>
</div>
</form>
ãã®ä¾ã§ã¯ã name
ã subscribe
ã«ã value
ã newsletter
ã«è¨å®ãã¾ããããã©ã¼ã ãéä¿¡ãããã¨ããã¼ã¿ã®ååã¨å¤ã®çµã¿åãã㯠subscribe=newsletter
ã¨ãªãã¾ãã
value
屿§ãçç¥ãããå ´åã¯ããã§ãã¯ããã¯ã¹ã®æ¢å®å¤ã¯ on
ã§ãã®ã§ããã®å ´åã®éä¿¡ããããã¼ã¿ã¯ subscribe=on
ã¨ãªãã¾ãã
ã¡ã¢: ãã©ã¼ã ãéä¿¡ãããã¨ãããã§ãã¯ããã¯ã¹ããã§ãã¯ããã¦ããªãå ´åãååãå¤ããµã¼ãã¼ã«éä¿¡ããã¾ãããHTML ã®ã¿ã§ãã§ãã¯ããã¯ã¹ããã§ãã¯ããã¦ããªãç¶æ
ãè¡¨ãæ¹æ³ï¼value=unchecked
ã®ããã«ï¼ã¯ããã¾ããããã§ãã¯ããã¯ã¹ããã§ãã¯ããã¦ããªãã¨ãã®æ¢å®å¤ãéä¿¡ãããå ´åã¯ãJavaScript ãè¨è¿°ãã¦ããã©ã¼ã å
ã«ãã§ãã¯ããã¦ããªãç¶æ
ã示ãå¤ãæã¤ <input type="hidden"> ã使ãããã¨ã§å®ç¾ã§ãã¾ãã
ãã¹ã¦ã® <input>
åã§å
±éãã屿§ã«å ãã "checkbox
" åã®å
¥åæ¬ã¯æ¬¡ã®å±æ§ã«ã対å¿ãã¦ãã¾ãã
checked
è«ç屿§ã§ããã§ãã¯ããã¯ã¹ãæ¢å®ã§ï¼ãã¼ã¸ãèªã¿è¾¼ã¾ããã¨ãã«ï¼ãã§ãã¯ããã¦ãããã©ããã示ãã¾ãããã§ãã¯ããã¯ã¹ãç¾å¨ãã§ãã¯ããã¦ãããã©ããã示ããã®ã§ã¯ããã¾ããããã§ãã¯ããã¯ã¹ã®ç¶æ
ãå¤åããå ´åããã®ã³ã³ãã³ã屿§ã¯å¤åãåæ ãã¾ãããï¼HTMLInputElement
ã® checked
IDL 屿§ã®ã¿ãæ´æ°ããã¾ããï¼
ã¡ã¢: ä»ã®å
¥åã³ã³ããã¼ã«ã¨ã¯ç°ãªãããã§ãã¯ããã¯ã¹ã®å¤ã¯ç¾å¨ checked
ã®ç¶æ
ã«ããå ´åã®ã¿ãéä¿¡ãã¼ã¿ã«å«ã¾ãã¾ãããã®å ´åããã§ãã¯ããã¯ã¹ã® value
屿§ã®å¤ãã¾ã㯠value
ãè¨å®ããã¦ããªãå ´å㯠on
ãå
¥åæ¬ã®å¤ã¨ãã¦å ±åããã¾ãã ä»ã®ãã©ã¦ã¶ã¼ã¨ã¯ç°ãªãã Firefox ã¯æ¢å®ã§ãã¼ã¸èªã¿è¾¼ã¿ãéã㦠<input>
ã®ãã§ãã¯ç¶æ
ãç¶æãã¾ãããã®æ©è½ãå¶å¾¡ããã«ã¯ autocomplete
屿§ã使ç¨ãã¦ãã ããã
value
value
屿§ã¯ãã¹ã¦ã® <input>
è¦ç´ ã§å
±éã®ãã®ã§ãããããã checkbox
åã®å
¥åæ¬ã§ã¯ç¹æ®ãªç¨éãæä¾ãã¾ãããã©ã¼ã ãéä¿¡ãããã¨ãç¾å¨ãã§ãã¯ããã¦ãããã§ãã¯ããã¯ã¹ã®ã¿ããµã¼ãã¼ã«éä¿¡ãããå ±åãããå¤ã value
屿§ã®å¤ã«ãªãã¾ãã value
ãæå®ããã¦ããªãå ´åã¯ãæ¢å®ã§ on
ã®æååã«ãªãã¾ããããã¯åè¿°ã®å¤ã®ç¯ã§ç´¹ä»ããã¦ãã¾ãã
ä¸è¨ã§æãåºæ¬çãªãã§ãã¯ããã¯ã¹ã®ä½¿ç¨ãè¦ã¦ãã¾ãããä»ã«å¿ è¦ã«ãªããããªãã§ãã¯ããã¯ã¹ã«é¢ãããã使ãããæ©è½ãæè¡ãè¦ã¦ã¿ã¾ãããã
è¤æ°ãã§ãã¯ããã¯ã¹ã®æ±ãä¸è¨ã®ä¾ã§ã¯ããã§ãã¯ããã¯ã¹ã 1 ã¤ããå«ã¾ãã¦ãã¾ããã§ãããå®éã®ç¶æ³ã§ã¯ãè¤æ°ã®ãã§ãã¯ããã¯ã¹ãçºçããå¯è½æ§ãããã¾ããããããäºãã«å®å ¨ã«ç¡é¢ä¿ã§ããã°ãä¸è¨ã®ããã«ãã¹ã¦å¥ã ã«å¦çã§ãã¾ãããããããããããããã¹ã¦é¢é£ãã¦ããã°ãäºã¯ããåç´ã§ã¯ããã¾ããã
ä¾ãã°ã次ã®ãã¢ã«ã¯ã¦ã¼ã¶ã¼ãé¢å¿ã®ãããã¨ã鏿ã§ããããã«ãè¤æ°ã®ãã§ãã¯ããã¯ã¹ãå«ã¾ãã¦ãã¾ãï¼å®å ¨ãªçã¯ä¾ã®ç¯ã§ç¢ºèªãã¦ãã ããï¼ã
<fieldset>
<legend>é¢å¿ããããã®ãé¸ãã§ãã ãã</legend>
<div>
<input type="checkbox" id="coding" name="interest" value="coding" />
<label for="coding">ã³ã¼ãã£ã³ã°</label>
</div>
<div>
<input type="checkbox" id="music" name="interest" value="music" />
<label for="music">鳿¥½</label>
</div>
</fieldset>
ãã®ä¾ã§ã¯ã両æ¹ã®ãã§ãã¯ããã¯ã¹ã«åã name
ãè¨å®ãã¾ããã両æ¹ã®ãã§ãã¯ããã¯ã¹ããã§ãã¯ããã¦ãã©ã¼ã ãéä¿¡ãããã¨ãåå/å¤ã®çµã¿åããã®æåå㯠interest=coding&interest=music
ã®ããã«éä¿¡ããã¾ãããã¼ã¿ããµã¼ãã¼å´ã«å±ããã¨ãã«ã¯ã飿³é
å以å¤ã®æ¹æ³ã§è§£æãã¦ã interest
ã®å¤ãæã¤å¤ããæå¾ã®å¤ã ãã§ãªããã¹ã¦æ¾ãå¿
è¦ãããã¾ãã Python ã使ç¨ããããæ¹ã¨ãã¦ã¯ãä¾ãã°ãåä¸ã®ãµã¼ãã¼å´ã®å¤æ°ã§è¤æ°ã®ãã§ãã¯ããã¯ã¹ãæ±ããåç
§ãã¦ãã ããã
ãã§ãã¯ããã¯ã¹ãæ¢å®ã§ãã§ãã¯ç¶æ
ã«ããã«ã¯ã checked
屿§ãè¨å®ããã ãã§ããæ¬¡ã®ä¾ãè¦ã¦ãã ããã
<fieldset>
<legend>é¢å¿ããããã®ãé¸ãã§ãã ãã</legend>
<div>
<input type="checkbox" id="coding" name="interest" value="coding" checked />
<label for="coding">ã³ã¼ãã£ã³ã°</label>
</div>
<div>
<input type="checkbox" id="music" name="interest" value="music" />
<label for="music">鳿¥½</label>
</div>
</fieldset>
ãã§ãã¯ããã¯ã¹ã®å½ããå¤å®é åãåºãã
ä¸è¨ã®ä¾ã§ã¯ããã§ãã¯ããã¯ã¹èªèº«ã¨åæ§ã«ãé¢é£ãã <label>
è¦ç´ ãã¯ãªãã¯ããã¨ãã§ãã¯ããã¯ã¹ãåãæ¿ãããããã¨ã«æ°ã¥ããããããã¾ããããã㯠HTML ãã©ã¼ã ã®ã©ãã«ã®æ¬å½ã«ä¾¿å©ãªæ©è½ã§ãç¹ã«ã¹ãã¼ããã©ã³ã®ãããªç»é¢ã®å°ãã端æ«ã§ãªãã·ã§ã³ãã¯ãªãã¯ãããããªãã¾ãã
ããããã©ã¼ã ã« <label>
è¦ç´ ãé©åã«è¨å®ãããã¢ã¯ã»ã·ããªãã£ä»¥å¤ã®ããä¸ã¤ã®çç±ã§ãã
ãã§ãã¯ããã¯ã¹ã¯æªæ±ºå® (indeterminate) ç¶æ
ã«ãããã¨ãã§ãã¾ãããã㯠JavaScript ãã HTMLInputElement
ãªãã¸ã§ã¯ãã® indeterminate
ããããã£ã使ç¨ãã¦è¨å®ãã¾ãï¼HTML ã®å±æ§ã使ç¨ãã¦è¨å®ãããã¨ã¯ã§ãã¾ããï¼ã
inputInstance.indeterminate = true;
indeterminate
ã true
ã§ããå ´åãå¤ãã®ãã©ã¦ã¶ã¼ã§ã¯ããã§ãã¯ããã¯ã¹ã«ã¯ããã¯ã¹å
ã«ãã§ãã¯ã®ä»£ããã«æ°´å¹³ç·ï¼ãã¤ãã³ããã¤ãã¹è¨å·ã®ããã«è¦ãããã®ï¼ãå¼ããã¾ãã
ã¡ã¢: ããã¯ç´ç²ã«è¦è¦çãªå¤æ´ã§ãããã§ãã¯ããã¯ã¹ã® value
ããã©ã¼ã éä¿¡ã«ä½¿ç¨ããã¦ãããã©ããã«ã¯å½±é¿ãã¾ããããã㯠checked
ã®ç¶æ
ã«ãã£ã¦æ±ºå®ããã indeterminate
ã®ç¶æ
ã¨ã¯é¢ä¿ããã¾ããã
ãã®ããããã£ã使ç¨ããæ©ä¼ã¯å¤ãããã¾ãããæãããããä¾ã§ã¯ããã§ãã¯ããã¯ã¹ãè¤æ°ã®ãµããªãã·ã§ã³ï¼ãã§ãã¯ããã¯ã¹ï¼ããçµ±æ¬ããã¦ããå ´åã§ãããã¹ã¦ã®ãµããªãã·ã§ã³ããã§ãã¯ãããã¨ããçµ±æ¬ãã¦ãããã§ãã¯ããã¯ã¹ããã§ãã¯ããããã¹ã¦ã®ãã§ãã¯ããã¯ã¹ã®ãã§ãã¯ãå¤ããã¨ããçµ±æ¬ãã¦ãããã§ãã¯ããã¯ã¹ããã§ãã¯ãå¤ãã¾ãã1 ã¤ä»¥ä¸ã®ãµããªãã·ã§ã³ãä»ã¨ã¯ç°ãªãç¶æ ã«ããã¨ããçµ±æ¬ãã¦ãããã§ãã¯ããã¯ã¹ã¯æªæ±ºå®ã®ç¶æ ã«ãªãã¾ãã
ããã¯ä»¥ä¸ã®ä¾ã«è¦ããã¾ãï¼ãã®çºæ³ã¯ CSS Tricks ã®ãããã§ãï¼ããã®ä¾ã§ã¯ãè£½ä½æé ã®ããã«åéããææã追跡ãã¦ãã¾ããææã®ãã§ãã¯ããã¯ã¹ããªã³ã¾ãã¯ãªãã«ããã¨ã JavaScript ã®é¢æ°ã¯ãã§ãã¯ãããææã®ç·æ°ããã§ãã¯ãã¾ãã
indeterminate
ã«è¨å®ããã¾ããchecked
ã«è¨å®ããã¾ããã§ããããã®å ´åã¯ãææãéãå§ãã¦ãããã®ã®ã製ä½ã宿ãã¦ããªãç¶æ
ã« indeterminate
ã使ããã¾ãã
const overall = document.querySelector("#enchantment");
const ingredients = document.querySelectorAll("ul input");
overall.addEventListener("click", (e) => {
e.preventDefault();
});
for (const ingredient of ingredients) {
ingredient.addEventListener("click", updateDisplay);
}
function updateDisplay() {
let checkedCount = 0;
for (const ingredient of ingredients) {
if (ingredient.checked) {
checkedCount++;
}
}
if (checkedCount === 0) {
overall.checked = false;
overall.indeterminate = false;
} else if (checkedCount === ingredients.length) {
overall.checked = true;
overall.indeterminate = false;
} else {
overall.checked = false;
overall.indeterminate = true;
}
}
æ¤è¨¼
ãã§ãã¯ããã¯ã¹ã¯æ¤è¨¼ï¼ãã¹ã¦ã® <input>
ã«å¯¾ãã¦è¡ãããï¼ã«å¯¾å¿ãã¦ãã¾ããããããå¤ãã®å ´å ValidityState
ã¯å¸¸ã« false
ã«ãªãã¾ãããã§ãã¯ããã¯ã¹ã« required
屿§ãããå ´åã§ããã§ãã¯ããã¦ããªãå ´åã ValidityState.valueMissing
ã true
ã«ãªãã¾ãã
次ã®ä¾ã¯ãä¸ã§è¦ããè¤æ°ã®ãã§ãã¯ããã¯ã¹ãã®æ¡å¼µçã§ããããæ¨æºçãªãªãã·ã§ã³ã¨ããã§ãã¯ãããã¨ãã«ããã®ä»ããªãã·ã§ã³ã®å¤ãå
¥åããå
¥åæ¬ã表示ãããããã®ä»ããã§ãã¯ããã¯ã¹ãããã¾ãããã㯠JavaScript ã®çããããã¯ã§å®ç¾ãã¾ãããã®ä¾ã§ã¯ã<input>
ãç´æ¥ <label>
ã®ä¸ã«ãããæé»ã®ã©ãã«ãå«ãã§ãã¾ããç®ã«è¦ããã©ãã«ã®ãªãããã¹ãå
¥åã¯ãaria-label
ãæå®ããã¨ãæå®ãããã¢ã¯ã»ã¹å¯è½ãªååãæä¾ãããã¨ãã§ãã¾ãããã®ä¾ã§ã¯ãã¹ã¿ã¤ã«è¨å®ãæ¹åããããã«ããã¤ãã® CSS ãè¨è¼ãã¦ãã¾ãã
<form>
<fieldset>
<legend>èå³ã®ãããã®ã鏿ãã¦ãã ãã</legend>
<div>
<label>
<input type="checkbox" id="coding" name="interest" value="coding" />
ã³ã¼ãã£ã³ã°
</label>
</div>
<div>
<label>
<input type="checkbox" id="music" name="interest" value="music" />
鳿¥½
</label>
</div>
<div>
<label>
<input type="checkbox" id="art" name="interest" value="art" />
ç¾è¡
</label>
</div>
<div>
<label>
<input type="checkbox" id="sports" name="interest" value="sports" />
ã¹ãã¼ã
</label>
</div>
<div>
<label>
<input type="checkbox" id="cooking" name="interest" value="cooking" />
æç
</label>
</div>
<div>
<label>
<input type="checkbox" id="other" name="interest" value="other" />
ãã®ä»
</label>
<input
type="text"
id="otherValue"
name="other"
aria-label="Other interest" />
</div>
<div>
<button type="submit">ãã©ã¼ã ãéä¿¡</button>
</div>
</fieldset>
</form>
CSS
html {
font-family: sans-serif;
}
form {
width: 600px;
margin: 0 auto;
}
div {
margin-bottom: 10px;
}
fieldset {
background: cyan;
border: 5px solid blue;
}
legend {
padding: 10px;
background: blue;
color: cyan;
}
JavaScript
const otherCheckbox = document.querySelector("#other");
const otherText = document.querySelector("#otherValue");
otherText.style.visibility = "hidden";
otherCheckbox.addEventListener("change", () => {
if (otherCheckbox.checked) {
otherText.style.visibility = "visible";
otherText.value = "";
} else {
otherText.style.visibility = "hidden";
}
});
æè¡çæ¦è¦ 仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
:checked
, :indeterminate
: CSS ã®ã»ã¬ã¯ã¿ã¼ã§ãç¾å¨ã®ç¶æ
ã«åºã¥ãã¦ãã§ãã¯ããã¯ã¹ãæ´å½¢ã§ãã¾ãHTMLInputElement
: HTML DOM API ã«ãã㦠<input>
è¦ç´ ãå®è£
ãã¦ãããã®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