我正在设计一个网站,我想问你们,如何通过CSS改变HTML文本框中字符串中一个字符的颜色?
示例:STACK OVER FLOW只是'A'字母是红色的!
谢谢你们
答案 0 :(得分:46)
您不能使用常规<input type="text">
或<textarea>
元素执行此操作,但使用普通元素(例如<div>
或<p>
)contenteditable
,你拥有html / css格式的所有自由。
<div contenteditable>
ST<span style="color: red">A</span>CK OVERFLOW
</div>
浏览器支持也非常好(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>