如何更改可调整大小的文本区域的光标?

Posted

技术标签:

【中文标题】如何更改可调整大小的文本区域的光标?【英文标题】:How to change cursor for resizable textarea? 【发布时间】:2019-08-05 10:20:46 【问题描述】:

我有一个 html 元素 textarea,其中定义了 CSS 规则 resize: both 。在FF中,当用户将鼠标悬停在textarea的右下角时,光标会根据属性resize的值发生变化,但在Chrome中光标不会改变。

请在FF和Chrome中打开this example查看区别。

这是谷歌浏览器的一个错误,我可以用我这边的 CSS 修复它吗?

更新

我向 Chromium 报告了错误: https://bugs.chromium.org/p/chromium/issues/detail?id=942017

更新 2

该错误已在 Chrome 80 中修复。

【问题讨论】:

【参考方案1】:

实际上,您可以通过多种方式设置调整大小并在悬停时添加cursor: se-resize;。看看这个帖子:Can I style the resize grabber of textarea?

它描述了如何使用::-webkit-resizer 来设置大小调整器的样式:

::-webkit-resizer 
    border: 2px solid black;
    background: red;
    box-shadow: 0 0 5px 5px blue;
    outline: 2px solid yellow;

不幸的是,它在 Chrome 中停止工作,我也没有类似的东西。 (我认为它在 Safari 中仍然有效)。

但不要害怕,制作自定义手柄并不难。实际上,我鼓励您使用自定义的,因为默认的太小且难以命中。尤其是触摸。实际上有很多网站使用自定义句柄(或者至少基于自动调整大小,它会根据内容增长。触摸也很棒!)。

即。 *** 使用自定义句柄(TextAreaResizer):

GIF of ***s resize handle

也有很多图书馆就是为了这个目的,只要做一个谷歌搜索,你就会找到适合你的东西:)

【讨论】:

感谢您的详细解答。不幸的是,自定义属性 -webkit-resizer 不再起作用。我尝试将其应用于我的示例,但没有任何变化:jsfiddle.net/yuri_beliakov/4vahwjxe/2 是的,它停止工作有点糟糕。至少能够改变它的大小、悬停状态等实际上真的很有用:)【参考方案2】:

这是浏览器本身渲染的,不能用css设计

【讨论】:

是不是 Goggle Chrome 的 bug?你怎么看? 不,它不是一个错误,它是 chrome 的默认行为。例如,选择一个复选框并在 Mozilla 和 chrome 上打开它,当你检查它时,你会看到不同的设计@YuriBeliakov 我认为这是一个错误。我向 Chromium 项目报告了这个问题。

以上是关于如何更改可调整大小的文本区域的光标?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用原型自动调整文本区域的大小?

CSS更改文本区域上调整大小按钮的光标样式

堆叠的 div 相互调整大小

如何在移动设备上调整灵活文本区域的大小?

如何在使用 jQuery(可拖动和可调整大小)拖动光标时调整图像大小

<textarea> 调整字体大小问题 IE 10