ãã©ã¼ã ã¸ã®é«åº¦ãªã¹ã¿ã¤ã«è¨å®
ãã®è¨äºã§ã¯ãã¹ã¿ã¤ã«è¨å®ãããé£ããããä¸è¯ãã壿ªãã«åé¡ããã種é¡ã®ãã©ã¼ã ã³ã³ããã¼ã«ã«ã¹ã¿ã¤ã«è¨å®ããããã«ãCSS ã§ä½ãã§ããããè¦ã¦ããã¾ããåã®è¨äºã§è¦ãããã«ãããã¹ããã£ã¼ã«ãããã¿ã³ã§ã® CSS 使ç¨ã¯ã¾ã£ããåé¡ãããã¾ãããããããã¯ãããåé¡ã®ããé¨åã®ã¹ã¿ã¤ã«è¨å®ãæãä¸ãã¾ãã
| åææ¡ä»¶: | HTML ããã³ CSS ã«å¯¾ããåºæ¬çãªçè§£ã |
|---|---|
| ç®ç: | ãã©ã¼ã ã®ã©ã®é¨åãã¹ã¿ã¤ã«è¨å®ããã®ãé£ããã®ããã¾ããªããªã®ããçè§£ããããããã«ã¹ã¿ãã¤ãºããã®ã«ä½ãã§ããããå¦ã¶ã |
å§ããåã«ã2 種é¡ã® HTML ãã©ã¼ã ã¦ã£ã¸ã§ããã«ã¤ãã¦ãããããã¾ãããã
ä¸è¯: ã¹ã¿ã¤ã«ã®è¨å®ãé£ããè¤éãªããªãã¯ãå¿ è¦ã§ãããæã« CSS ã®é«åº¦ãªç¥èãå¿ è¦ã§ããè¦ç´ ã§ãã
- ãã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³
<input type="search">
壿ª: ä¸é¨ã®è¦ç´ 㯠CSS ã§ã¹ã¿ã¤ã«è¨å®ã§ãã¾ãããä¾ãã°ä»¥ä¸ã®ãã®ã§ãã
- ãããããã¦ã³ã¦ã£ã¸ã§ããã使ããè¦ç´ ã
<select>,<option>,<optgroup>,<datalist>ãå«ã <input type="color"><input type="datetime-local">ã®ãããªæ¥ä»é¢é£ã³ã³ããã¼ã«<input type="range"><input type="file"><progress>ããã³<meter>
æåã« appearance ããããã£ã«ã¤ãã¦èª¬æãã¾ããããã¯ä¸è¨ã®ãã¹ã¦ãããã¹ã¿ã¤ã«ä»ãã§ããããã«ããããã«ããªãæç¨ãªããããã£ã§ãã
appearance: OS ã¬ãã«ã®ã¹ã¿ã¤ã«å¶å¾¡
åã®è¨äºã§ã¯æ´å²çã«ãã¦ã§ããã©ã¼ã ã®ã¹ã¿ã¤ã«è¨å®ã¯ OS ã§è¡ããã¦ãããããããã®ã³ã³ããã¼ã«ã®è¦ãç®ã®ã«ã¹ã¿ãã¤ãºã®åé¡ã®ä¸é¨ã¨ãªã£ã¦ãã¾ããã
appearance ããããã£ã¯ OS ãã·ã¹ãã ã¬ãã«ã§ã¦ã§ããã©ã¼ã ã®ã¹ã¿ã¤ã«è¨å®ãå¶å¾¡ããæ¹æ³ã¨ãã¦ä½æããã¾ãããæãæç¨ãªå¤ã¯ãããããå¯ä¸ä½¿ç¨ãããã¨ã«ãªãã§ããã none ã§ããããã¯é©ç¨ããã³ã³ããã¼ã«ãã·ã¹ãã ã¬ãã«ã®ã¹ã¿ã¤ã«ã使ç¨ãããã¨ãå¯è½ãªéãæ¢ãã CSS ã使ç¨ãã¦èªåã§ã¹ã¿ã¤ã«ãæ§ç¯ã§ããããã«ãã¾ãã
ä¾ãã°ã次ã®ã³ã³ããã¼ã«ãè¦ã¦ã¿ã¾ãããã
<form>
<p>
<label for="search">search: </label>
<input id="search" name="search" type="search" />
</p>
<p>
<label for="text">text: </label>
<input id="text" name="text" type="text" />
</p>
<p>
<label for="date">date: </label>
<input id="date" name="date" type="datetime-local" />
</p>
<p>
<label for="radio">radio: </label>
<input id="radio" name="radio" type="radio" />
</p>
<p>
<label for="checkbox">checkbox: </label>
<input id="checkbox" name="checkbox" type="checkbox" />
</p>
<p><input type="submit" value="submit" /></p>
<p><input type="button" value="button" /></p>
</form>
次㮠CSS ãé©ç¨ãã¦ã·ã¹ãã ã¬ãã«ã®ã¹ã¿ã¤ã«è¨å®ãåé¤ãã¾ãã
input {
appearance: none;
}
ä¸è¨ã®ä¾ã§ã¯ã使ãã®ã·ã¹ãã ã§ã©ã®ããã«è¦ãããã示ãã¾ããæ¢å®ã§ã¯å·¦ã§ãä¸è¨ã® CSS ãé©ç¨ãããã¨å³ã«ãªãã¾ãï¼ãã®ä»ã®ã·ã¹ãã ã§ãã¹ããããå ´åã¯ãããæ¢ãã¦ãã ããï¼ã
ããã¦ãã®å ´åãå¹æã¯æ ç·ãé¤å»ãã CSS ã§ã®ã¹ã¿ã¤ã«è¨å®ãå°ãç°¡åã«ãã¾ãããããã¯æ¬è³ªçã§ã¯ããã¾ãããããã¤ãã®å ´åãæ¤ç´¢ãã©ã¸ãªãã¿ã³/ãã§ãã¯ããã¯ã¹ã§ã¯ããã£ã¨ä¾¿å©ã§ãããããè¦ã¦ããã¾ãããã
æ¤ç´¢ããã¯ã¹ã®å¤æ´
<input type="search"> ã¯åºæ¬çã«åãªãããã¹ãå
¥åã§ããããªã appearance: none; ã便å©ãªã®ã§ãããã? çã㯠Safari ã§ã¯ãæ¤ç´¢ããã¯ã¹ã«ã¹ã¿ã¤ã«è¨å®ã®å¶éãããããã§ããä¾ãã° height ã font-size ãèªå¨ã«èª¿æ´ã§ãã¾ããã
ããã¯ãæã
ã®å人ã§ãã appearance: none; ã使ç¨ãã¦ä¿®æ£ãããã¨ãã§ãã¾ããããã¯æ¢å®ã®å¤è¦ãç¡å¹åãããã®ã§ãã
input[type="search"] {
appearance: none;
}
ä¸è¨ã®ä¾ã§ã¯ã2 ã¤ã®ã¹ã¿ã¤ã«è¨å®ãããæ¤ç´¢ããã¯ã¹ãè¦ãã¾ããå³ã®ãã®ã¯ appearance: none; ãé©ç¨ãããå·¦ã¯ããã§ããã¾ãããmacOS ã® Safari ã§è¦ãã¨å·¦ã®ãã®ã¯æ£ãããµã¤ãºã§ãªãããã«è¦ãã¾ãã
è峿·±ããã¨ã«ãæ¤ç´¢ãã£ã¼ã«ãã§ border/background ãã»ãããã¦ããã®åé¡ã解決ã§ãã¾ããä¸è¨ã®ã¹ã¿ã¤ã«è¨å®ãããæ¤ç´¢ããã¯ã¹ã¯ appearance: none; ãé©ç¨ããã¦ãã¾ããããåã®ä¾ã¨åã Safari ã®åé¡ã«æ©ã¾ããã¦ãã¾ããã
ã¡ã¢:
æ¤ç´¢ãã£ã¼ã«ãã§ã¯ã Edge 㨠Chrome ã§å
¥åããã©ã¼ã«ã¹ããã¦ããªãã¨ãã« "x" ã®åé¤ã¢ã¤ã³ã³ãæ¶ãã¾ãããSafari ã§ã¯æ®ããã¨ã«æ°ã¥ãããããã¾ãããCSS ã§æ¶ãã«ã¯ã input[type="search"]:not(:focus, :active)::-webkit-search-cancel-button { display: none; } ã使ç¨ãããã¨ãã§ãã¾ãã
ãã§ãã¯ããã¯ã¹ã¨ã©ã¸ãªãã¿ã³ã®ã¹ã¿ã¤ã«è¨å®
ãã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³ã®ã¹ã¿ã¤ã«è¨å®ã¯ãåæè¨å®ã®ã¾ã¾ã§ã¯åä»ã§ãããã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³ã®ãµã¤ãºã¯åæè¨å®ã®ã¾ã¾ã§ã¯å¤æ´ã§ããªãããã«ãªã£ã¦ãã¾ããã夿´ãããã¨ããã¨ãã©ã¦ã¶ã¼ã®åå¿ãã¨ã¦ãç°ãªãã¾ãã
ä¾ãã°ãã·ã³ãã«ãªãã¹ãã±ã¼ã¹ãèãã¦ã¿ã¾ãã
<label
><span><input type="checkbox" name="q5" value="true" /></span> True</label
>
<label
><span><input type="checkbox" name="q5" value="false" /></span> False</label
>
span {
display: inline-block;
background: red;
}
input[type="checkbox"] {
width: 100px;
height: 100px;
}
ãã©ã¦ã¶ã¼ã«ãã£ã¦ãã§ãã¯ããã¯ã¹ã¨ã¹ãã³ã®æ±ãã¯ç°ãªã£ã¦ãããå¤ãã¯å£æªãªãã®ã§ãã
| ãã©ã¦ã¶ã¼ | æç»çµæ |
|---|---|
| Firefox 71 (macOS) | ![]() |
| Firefox 57 (Windows 10) | ![]() |
| Chrome 77 (macOS), Safari 13, Opera | ![]() |
| Chrome 63 (Windows 10) | ![]() |
| Edge 16 (Windows 10) | ![]() |
ã©ã¸ãªãã¿ã³/ãã§ãã¯ããã¯ã¹ã§ appearance: none ã使ã
ããã¾ã§è¦ã¦ããããã«ããã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³ã®æ¢å®ã®è¦ãç®ã appearance: none; ã§åé¤ã§ãã¾ãããã® HTML ã®ä¾ãè¦ã¦ã¿ã¾ãããã
<form>
<fieldset>
<legend>æç©ã®å¥½ã¿</legend>
<p>
<label>
<input type="checkbox" name="fruit" value="cherry" />
I like cherry
</label>
</p>
<p>
<label>
<input type="checkbox" name="fruit" value="banana" disabled />
I can't like banana
</label>
</p>
<p>
<label>
<input type="checkbox" name="fruit" value="strawberry" />
I like strawberry
</label>
</p>
</fieldset>
</form>
ãã¦ãããããç¬èªã®ãã§ãã¯ããã¯ã¹ãã¶ã¤ã³ã§ã¹ã¿ã¤ã«è¨å®ãã¾ããããå ã®ãã§ãã¯ããã¯ã¹ã®ã¹ã¿ã¤ã«ãè§£é¤ãããã¨ããå§ãã¾ãããã
input[type="checkbox"] {
appearance: none;
}
:checked 㨠:disabled æ¬ä¼¼ã¯ã©ã¹ã使ç¨ãã¦ãç¶æ
ã®å¤åã«åããã¦ã«ã¹ã¿ã ãã§ãã¯ããã¯ã¹ã®å¤è¦³ã夿´ãã¾ãã
input[type="checkbox"] {
position: relative;
width: 1em;
height: 1em;
border: 1px solid gray;
/* Adjusts the position of the checkboxes on the text baseline */
vertical-align: -2px;
/* Set here so that Windows' High-Contrast Mode can override */
color: green;
}
input[type="checkbox"]::before {
content: "â";
position: absolute;
font-size: 1.2em;
right: -1px;
top: -0.3em;
visibility: hidden;
}
input[type="checkbox"]:checked::before {
/* Use `visibility` instead of `display` to avoid recalculating layout */
visibility: visible;
}
input[type="checkbox"]:disabled {
border-color: black;
background: #ddd;
color: gray;
}
ããããæ¬ä¼¼ã¯ã©ã¹ãªã©ã¯ã次ã®è¨äºã§è¦ã¤ãããã¾ãããä¸è¨ã¯æ¬¡ã®ãã¨ããã¦ãã¾ãã
:checkedâ ãã§ãã¯ããã¯ã¹ (ãã©ã¸ãªãã¿ã³) ããã§ãã¯ãããç¶æ ã«ããã¾ã â ã¦ã¼ã¶ã¼ãã¯ãªãã¯/æå¹åãã¦ãã¾ãã:disabledâ ãã§ãã¯ããã¯ã¹ (ãã©ã¸ãªãã¿ã³) ãç¡å¹ãªç¶æ ã«ããã¾ã â æä½ãããã¨ãã§ãã¾ããã.
å®éã®çµæã表示ããã¾ãã
ã¾ããããå¤ãã®ã¢ã¤ãã¢ãæä¾ããããã«ãä»ã®ä¾ãããã¤ã使ãã¦ãã¾ãã
- Styled radio buttons: ã«ã¹ã¿ã ã©ã¸ãªãã¿ã³ã¹ã¿ã¤ã«è¨å®ã
- Toggle switch example: ãã°ã«ã¹ã¤ããã®ãããªãã§ãã¯ããã¯ã¹ã
appearance ã«å¯¾å¿ãã¦ããªããã©ã¦ã¶ã¼ã§ããããã®ãã§ãã¯ããã¯ã¹ã表示ã§ãã¾ããã«ã¹ã¿ã ãã¶ã¤ã³ã¯å¤±ããã¾ããããã§ãã¯ããã¯ã¹ã®ã¾ã¾ã«è¦ãã¦ä½¿ç¨ã§ãã¾ãã
ã壿ªãè¦ç´ ã«ä½ãã§ããã
ä»åº¦ã¯ã壿ªãã³ã³ããã¼ã«ã«æ³¨ç®ãã¾ããããããã¯å®å
¨ã«ã¹ã¿ã¤ã«è¨å®ããã®ãæ¬å½ã«é£ãããã®ã§ããç°¡åã«ããã¨ãããã¯ãããããã¦ã³ããã¯ã¹ã color ã datetime-local ã®ãããªè¤åã³ã³ããã¼ã«åã <progress> ã <meter> ã®ãããªã³ã³ããã¼ã«å¿åã®ãã£ã¼ãããã¯ã§ãã
åé¡ã¯ãè¦ç´ ã¯ãã©ã¦ã¶ã¼å士ã§ãããããªæ¢å®ã®è¦ãç®ããã£ã¦ãããã«ã¹ã¿ã¤ã«è¨å®ã§ãã¦ããå é¨ã®ããã¤ãã¯ã¹ã¿ã¤ã«è¨å®ã§ããªããã¨ã§ãã
ã«ãã¯ï¼ãã£ã¼ã«ã®éããåãå ¥ããè¦æãããã°ããµã¤ãºå¤æ´ãä¸è²«ãããã®ã«ããããã®ã·ã³ãã«ãªã¹ã¿ã¤ã«è¨å®ãã background-color ã®ãããªåä¸ã¹ã¿ã¤ã«è¨å®ãã·ã¹ãã ã¬ãã«ã®ã¹ã¿ã¤ã«è¨å®ãé¤å»ã§ãã appearance ã®ä½¿ç¨ãªã©ã§éãããã¨ãã§ãã¾ãã
ä¾ãè¦ã¦ã¿ã¾ããããããããã®ã壿ªããªãã©ã¼ã æ©è½ãã¤ãã¤ãã«è¡¨ç¤ºãã¦ãã¾ãã
ãã®ä¾ã§ã¯ä¸è¨ã® CSS ãé©ç¨ãã¦ãã¾ãã
body {
font-family: "Josefin Sans", sans-serif;
margin: 20px auto;
max-width: 400px;
}
form > div {
margin-bottom: 20px;
}
select {
appearance: none;
width: 100%;
height: 100%;
}
.select-wrapper {
position: relative;
}
.select-wrapper::after {
content: "â¼";
font-size: 1rem;
top: 3px;
right: 10px;
position: absolute;
}
button,
label,
input,
select,
progress,
meter {
display: block;
font-family: inherit;
font-size: 100%;
margin: 0;
box-sizing: border-box;
width: 100%;
padding: 5px;
height: 30px;
}
input[type="text"],
input[type="datetime-local"],
input[type="color"],
select {
box-shadow: inset 1px 1px 3px #ccc;
border-radius: 5px;
}
label {
margin-bottom: 5px;
}
button {
width: 60%;
margin: 0 auto;
}
ã¡ã¢: 夿°ã®ãã©ã¦ã¶ã¼ã§åæã«ãã®ä¾ããã¹ããããå ´åãã©ã¤ãçãããã§è¦ã¤ãã¦ãã ãã (ã½ã¼ã¹ã³ã¼ããè¦ã¦ãã ãã)ã
ã¾ã JavaScript ããã¼ã¸ã«è¿½å ãã¦ã³ã³ããã¼ã«èªèº«ã®ä¸ã«ãããã¡ã¤ã«ããã«ã¼èªèº«ã§é¸æããããã¡ã¤ã«ãä¸è¦§ãã¦ããã®ãå¿ã«çãã¦ããã¦ãã ããããã㯠<input type="file"> ãªãã¡ã¬ã³ã¹ãã¼ã¸ã®ä¾ãç°¡åã«ãããã¼ã¸ã§ã³ã§ãã
è¦ã¦ã®éããæè¿ã®ãã©ã¦ã¶ã¼ã§ã¯çµ±ä¸ãããå¤è¦ã確ä¿ãããã¨ãã§ãã¾ããã
åã®è¨äºã§è¿°ã¹ãããã«ããã¹ã¦ã®ã³ã³ããã¼ã«ã¨ãã®ã©ãã«ã«ã°ãã¼ãã«ãªæ£è¦å CSS ãé©ç¨ãã¦ãåããµã¤ãºã«ãªãããã«ãã親ãã©ã³ããæ¡ç¨ãããªã©ã®å·¥å¤«ããã¦ãã¾ãã
button,
label,
input,
select,
progress,
meter {
display: block;
font-family: inherit;
font-size: 100%;
margin: 0;
box-sizing: border-box;
width: 100%;
padding: 5px;
height: 30px;
}
ã³ã³ããã¼ã«ã«çµ±ä¸ããå½±ã¨è§ä¸¸ãä¸ãã¦ãæå³ã®ããããã«ãã¾ãã
input[type="text"],
input[type="datetime-local"],
input[type="color"],
select {
box-shadow: inset 1px 1px 3px #ccc;
border-radius: 5px;
}
ç¯å²ããããã°ã¬ã¹ãã¼ããã¡ã¼ã¿ã¼ã¯ã³ã³ããã¼ã«ã¨ãªã¢ã®å¨ãã«ç¾ãããªãããã¯ã¹ãã§ããã ããªã®ã§ãæå³ã¯ããã¾ããã
ãããã®ã³ã³ããã¼ã«ã¿ã¤ãããããã®ä»æ§ã¨ããã¤ã©ã¤ãã®é£ãããããããã話ããã¾ãããã
select ã¨ãã¼ã¿ãªã¹ã
ç¾ä»£ã®ãã©ã¦ã¶ã¼ã§ã¯ãselect ã¨ãã¼ã¿ãªã¹ãã¯ä¸è¬çã«ãæ¢å®ã®ãã®ããã«ãã¯ï¼ãã£ã¼ã«ã大ããå¤ããããªãããã«ã¹ã¿ã¤ã«è¨å®ããå ´åã¯ãæªããªããã®ã§ãã
ããã¾ã§ãããã¯ã¹ã®åºæ¬çãªè¦ãç®ãããªãåä¸ã§ä¸è²«æ§ã®ãããã®ã«ãã¦ãã¾ãããã¨ã«ãããã¼ã¿ãªã¹ãã³ã³ããã¼ã«ã¯ <input type="text"> ãªã®ã§ãåé¡ã«ãªããªããã¨ãããã£ã¦ãã¾ãã
2 ã¤ã®ãã®ãå¤å°åé¡ãã¯ããã§ãã¾ããã¾ãæåã«ã select ããããããã¦ã³ã§ãããã¨ã示ã "ç¢å°" ã¢ã¤ã³ã³ã¯ããã©ã¦ã¶ã¼ã«ãã£ã¦ç°ãªãã¾ããã¾ã select ããã¯ã¹ã®ãµã¤ãºãå¢ããããã夿´ãããããã¨ãéããªããã¡ã§ãããããä¿®æ£ãããããä¾ã§ã¯æåã«æ§åã® appearance: none ã使ã£ã¦ã¢ã¤ã³ã³ãé¤å»ãã¦ãã¾ãã
select {
appearance: none;
}
次ã«çæãããã³ã³ãã³ãã使ã£ã¦ç¬èªã®ã¢ã¤ã³ã³ã使ãã¾ããã³ã³ããã¼ã«ã®å¨ãã«ç¹å¥ãªã©ããã¼ãç½®ãã¾ãããããã¯::before/::after ã <select> è¦ç´ ã§ã¯åä½ããªãããã§ãï¼ããã¯ã³ã³ãã³ããå®å
¨ã«ãã©ã¦ã¶ã¼ã«ãã£ã¦å¶å¾¡ããã¦ããããã§ãï¼ã
<label for="select">Select a fruit</label>
<div class="select-wrapper">
<select id="select" name="select">
<option>Banana</option>
<option>Cherry</option>
<option>Lemon</option>
</select>
</div>
次ã«çæãããã³ã³ãã³ãã使ã£ã¦å°ããªä¸åãç¢å°ãä½ããæ£ããå ´æã«é ç½®ãã¾ãã
.select-wrapper {
position: relative;
}
.select-wrapper::after {
content: "â¼";
font-size: 1rem;
top: 6px;
right: 10px;
position: absolute;
}
2 ã¤ç®ã®ãããå°ãéè¦ãªåé¡ã¯ã <select> ããã¯ã¹ãã¯ãªãã¯ãã¦éããã¨ãã«ç¾ããã鏿è¢ã®å
¥ã£ãããã¯ã¹ãæä½ãããã¨ãã§ããªããã¨ã§ãã親è¦ç´ ã«è¨å®ããã¦ãããã©ã³ããç¶æ¿ãããã¨ã¯ã§ãã¾ãããééãè²ãªã©ãè¨å®ãããã¨ã¯ã§ãã¾ããã <datalist> ã§ç¾ããèªåè£å®ãªã¹ããåæ§ã§ãã
æ¬å½ã«é¸æè¢ãã¹ã¿ã¤ã«è¨å®ããå¿
è¦ãããå ´åãã«ã¹ã¿ã ã³ã³ããã¼ã«ãçæããã©ã¤ãã©ãªã¼ã使ç¨ããããç¬èªã®ã«ã¹ã¿ã ã³ã³ããã¼ã«ã使ãããã®ã©ã¡ãããå¿
è¦ã§ãããã㯠multiple 屿§ã使ã select ã®å ´åãããã¯ãã¼ã¸ä¸ã«åºã¦ãããã¹ã¦ã®é¸æè¢ã使ãããã®ç¹æ®ãªåé¡ãé¿ãããã¨ãã§ãã¾ãã
<label for="select">Select fruits</label>
<select id="select" name="select" multiple>
â¦
</select>
ãã¡ããããã§ãé²ãã¦ãããã¶ã¤ã³ã«ã¯åããªãå¯è½æ§ãããã¾ãããæ³¨ç®ã«å¤ãã¾ãã
æ¥ä»å ¥åå
æ¥ä»/æéã®å
¥åå (datetime-local, time, week, month) ã«ã¯ãã¹ã¦åãé大ãªé¢é£ããåé¡ãããã¾ããå®éã®ããã¯ã¹ã¯ãããã¹ãå
¥åã¨åæ§ã«ç°¡åã«ã¹ã¿ã¤ã«ãè¨å®ãããã¨ãã§ãããã®ãã¢ã§ã¯ãã¾ã表示ããã¦ãã¾ãã
ããããã³ã³ããã¼ã«ã®å
é¨é¨åï¼æ¥ä»ãããã¯ã¢ããããã®ã«ä½¿ããããã¢ããã«ã¬ã³ãã¼ãå¤ã墿¸ããã¹ããã¼ãªã©ï¼ã¯ã¾ã£ããã¹ã¿ã¤ã«è¨å®ã§ããã appearance: none; ã使ã£ã¦ãã¹ã¿ã¤ã«ãé¤å»ã§ãã¾ãããã¹ã¿ã¤ã«è¨å®ãå®å
¨ã«å¶å¾¡ããå¿
è¦ãããå ´åã¯ãã«ã¹ã¿ã ã³ã³ããã¼ã«ãçæããã©ã¤ãã©ãªã¼ã使ãããèªåã§ä½ããªããã°ãªãã¾ããã
ã¡ã¢:
ããã§ã<input type="number"> ã¯è§¦ãã価å¤ãããã¾ãããããã¾ããå¤ãå¢å /æ¸å°ãããããã«ä½¿ç¨ãããã¨ãã§ããã¹ããã¼ãããã®ã§ãåãåé¡ã«æ©ã¾ãããå¯è½æ§ãããã¾ãããããã number åã®å ´åãåéãããã¼ã¿ã¯ããåç´ã§ã代ããã« tel å
¥ååã使ç¨ããã®ãç°¡åã§ãããã㯠text ã®ãããªå¤è¦³ã§ãããã¿ãããã¼ãã¼ããæè¼ããæ©å¨ã§ã¯ãã³ãã¼ã表示ãããã¨ãã§ãã¾ãã
Range å ¥åå
<input type="range"> ã¯ã¹ã¿ã¤ã«è¨å®ãå°é£ã§ãã以ä¸ã®ããã«ä½¿ç¨ãããã¨ã§ãæ¢å®å¤ã®ã¹ã©ã¤ãã¼ãã©ãã¯ãå®å
¨ã«åé¤ããã«ã¹ã¿ã ã¹ã¿ã¤ã«ï¼ãã®ä¾ã§ã¯ãç´°ã赤ã®ãã©ãã¯ï¼ã«ç½®ãæãããã¨ãã§ãã¾ãã
input[type="range"] {
appearance: none;
background: red;
height: 2px;
padding: 0;
outline: 1px solid transparent;
}
ãããã range ã³ã³ããã¼ã«ã®ãã©ãã°ãã³ãã«ã®ã¹ã¿ã¤ã«ãã«ã¹ã¿ãã¤ãºãããã¨ã¯ã¨ã¦ãå°é£ã§ãã range ã®ã¹ã¿ã¤ã«ãå®å ¨ã«æä½ããããã«ã¯ãè¤æ°ã®éæ¨æºçã§ãã©ã¦ã¶ã¼ç¹æã®æ¬ä¼¼è¦ç´ ãå«ããè¤é㪠CSS ã³ã¼ãã使ç¨ããå¿ è¦ãããã¾ãã Styling Cross-Browser Compatible Range Inputs with CSS ã§å¿ è¦ãªãã®ãç´°ããæ¸ãããã® CSS ããªãã¯ã確èªãã¾ãã
color å ¥åå
color åã®å ¥åã³ã³ããã¼ã«ã¯æªããã®ã§ã¯ããã¾ããã対å¿ãã¦ãããã©ã¦ã¶ã¼ã§ã¯ãå°ããªå¢çç·ä»ãã®ç¡å°ã®ãããã¯ã表示ãããã ãã§ãã
å¢çç·ãåé¤ãã¦ãè²ã®ãããã¯ã ãã«ããã«ã¯ã次ã®ããã«ãã¾ãã
input[type="color"] {
border: 0;
padding: 0;
}
ãããã大ããå¤ãã£ããã®ãå¾ãã«ã¯ãã«ã¹ã¿ã ã½ãªã¥ã¼ã·ã§ã³ãå¯ä¸ã®æ¹æ³ã§ãã
ãã¡ã¤ã«å ¥åå
ãã¡ã¤ã«å ¥ååã¯é常㯠OK ã§ããä¾ã§è¦ã¦ããããã«ããã¼ã¸ã®æ®ãã®é¨åã«åé¡ãªããã£ããããä½ããä½ãã®ã¯ã¨ã¦ãç°¡åã§ããã³ã³ããã¼ã«ã®ä¸é¨åã§ãããåºåè¡ã¯ãå ¥åã«ããæç¤ºãã¦ããå ´åã¯è¦ªã®ãã©ã³ããç¶æ¿ãã¦ãã«ã¹ã¿ã ãªã¹ãã«ååããµã¤ãºãã好ã¿ã§ã¹ã¿ã¤ã«è¨å®ã§ãã¾ããçµå±ã¯ä½ã£ã¦ã¿ã¾ããã
ãã¡ã¤ã«ããã«ã¼ã®å¯ä¸ã®åé¡ã¯ããã¡ã¤ã«ããã«ã¼ãéãããã«æ¼ããã¿ã³ãããµã¤ãºãè²ã夿´ã§ãããç°ãªããã©ã³ããåãå ¥ãããããå®å ¨ã«ã¹ã¿ã¤ã«è¨å®ãä¸å¯è½ã§ãããã¨ã§ãã
ãããåé¿ããä¸ã¤ã®æ¹æ³ã¯ããã©ã¼ã ã³ã³ããã¼ã«ã«é¢é£ä»ããããã©ãã«ãããå ´åããã®ã©ãã«ãã¯ãªãã¯ããã¨ã³ã³ããã¼ã«ãæå¹ã«ãªããã¨ãå©ç¨ãããã¨ã§ããããã§ã次ã®ãããªæ¹æ³ã§å®éã®ãã©ã¼ã å ¥åãé表示ã«ãããã¨ãã§ãã¾ãã
input[type="file"] {
height: 0;
padding: 0;
opacity: 0;
}
次ã«ãã¿ã³ã®ããã«åä½ããã©ãã«ãã¹ã¿ã¤ã«è¨å®ãããã®ã©ãã«ãæ¼ãããæã«ãã¡ã¤ã«ããã«ã¼ãæå¾ éãéãããã«ãã¾ãã
label[for="file"] {
box-shadow: 1px 1px 3px #ccc;
background: linear-gradient(to bottom, #eee, #ccc);
border: 1px solid rgb(169 169 169);
border-radius: 5px;
text-align: center;
line-height: 1.5;
}
label[for="file"]:hover {
background: linear-gradient(to bottom, #fff, #ddd);
}
label[for="file"]:active {
box-shadow: inset 1px 1px 3px #ccc;
}
ä¸è¨ã® CSS ã¹ã¿ã¤ã«è¨å®ã®çµæã¯ãä¸è¨ã®ã©ã¤ãå®è¡ã®ä¾ã§è¦ããã¨ãã§ãã¾ãï¼styled-file-picker.html ã®ã©ã¤ãã¨ãã½ã¼ã¹ã³ã¼ããè¦ã¦ãã ããï¼ã
meter ã¨ããã°ã¬ã¹ãã¼
<meter> 㨠<progress> ã¯å¤ãã®ä¸ã§ææªããããã¾ãããå
ã»ã©ã®ä¾ã§è¦ãããã«ãå¹
ã¯æ¯è¼ç叿éãã«è¨å®ãããã¨ãã§ãã¾ãããããããã以ä¸ã«ãã©ã®ãããªæ¹æ³ã§ãã¹ã¿ã¤ã«ãè¨å®ãããã¨ã¯æ¬å½ã«å°é£ã§ããã¾ããèæ¯ã«ã¯è²ãã¤ãããã¨ãã§ãã¾ãããåé¢ã®ãã¼ã«ã¯è²ãã¤ãããã¨ãã§ãã¾ãããã appearance: none ãè¨å®ããã¨ãè¯ããªãã©ãããæªåãã¦ãã¾ãã¾ãã
ã¹ã¿ã¤ã«è¨å®ãå¶å¾¡ãããå ´åã¯ããã®æ©è½ã®ã«ã¹ã¿ã ã½ãªã¥ã¼ã·ã§ã³ãä½ã£ãããprogressbar.js ã®ãããªãµã¼ããã¼ãã£ã®ã½ãªã¥ã¼ã·ã§ã³ã使ã£ããããæ¹ãç°¡åã§ãã
ã«ã¹ã¿ã ãã©ã¼ã ã³ã³ããã¼ã«ã®ä½ææ¹æ³ã®è¨äºã«ã¯ãHTMLãCSSãJavaScript ãç¨ããç¬èªãã¶ã¤ã³ã®é¸æãã£ã¼ã«ããæ§ç¯ããæ¹æ³ã®ä¾ãããã¾ãã
ã¾ã¨ã
HTML ãã©ã¼ã ã§ CSS ã使ç¨ããã®ã¯ã¾ã å°é£ã§ããããã°ãã°ããããåé¿ããæ¹æ³ãããã¾ããã¯ãªã¼ã³ã§ã¦ããã¼ãµã«ãªè§£æ±ºæ¹æ³ã¯ããã¾ããããææ°ã®ãã©ã¦ã¶ã¼ã§ã¯æ°ããå¯è½æ§ãããã¾ããä»ã®ã¨ãããæè¯ã®è§£æ±ºçã¯ãHTML ãã©ã¼ã ã¦ã£ã¸ã§ããã«é©ç¨ãããã¨ãã«ç°ãªããã©ã¦ã¶ã¼ã CSS ããµãã¼ãããæ¹æ³ã®è©³ç´°ãå¦ã¶ãã¨ã§ãã
ãã®ã¬ã¤ãã®æ¬¡ã®è¨äºã§ã¯ãç¾ä»£ã®ãã©ã¦ã¶ã¼ã§ãã¾ãã¾ãªç¶æ ã®ãã©ã¼ã ãã¹ã¿ã¤ã«è¨å®ã§ãããã¾ãã¾ãª UI æ¬ä¼¼ã¯ã©ã¹ãè¦ã¦ããã¾ãã




