Baseline Widely available
button
ç±»åç <input>
å
ç´ è¢«æ¸²æä¸ºç®åçæé®ï¼å¯ä»¥æ ¹æ®éè¦å¯¹å
¶è¿è¡ç¼ç¨ï¼å¯ä»¥ä¸ºå
¶åé
ä¸ä¸ªäºä»¶å¤ç彿°ï¼é常为 click
äºä»¶ï¼ï¼ä»¥æ§å¶ç½é¡µä¸çä»»ä½å°æ¹çèªå®ä¹åè½ã
<input class="styled" type="button" value="Add to favorites" />
.styled {
border: 0;
line-height: 2.5;
padding: 0 20px;
font-size: 1rem;
text-align: center;
color: #fff;
text-shadow: 1px 1px 1px #000;
border-radius: 10px;
background-color: rgb(220 0 0 / 100%);
background-image: linear-gradient(
to top left,
rgb(0 0 0 / 20%),
rgb(0 0 0 / 20%) 30%,
rgb(0 0 0 / 0%)
);
box-shadow:
inset 2px 2px 3px rgb(255 255 255 / 60%),
inset -2px -2px 3px rgb(0 0 0 / 60%);
}
.styled:hover {
background-color: rgb(255 0 0 / 100%);
}
.styled:active {
box-shadow:
inset -2px -2px 3px rgb(255 255 255 / 60%),
inset 2px 2px 3px rgb(0 0 0 / 60%);
}
夿³¨ï¼ button
ç±»åç <input>
å
ç´ ä»ç¶æ¯åæ³ç HTML 代ç ï¼ä½æ¯æ°ç <button>
å
ç´ æ¯å建æé®çæ´å¥½çæ¹å¼ãé´äº <button>
çæ ç¾æåå¯ä»¥æå
¥è³å¼éæ ç¾ä¹é´ï¼ä½ å¯ä»¥å¨æ ç¾ä¸å
å« HTML 代ç ï¼çè³æ¯å¾åã
<input type="button">
ç value
屿§å
å«ç¨ä½æé®æ ç¾çå符串ã
<input type="button" value="ç¹æ" />
ä¸å«æå¼çæé®
å¦ææ²¡ææå® value
ï¼ä¼å¾å°ä¸ä¸ªç©ºçæé®ï¼
<input type="button">
å
ç´ æ²¡æé»è®¤è¡ä¸ºï¼ä¸ä¹ç±»ä¼¼ç <input type="submit">
å <input type="reset">
åå«ç¨äºæäº¤åé置表åï¼ãè¦è®©æé®åä»»ä½äºæ
ï¼ä½ å¿
é¡»ç¼å JavaScript 代ç ã
æä»¬ä»å建ä¸ä¸ªå
·æ click
äºä»¶å¤çå¨çæé®å¼å§ï¼å®å¯å¨äºæä»¬çæºå¨ï¼åæ¶ï¼ä¹åæ¢äºæé®ç value
åä¸å段è½çæåï¼ï¼
<form>
<input type="button" value="å¼å¨æºå¨" />
</form>
<p>æºå¨å·²ç»åä¸äºã</p>
const button = document.querySelector("input");
const paragraph = document.querySelector("p");
button.addEventListener("click", updateButton);
function updateButton() {
if (button.value === "å¼å¨æºå¨") {
button.value = "忢æºå¨";
paragraph.textContent = "æºå¨å¯å¨äºï¼";
} else {
button.value = "å¼å¨æºå¨";
paragraph.textContent = "æºå¨å·²ç»åä¸äºã";
}
}
èæ¬è·å¾äºå¯¹ DOM ä¸ä»£è¡¨ <input>
ç HTMLInputElement
对象çå¼ç¨ï¼å¹¶å°æ¤å¼ç¨ä¿åå¨åé button
ä¸ãç¶åï¼addEventListener()
è¢«ç¨æ¥å»ºç«ä¸ä¸ªå½æ°ï¼å½æé®ä¸åç click
äºä»¶æ¶ï¼è¯¥å½æ°å°è¢«è¿è¡ã
é®çå¿«æ·é®å¯ä»¥è®©ç¨æ·ä½¿ç¨é®çä¸çæä¸ªé®æç»å鮿¥è§¦åä¸ä¸ªæé®ãè¦ä¸ºä¸ä¸ªæé®æ·»å é®çå¿«æ·é®ââå°±åå¯¹ä»»ä½ <input>
齿æä¹ç飿 ·ââä½ å¯ä»¥ä½¿ç¨ accesskey
å
¨å±å±æ§ã
å¨è¿ä¸ªä¾åä¸ï¼s 被æå®æä¸ºè®¿é®é®ï¼ä½ éè¦æä½æµè§å¨ææä½ç³»ç»ææå®çç»åé®å ä¸ s 鮿¥è§¦åæé®ï¼åè§ accesskey 以è·åä¸äºæç¨çå表ã
<form>
<input type="button" value="å¼å¨æºå¨" accesskey="s" />
</form>
<p>æºå¨å·²ç»åä¸äºã</p>
const button = document.querySelector("input");
const paragraph = document.querySelector("p");
button.addEventListener("click", updateButton);
function updateButton() {
if (button.value === "å¼å¨æºå¨") {
button.value = "忢æºå¨";
paragraph.textContent = "æºå¨å¯å¨äºï¼";
} else {
button.value = "å¼å¨æºå¨";
paragraph.textContent = "æºå¨å·²ç»åä¸äºã";
}
}
夿³¨ï¼ å½ç¶ï¼ä¸è¿°ä¾åçé®é¢æ¯ï¼ç¨æ·å°ä¸ç¥é访é®é®æ¯ä»ä¹ï¼å¨ä¸ä¸ªçå®çç½ç«ä¸ï¼ä½ å¿ é¡»ä»¥ä¸ç§ä¸å½±åç½ç«è®¾è®¡çæ¹å¼æ¥æä¾è¿äºä¿¡æ¯ï¼ä¾å¦ï¼æä¾ä¸ä¸ªå®¹æè®¿é®ç龿¥ï¼æåå ³äºç½ç«è®¿é®é®æ¯ä»ä¹çä¿¡æ¯ï¼ã
ç¦ç¨åå¯ç¨æé®è¦ç¦ç¨æé®ï¼å¨å
¶ä¸æå® disabled
å
¨å±å±æ§ï¼å°±åè¿æ ·ï¼
<input type="button" value="ç¦ç¨æ" disabled />
设置ç¦ç¨å±æ§
ä½ å¯ä»¥å¨è¿è¡æ¶éè¿è®¾ç½® disabled
为 true
æ false
æ¥å¯ç¨åç¦ç¨æé®ãå¨è¿ä¸ªä¾åä¸ï¼æä»¬çæé®ä¸å¼å§æ¯å¯ç¨çï¼ä½å¦æä½ æä¸å®ï¼å°±ä¼ç¨ button.disabled = true
å°å
¶ç¦ç¨ãç¶åï¼ä¸ä¸ª setTimeout()
彿°è¢«ç¨æ¥å¨ä¸¤ç§åå°æé®é置为å¯ç¨ç¶æã
<input type="button" value="å·²å¯ç¨" />
const button = document.querySelector("input");
button.addEventListener("click", disableButton);
function disableButton() {
button.disabled = true;
button.value = "å·²ç¦ç¨";
setTimeout(() => {
button.disabled = false;
button.value = "å·²å¯ç¨";
}, 2000);
}
ç»§æ¿ç¦ç¨ç¶æ
å¦ææ²¡ææå® disabled
屿§ï¼æé®å°ä»å
¶ç¶å
ç´ ç»§æ¿å
¶ disabled
ç¶æãè¿ä½¿å¾ä¸æ¬¡å¯ç¨åç¦ç¨ä¸ç»å
ç´ æä¸ºå¯è½ï¼æ¹æ³æ¯å°å®ä»¬å
å´å¨ä¸ä¸ªå®¹å¨ä¸ï¼å¦ <fieldset>
å
ç´ ï¼ç¶åå¨å®¹å¨ä¸è®¾ç½® disabled
ã
ä¸é¢çä¾åæ¾ç¤ºäºè¿ä¸ªå¨ä½ãè¿ä¸åé¢çä¾åé常ç¸ä¼¼ï¼åªæ¯å½ç¬¬ä¸ä¸ªæé®è¢«æä¸æ¶ï¼disabled
屿§è¢«è®¾ç½®å¨ <fieldset>
ä¸ââè¿å¯¼è´ææä¸ä¸ªæé®è¢«ç¦ç¨ï¼ç´å°ä¸¤ç§çè¶
æ¶æ¶é´è¿å»ã
<fieldset>
<legend>æé®ç»</legend>
<input type="button" value="æé® 1" />
<input type="button" value="æé® 2" />
<input type="button" value="æé® 3" />
</fieldset>
const button = document.querySelector("input");
const fieldset = document.querySelector("fieldset");
button.addEventListener("click", disableButton);
function disableButton() {
fieldset.disabled = true;
setTimeout(() => {
fieldset.disabled = false;
}, 2000);
}
夿³¨ï¼ Firefox ä¸åå
¶ä»æµè§å¨é£æ ·ï¼å®ä¼å¨ä¸å页é¢ä¹é´ä¿æ <button>
ç卿ç¦ç¨çç¶æãè¯·ä½¿ç¨ autocomplete
屿§æ¥æ§å¶è¿ä¸ªç¹æ§ã
æé®ä¸åä¸å°çº¦æéªè¯ä¸ï¼å®ä»¬æ²¡æç¨äºçº¦æççå¼ã
示ä¾ä¸é¢çä¾åæ¾ç¤ºäºä¸ä¸ªé常ç®åçç»ç»åºç¨ï¼å®æ¯ç¨ <canvas>
å
ç´ åä¸äºç®åç CSS å JavaScript å建çï¼ä¸ºäºç®æ´ï¼æä»¬å°éè CSSï¼ãä¸é¢ç两个æ§ä»¶å
è®¸ä½ éæ©ç»ç¬çé¢è²å大å°ãæé®ï¼å½ç¹å»æ¶ï¼è°ç¨ä¸ä¸ªå½æ°æ¥æ¸
é¤ç»å¸ã
<div class="toolbar">
<input type="color" aria-label="éæ©ç»ç¬é¢è²" />
<input
type="range"
min="2"
max="50"
value="30"
aria-label="éæ©ç»ç¬å¤§å°" /><span class="output">30</span>
<input type="button" value="æ¸
é¤ç»å¸" />
</div>
<canvas class="myCanvas">
<p>Add suitable fallback here.</p>
</canvas>
body {
background: #ccc;
margin: 0;
overflow: hidden;
}
.toolbar {
background: #ccc;
width: 150px;
height: 75px;
padding: 5px;
}
input[type="color"],
input[type="button"] {
width: 90%;
margin: 0 auto;
display: block;
}
input[type="range"] {
width: 70%;
}
span {
position: relative;
bottom: 5px;
}
const canvas = document.querySelector(".myCanvas");
const width = (canvas.width = window.innerWidth);
const height = (canvas.height = window.innerHeight - 85);
const ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(0,0,0)";
ctx.fillRect(0, 0, width, height);
const colorPicker = document.querySelector('input[type="color"]');
const sizePicker = document.querySelector('input[type="range"]');
const output = document.querySelector(".output");
const clearBtn = document.querySelector('input[type="button"]');
// covert degrees to radians
function degToRad(degrees) {
return (degrees * Math.PI) / 180;
}
// update sizepicker output value
sizePicker.oninput = () => {
output.textContent = sizePicker.value;
};
// store mouse pointer coordinates, and whether the button is pressed
let curX;
let curY;
let pressed = false;
// update mouse pointer coordinates
document.onmousemove = (e) => {
curX = e.pageX;
curY = e.pageY;
};
canvas.onmousedown = () => {
pressed = true;
};
canvas.onmouseup = () => {
pressed = false;
};
clearBtn.onclick = () => {
ctx.fillStyle = "rgb(0,0,0)";
ctx.fillRect(0, 0, width, height);
};
function draw() {
if (pressed) {
ctx.fillStyle = colorPicker.value;
ctx.beginPath();
ctx.arc(
curX,
curY - 85,
sizePicker.value,
degToRad(0),
degToRad(360),
false,
);
ctx.fill();
}
requestAnimationFrame(draw);
}
draw();
ææ¯æ»ç» è§è æµè§å¨å
¼å®¹æ§ åè§
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