在HTML文本输入中选择文本时更改突出显示颜色

Eri*_*ric 55 html css text input highlight

我一直在网上寻找这个,甚至找不到其他人甚至问这个,更不用说解决方案......

有没有办法在选择文本时更改文本输入中高亮区域的颜色?不是高亮边框或背景,而是当您实际选择文本时文本周围出现的部分.

Sar*_*raz 44

如果您正在寻找:

替代文字

链接在这里:

http://css-tricks.com/overriding-the-default-text-selection-color-with-css/

  • @Eric:我担心它不能在文本框中完成,因为我从未遇到过这样的事情,可能是其他人有的. (3认同)
  • 虽然这在理论上可以回答这个问题,[最好](// meta.stackoverflow.com/q/8259)在这里包含答案的基本部分,并提供参考链接. (3认同)

小智 28

这是代码.

/*** Works on common browsers ***/
::selection {
    background-color: #352e7e;
    color: #fff;
}

/*** Mozilla based browsers ***/
::-moz-selection {
    background-color: #352e7e;
    color: #fff;
}

/***For Other Browsers ***/
::-o-selection {
    background-color: #352e7e;
    color: #fff;
}

::-ms-selection {
    background-color: #352e7e;
    color: #fff;
}

/*** For Webkit ***/
::-webkit-selection {
    background-color: #352e7e;
    color: #fff;
}
Run Code Online (Sandbox Code Playgroud)

  • 尼斯适用于所有浏览器.我甚至喜欢他挑选的颜色 (3认同)
  • 很好,当然除了这个问题没有回答这个问题. (2认同)

jay*_*agi 20

我意识到这是一个古老的问题但是对于任何碰到它的人来说,这可以使用如此JSFiddle中contenteditable所示的方式完成.

感谢Alex在评论中提到这一点(直到现在我才看到它!)

  • OMG浏览器非常愚蠢到不支持这个开箱即用! (2认同)

pil*_*lau 9

这里的所有答案都适用于::selection伪元素及其工作原理.但是,问题确实特别询问如何在文本输入上使用它.

唯一的方法是通过输入的父级(任何父级)应用规则:

.parent ::-webkit-selection, [contenteditable]::-webkit-selection {
	background: #ffb7b7;
}

.parent ::-moz-selection, [contenteditable]::-moz-selection {
	background: #ffb7b7;
}

.parent ::selection, [contenteditable]::selection {
	background: #ffb7b7;
}

/* Aesthetics */
input, [contenteditable] {
  border:1px solid black;
  display:inline-block;
  width: 150px;
  height: 20px;
  line-height: 20px;
  padding: 3px;
}
Run Code Online (Sandbox Code Playgroud)
<span class="parent"><input type="text" value="Input" /></span>
<span contenteditable>Content Editable</span>
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 0

感谢您的链接,但似乎实际突出显示的文本并未公开。

就手头的实际问题而言,我最终选择了一种不同的方法,完全消除了对文本输入的需要,并使用innerHTML和一些JavaScript。它不仅绕过了文本突出显示,而且实际上看起来更干净。

这种对 HTML 表单控件的细微调整是完全消除表单控件的另一个很好的论据。哈哈!

  • 您可以在元素上使用 HTML5 内容可编辑标签来创建与 ::selection CSS 相同的效果,尽管这不适用于旧版浏览器 (7认同)