这是我的代码片段:
http://jsfiddle.net/7CuBV/6/
如果我单击并拖动输入文本字段,我会得到带有溢出:隐藏滚动的 div,就像使用溢出:自动一样。如果我在div上设置overflow:hidden,我希望像其他浏览器一样锁定滚动。
奇怪的是,如果我在输入字段上设置 padding:0px,Chrome 上的问题就不会再出现。
这是谷歌浏览器的错误吗?有什么解决方法可以使其在不使用 Javascript 的情况下工作吗?
编辑:这种行为也会发生在 Safari 5 上。可能是Webkit的问题。
这是为我解决的问题:
input:active { pointer-events:none; }
谢谢https://stackoverflow.com/users/498031/vken在这个类似的问题上指出这一点:文本输入字段中的单击拖动选择问题也会滚动父元素、webkit bug 或功能?
2013 年 11 月更新:
pointer-events:none
解决了这个问题,但也有很多缺点。该问题的最佳解决方法实际上是确保您没有溢出的内容,如“overflow:hidden
容器不大于所述容器。如果你想通过 JavaScript 滚动内容,只要它是隐藏的,就给它 width&height=0 ,并在移动它之前调整它的大小(通过关键帧动画或定时过渡轻松完成)
重要提示:我遇到了一个自定义的奇怪案例<input type=file>
Chrome 中的字段不应导致任何溢出问题,因为我通过 CSS 调整了它的大小 - 开发工具证实了这一点,但是:在查看了Shadow-DOM我意识到 Chrome 自己的“按钮”溢出了实际的输入字段,因此导致整个容器变得更大。
如何显示 Shadow-DOM:如果一切正常,但问题仍然存在,请转到 Chrome 开发工具,单击右下角的“设置”按钮。在“元素”部分的“常规”选项卡上,可以选择启用“显示 Shadow DOM”。这将为您提供正在发生的事情的全貌...虽然大多数时候它只是增加了另一层复杂性,但在这里它确实很有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)