如何从 Opera 中的 input[type="number"] 中删除箭头 [重复]

Posted

技术标签:

【中文标题】如何从 Opera 中的 input[type="number"] 中删除箭头 [重复]【英文标题】:How to remove the arrows from input[type="number"] in Opera [duplicate] 【发布时间】:2012-10-17 21:51:50 【问题描述】:

只是想去掉这些箭头,在某些情况下很方便。

我想保留浏览器对纯数字内容的感知。因此将其更改为input[type="text"] 是不可接受的解决方案。


既然 Opera 是基于 webkit 的,这个问题是重复的:Can I hide the html5 number input’s spin box?

【问题讨论】:

我认为这是不可能的标准只允许比较字符串。 我知道这是一个老问题,但以防万一它仍然没有得到回答,这个链接有帮助吗? css-tricks.com/snippets/css/turn-off-number-input-spinners 现在你可以使用 youtu.be/alGcULGtiv8?t=630 【参考方案1】:

我一直在使用一些简单的 CSS,它似乎可以删除它们并且可以正常工作。

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button  
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    margin: 0; 
<input type="number" step="0.01"/>

This tutorial from CSS Tricks explains in detail & also shows how to style them

【讨论】:

特别是链接很重要!谢谢 因为不是每个人都使用基于 WebKit 的浏览器:***.com/questions/23372903/… 不适用于 Firefox (v 45.0)。 @michael-cordingley 评论中的链接效果很好。 <input type="tel" /> 在很多情况下都能很好地工作 使用type="tel" 实际上是错误的,即使您可以完成工作。 input 元素的 type 属性有不同的值。 you can find them here. 使用正确的方法而不是简单的技巧总是更好。【参考方案2】:

这些箭头是Shadow DOM 的一部分,它们基本上是您页面上的 DOM 元素,对您隐藏。如果您不熟悉这个想法,请阅读 can be found here 的良好介绍性内容。

在大多数情况下,Shadow DOM 可以节省我们的时间并且很好。但是有些情况,比如这个问题,你想修改它。

您现在可以在 Webkit 中修改这些 with the right selectors,但这仍处于开发的早期阶段。 Shadow DOM 本身还没有统一的选择器,因此 webkit 选择器是专有的(这不仅仅是附加 -webkit 的问题,就像在其他情况下一样)。

因此,Opera 似乎还没有开始添加它。但是,查找有关 Opera Shadow DOM 修改的资源很困难。我发现一些unreliable internet sources 都说或建议 Opera 目前不支持 Shadow DOM 操作。

我花了一些时间浏览 Opera 网站,看看是否有人提到它,并试图在 Dragonfly 中找到它们……搜索都没有运气。由于在这个问题上的沉默,以及 Shadow DOM + Shadow DOM 操作的发展性质,似乎可以肯定的结论是,至少目前您无法在 Opera 中执行此操作。

【讨论】:

【参考方案3】:

没有办法。

这个问题基本上是Is there a way to hide the new HTML5 spinbox controls shown in Google Chrome & Opera? 的重复,但可能不是完全重复,因为给出了动机。

如果目的是“浏览器意识到内容是纯数字的”,那么您需要考虑这意味着什么。在某些情况下,箭头或微调器是使数字输入更舒适的一部分。另一部分是检查内容是否为有效数字,在支持 HTML5 输入增强的浏览器上,您可以使用 pattern 属性来做到这一点。该属性还可能影响第三个输入功能,即可能出现的虚拟键盘的类型。

例如,如果输入应该恰好是五位数字(例如在某些国家/地区可能是邮政号码),那么<input type="text" pattern="[0-9]5"> 可能就足够了。它的处理方式当然取决于实现。

【讨论】:

您可以实现与您尝试保留的功能相同的功能,还可以删除微调器... 如果你想输入大数字,比如金额,微调器完全没用。同时,您可能需要它们的 min 和 max 属性。例如,您想投资多少?这将是数千个,但它可能最小为 5000,最大为 20000。旋转它,宝贝。 @Puce 您可以向微调器添加任意增量步长。

以上是关于如何从 Opera 中的 input[type="number"] 中删除箭头 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

自定义input[type="file"]的样式

自定义input[type="file"]的样式

如何调用 JS 函数,从 AUTOCOMPLETE 列表中选择 <input type="text"> 中的数据?

解决input[type=file]打开时慢卡顿问题

如何像IE中的单选按钮那样设置复选框

如何使用 jQuery 从 HTML <input type="date"> 中提取值