📜  输入数字隐藏箭头 - CSS (1)

📅  最后修改于: 2023-12-03 15:28:17.516000             🧑  作者: Mango

输入数字隐藏箭头 - CSS

在许多 HTML 表单中,我们通常会看到一些带有数字输入框的元素。这些元素通常会带有向上和向下的箭头,用于方便用户输入数据,但是这些箭头有时候并不美观或者不符合设计需求。

在本篇文章中,我们将介绍如何使用 CSS 来隐藏这些箭头,保留输入框的功能并且让它们更加美观。

HTML 结构

在使用 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 样式的设置,我们可以轻松地隐藏这些箭头,并定制表单元素的外观。