📅  最后修改于: 2023-12-03 15:28:17.516000             🧑  作者: Mango
在许多 HTML 表单中,我们通常会看到一些带有数字输入框的元素。这些元素通常会带有向上和向下的箭头,用于方便用户输入数据,但是这些箭头有时候并不美观或者不符合设计需求。
在本篇文章中,我们将介绍如何使用 CSS 来隐藏这些箭头,保留输入框的功能并且让它们更加美观。
在使用 CSS 来隐藏这些箭头之前,我们需要先了解一下它们在 HTML 中的结构。这些带有箭头的数字输入框通常由两个 HTML 元素组成:一个 <input>
元素和一个 <div>
元素,如下所示:
<div class="number-input">
<input type="number" value="0">
<div class="number-input-controls">
<button class="number-input__increment">+</button>
<button class="number-input__decrement">-</button>
</div>
</div>
其中,.number-input
是包含两个元素的容器,.number-input-controls
是包含箭头按钮的容器,.number-input__increment
和 .number-input__decrement
是分别表示增加和减少的按钮。
现在,我们来掩盖这些箭头,只显示输入框,以及保留输入框的增加和减少功能。
.number-input::-webkit-inner-spin-button,
.number-input::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.number-input {
border: 2px solid #ddd;
display: inline-flex;
}
.number-input__controls {
display: flex;
flex-direction: column;
align-items: center;
padding-left: 1rem;
font-size: 1rem;
position: relative;
}
.number-input__increment,
.number-input__decrement {
display: inline-block;
padding: 0.5rem 0.8rem;
background-color: #f1f1f1;
color: #333;
font-size: 1rem;
border: none;
text-align: center;
cursor: pointer;
outline: none;
}
.number-input__increment:focus,
.number-input__decrement:focus {
background-color: #bbb;
}
在上述 CSS 样式中,我们使用了 :inner-spin-button
和 :outer-spin-button
伪类选择器来隐藏箭头。这两个选择器针对不同的浏览器有不同的前缀,例如 -webkit-inner-spin-button
针对 Safari 和 Chrome 等浏览器。
接下来,我们将 .number-input
元素的外边框设置为 2px
阴影,使它与周围的界面分隔开来。我们还使用 display: inline-flex
将包含两个元素的容器变成一个行内项。
.number-input-controls
是包含箭头按钮的容器,我们将其显示方式设置为 flex
来让这两个按钮元素变为竖直方向上的项目。我们设置其 position: relative
,以便在需要时定位增加和减少按钮。
.number-input__increment
和 .number-input__decrement
是用于增加和减少输入框值的按钮。我们使用标准的 CSS 样式,以使它们看起来类似于桌面应用中的按钮。
作为一名程序员,不仅要关注代码的功能,还要注重界面设计。在 HTML 表单中,隐藏箭头,仅仅保留易读易操作的输入框,可以更加美观并且符合设计需求。通过 CSS 样式的设置,我们可以轻松地隐藏这些箭头,并定制表单元素的外观。