【问题标题】:Restore input type=number spinners in chrome在chrome中恢复输入类型=数字微调器
【发布时间】:2014-10-14 04:09:33
【问题描述】:

我有一个主题基于Metro UI CSS 的应用程序,它隐藏了(我认为)Chrome 在使用<input type="number" /> 时添加的漂亮且有用的微调器。

我正在尝试“覆盖”此规则,但我无法弄清楚我必须将其设置为什么值:

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

不起作用(请参阅FIDDLE)。

恢复它们的正确值是多少?

P.S.:我试图避免只是从基本 CSS 中删除规则以避免更新问题...

【问题讨论】:

标签: html css google-chrome metro-ui-css


【解决方案1】:

-webkit-appearance 设置为inner-spin-button,即按钮的默认值。

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

【讨论】:

  • 就是这样,谢谢。您能否告诉我您在哪里/如何找到此信息,因为我搜索了很长时间并没有找到此值?
  • 当然。打开 Chrome 开发者工具,然后点击右上角的齿轮。在 General|Elements 下,有一个“显示用户代理影子 DOM”选项。启用它,然后检查输入元素。展开元素和#shadow-root (user-agent) 子元素。找到要设置样式的阴影元素,然后查看样式窗格中的灰色样式。 picture
  • 太棒了——再次感谢。我已经搜索过的开发工具中的那个“功能”;-)...
  • 朋友你在哪里?我只是花了一整天的时间来解决这个问题。如果我们在现实生活中相遇,我需要亲吻你。非常感谢!
【解决方案2】:

在 Chrome v67.0.3396.87 上测试:

input[type=number]::-webkit-outer-spin-button, 
input[type=number]::-webkit-inner-spin-button {
    /*-webkit-appearance: inner-spin-button !important;*/
    opacity: 1;
    margin-left: 5px;
}
<input type="number"/>

更改 -webkit-appearance 属性似乎没有任何影响;除了悬停时,它没有显示微调器,无论如何这是默认行为。

更改不透明度按预期工作。无论是否悬停,微调器始终可见。这个技巧的功劳归于https://codepen.io/BJack/pen/FHgtc

【讨论】:

    【解决方案3】:

    此外,我需要将微调器隐藏(根据默认设置)或始终显示,所以这里是完成这三个操作的方法。很难获得这些信息。

    /* disable globally if required */
    input[type='number']::-webkit-outer-spin-button,
    input[type='number']::-webkit-inner-spin-button {
        -webkit-appearance: none;
    }
    
    /* restore to hidden until mouse over */
    .show_spinner input[type='number']::-webkit-outer-spin-button,
    .show_spinner input[type='number']::-webkit-inner-spin-button {
       -webkit-appearance: inner-spin-button;
    }
    
    /* restore and show permanently */
    .show_always input[type='number']::-webkit-outer-spin-button,
    .show_always input[type='number']::-webkit-inner-spin-button {
       -webkit-appearance: inner-spin-button;
       opacity: 1;
       margin-left: 10px;
    }
    <!-- disabled spinners -->
    <input type="number">
    
    <!-- restore to hidden until mouse over -->
    <div class="show_spinner">
        <input type="number" class="show_spin">
    </div>
    
    <!-- restore and show permanently -->
    <div class="show_always">
        <input type="number" class="show_spin">
    </div>

    【讨论】:

      【解决方案4】:

      我非常努力地从移动浏览器(如移动 Chrome)中恢复箭头,但以下代码不起作用

      input[type=number]::-webkit-outer-spin-button, 
      input[type=number]::-webkit-inner-spin-button {
          /*-webkit-appearance: inner-spin-button !important;*/
          opacity: 1;
          margin-left: 5px;
      }
      

      最终我决定制作一些侧边按钮。我编写了代码,您可以根据需要添加任意数量的按钮。我邀请您查看其他类似帖子中的 sn-p。

      改进 在这个 sn-p 中,当用户按住按钮时,我添加了自动增量

      https://stackoverflow.com/a/70957862/13795525

      初始 https://stackoverflow.com/a/68679616/13795525

      【讨论】:

      • 下次不要在答案中引用其他 SO 帖子,而是将问题标记为重复
      • 好吧,我做到了,即使它是另一个 SO 问题,它与这个问题的重复,因为最近问了另一个帖子。
      • 谢谢。经验法则是,无论何时,措辞更好或答案更全面的问题都是目标。
      猜你喜欢
      • 2017-11-20
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多