【问题标题】:Style input type number more plus button on the side样式输入类型编号更多加号按钮在侧面
【发布时间】:2019-01-28 08:44:34
【问题描述】:

有没有办法像这样设置输入类型编号的样式?

谢谢!

【问题讨论】:

标签: html css


【解决方案1】:

您可以在下面看到 sn-p,如果您想在 JSFIDDLE 中看到它,请看这里:http://jsfiddle.net/74xa8Ler/

稍微解释一下,整个事情是如何工作的:在这里,您将使用css 进行一些样式操作

但在 html 代码中,您会看到 2 个按钮:

<button onclick="this.parentNode.querySelector('input[type=number]')" ></button>

一个是.stepDown(),另一个是.stepUp()。如您所见,querySelector 用于将这些按钮连接到您的input

所以当点击button 时它的工作方式是查看您的querySelector,然后是.stepUp().stepDown()action 并将其应用于您的input.

请记住,如果您有多个带有type="number" 的输入,您不能简单地对所有输入都使用.querySelector('input[type=number]')"。您需要将idclass 添加到每个input 甚至input[name=yourName] 并让querySelector 选择您正确的input

input[type="number"] {
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

.number-input {
  border: 0;
  display: inline-flex;
}

.number-input,
.number-input * {
  box-sizing: border-box;
}

.number-input button {
  outline:none;
  -webkit-appearance: none;
  background-color: transparent;
  border: none;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  cursor: pointer;
  margin: 0;
  position: relative;
  box-shadow: 0px 0px 1px #474747;
    border-radius: 50%;
}

.number-input button:before,
.number-input button:after {
  display: inline-block;
  position: absolute;
  content: '';
  width: 1rem;
  height: 2px;
  background-color: #212121;
  transform: translate(-50%, -50%);
}
.number-input button.plus:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.number-input input[type=number] {
  font-family: sans-serif;
  max-width: 5rem;
  padding: .5rem;
  border: none;
  border-width: 0 2px;
  font-size: 2rem;
  height: 3rem;
  font-weight: bold;
  text-align: center;
  color:#9be3df;
}
<div class="number-input">
  <button onclick="this.parentNode.querySelector('input[type=number]').stepDown()" ></button>
  <input class="quantity" min="0" name="quantity" value="1" type="number">
  <button onclick="this.parentNode.querySelector('input[type=number]').stepUp()" class="plus"></button>
</div>

【讨论】:

  • 请解释哪些部分是相关的以及为什么
  • 感谢 Rubioli,这比我想象的要容易:D
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多