Câu trả lời ngắn:
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
<input type="number" />
Câu trả lời dài hơn:
Để thêm vào câu trả lời hiện có ...
Firefox:
Trong các phiên bản hiện tại của Firefox, giá trị mặc định (tác nhân người dùng) của thuộc -moz-appearance
tính trên các thành phần này là number-input
. Thay đổi điều đó thành giá trị textfield
có hiệu quả loại bỏ spinner.
input[type="number"] {
-moz-appearance: textfield;
}
Trong một số trường hợp, ban đầu bạn có thể muốn spinner bị ẩn và sau đó xuất hiện trên hover / Focus. (Đây hiện là hành vi mặc định trong Chrome). Nếu vậy, bạn có thể sử dụng như sau:
input[type="number"] {
-moz-appearance: textfield;
}
input[type="number"]:hover,
input[type="number"]:focus {
-moz-appearance: number-input;
}
<input type="number"/>
Trình duyệt Chrome:
Trong các phiên bản hiện tại của Chrome, giá trị mặc định (tác nhân người dùng) của thuộc -webkit-appearance
tính trên các thành phần này đã có sẵn textfield
. Để xóa spinner, -webkit-appearance
giá trị của thuộc tính cần được thay đổi thành none
trên các lớp ::-webkit-outer-spin-button
/ ::-webkit-inner-spin-button
giả ( -webkit-appearance: inner-spin-button
theo mặc định).
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
<input type="number" />
Đáng để chỉ ra rằng margin: 0
được sử dụng để xóa lề trong các phiên bản Chrome cũ hơn .
Hiện tại, khi viết bài này, đây là kiểu dáng tác nhân người dùng mặc định trên lớp giả 'nút quay trong':
input::-webkit-inner-spin-button {
-webkit-appearance: inner-spin-button;
display: inline-block;
cursor: default;
flex: 0 0 auto;
align-self: stretch;
-webkit-user-select: none;
opacity: 0;
pointer-events: none;
-webkit-user-modify: read-only;
}
<input type="number" min="4" max="8" />
Chrome và thấy một trường nhập liệu thông thường có mũi tên lên xuống ở bên cạnh.