在文本框HTML / CSS中更改一个字符的颜色

时间:2013-06-27 11:16:27

标签: html css textbox

我正在设计一个网站,我想问你们,如何通过CSS改变HTML文本框中字符串中一个字符的颜色?

示例:STACK OVER FLOW只是'A'字母是红色的!

谢谢你们

9 个答案:

答案 0 :(得分:46)

您不能使用常规<input type="text"><textarea>元素执行此操作,但使用普通元素(例如<div><p>contenteditable ,你拥有html / css格式的所有自由。

<div contenteditable>
    ST<span style="color: red">A</span>CK OVERFLOW
</div>

http://jsfiddle.net/jVqDJ/

浏览器支持也非常好(IE5.5 +)。阅读更多https://developer.mozilla.org/en-US/docs/Web/HTML/Content_Editable

答案 1 :(得分:2)

如果您只想更改仅第一个字符的颜色,我只是想添加到解决方案中,然后有一个CSS选择器 element :: first-letter

示例:

div::first-letter{
   color: red;
}

答案 2 :(得分:0)

问题是 - “文本框”是什么意思?您是指页面上的简单文本,还是输入类型=“text”或textarea等可编辑文本? 如果你的意思是简单的文字,那么之前的答案就可以完成。但是在可编辑文本的情况下,用css是不可能实现的。

答案 3 :(得分:0)

我不敢相信还没有人提出这个建议。但是,如果您对仅使用WebKit的解决方案感到满意,则可以使用离散的颜色进行颜色渐变,然后将其应用于文本,如下所示:

.c1 {
  background: linear-gradient(to right, black 0% 1.19em, red 1.19em 1.9em, black 1.9em 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.c2 {
  color: white;
  background: linear-gradient(to right, black 0% 1.19em, red 1.19em 1.9em, black 1.9em 100%);
  
}

input{
  font-family: "Courier New", Courier;
}
<h1 class="c1">
STACK OVER FLOW
</h1>
This is what the gradient looks like with the text over it:
<h1 class="c2">
STACK OVER FLOW
</h1>
It even works on input forms, however you'll want to change the font to a Monospaced font like Courier so the color always lines up with the same letter:
<h1>
<input type="text" class="c1"></input>
</h1>

这很好,因为它不受文本放置的标签的限制,就像其他答案一样。而且,如果您处在无法真正更改html的情况下(例如,如果您在多个页面上使用相同的样式表,并且需要进行追溯更改),这可能会有所帮助。如果您可以更改html,则xec的答案将具有更好的浏览器支持。

答案 4 :(得分:0)

在输入中是不可能的,但如果它不在范围内,您可以仅使用 CSS 将背景颜色更改为 red

输入小于 0 或大于 1000 的数字

input:out-of-range {
  background-color: red;
}
<input type="number" min="0" max="1000" />

答案 5 :(得分:-1)

你可以使用粗体标签 A

的CSS:

b {
font-color: red;
}

答案 6 :(得分:-2)

您可以尝试使用

<style> 
span.green{ 
     color:green; 
    } 
span.purple{ 
       color:purple; 
    } 
</style> 

<spanclass="purple">Var</span> x = "<span class="green">dude</span>"; 

答案 7 :(得分:-5)

从css你只能更改一个元素属性,所以你需要在另一个元素中插入字母“A”,如下所示:

ST<span>A</span>CK OVER FLOW just the 'A' letter is red!

CSS部分是

span{
   color:#FF0000;
}

或者像这样附上一个类

ST<span class="myRedA">A</span>CK OVER FLOW just the '<A' letter is red!

CSS:

span.myRedA{
       color:#FF0000;
    }

答案 8 :(得分:-6)

<font color="#colors">text text text</font>