在文本框中概述用户文本输入
Outline user text input in textbox
我有这个程序,用户在 文本框 中输入一个十六进制值,一旦按下提交按钮,文本框本身就会更改为十六进制值的颜色代表。我遇到的问题是,当用户输入 #000000
等深色时,文本变得无法看到。
因此,为了解决这个问题,我想创建一个颜色较浅的文本轮廓,以便用户能够看到他们在框中键入的内容。
有人建议我在 CSS 中使用 text-shadow: #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px;
,但它不符合我的意愿。我不能使用 jQuery 或任何类似的东西,只能使用纯 Javascript、HTML 和 CSS.
这是我的代码:
#ColourInput { /* apply this style to element id="ColourInput" */
left: 240px;
top: 60px;
width: 100px;
height: 20px;
text-shadow: #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px;
}
input[type=text]:focus {
border: 3px solid #555;
}
function fnCustomColour() {
var sHexValue = document.getElementById("ColourInput").value;
var ValueValid = 0
fnDebugMessage(sHexValue);
if (/[0-9A-F]{6}$/i.test(sHexValue)) {
if (sHexValue.indexOf("#") === 0) {
} else {
sHexValue = "#"+sHexValue
}
ValueValid = 1
} else {
alert("Value not allowed");
ValueValid = 0
}
if (ValueValid = 1) {
ColourInput.style.backgroundColor = sHexValue;
fnSetFillColour(sHexValue);
fnDebugMessage(sHexValue);
}
}
<div id="CustomColour">
Custom Colour Input: #<input type="text" id="ColourInput" name="CustomColour" placeholder="Enter Hex Value" pattern="[a-fA-F0-9]{8}$/i"><br>
<input type="submit" onclick="fnCustomColour();" id="ColourSubmit" value="Submit">
</div>
如有任何帮助,我们将不胜感激
我在黑色文本周围添加了一个白色阴影。这很像在电视上使用隐藏式字幕。我在黑色上测试了黑色,你可以在 snippit 中调整颜色以在绿色、黄色、蓝色等上看到它 运行
#ColourInput {
/* apply this style to element id="ColourInput" */
left: 240px;
top: 60px;
width: 100px;
height: 20px;
text-shadow: 0px 0 0 #fff, 0 0 0 #fff, 0 1px 0 #fff, 0 0 0 #fff;
color: black;
background: black;
}
}
input[type=text]:focus {
border: 3px solid #555;
}
<div id="CustomColour">
Custom Colour Input: #<input type="text" id="ColourInput" name="CustomColour" placeholder="Enter Hex Value" pattern="[a-fA-F0-9]{8}$/i"><br>
<input type="submit" onclick="fnCustomColour();" id="ColourSubmit" value="Submit">
</div>
我有这个程序,用户在 文本框 中输入一个十六进制值,一旦按下提交按钮,文本框本身就会更改为十六进制值的颜色代表。我遇到的问题是,当用户输入 #000000
等深色时,文本变得无法看到。
因此,为了解决这个问题,我想创建一个颜色较浅的文本轮廓,以便用户能够看到他们在框中键入的内容。
有人建议我在 CSS 中使用 text-shadow: #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px;
,但它不符合我的意愿。我不能使用 jQuery 或任何类似的东西,只能使用纯 Javascript、HTML 和 CSS.
这是我的代码:
#ColourInput { /* apply this style to element id="ColourInput" */
left: 240px;
top: 60px;
width: 100px;
height: 20px;
text-shadow: #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px;
}
input[type=text]:focus {
border: 3px solid #555;
}
function fnCustomColour() {
var sHexValue = document.getElementById("ColourInput").value;
var ValueValid = 0
fnDebugMessage(sHexValue);
if (/[0-9A-F]{6}$/i.test(sHexValue)) {
if (sHexValue.indexOf("#") === 0) {
} else {
sHexValue = "#"+sHexValue
}
ValueValid = 1
} else {
alert("Value not allowed");
ValueValid = 0
}
if (ValueValid = 1) {
ColourInput.style.backgroundColor = sHexValue;
fnSetFillColour(sHexValue);
fnDebugMessage(sHexValue);
}
}
<div id="CustomColour">
Custom Colour Input: #<input type="text" id="ColourInput" name="CustomColour" placeholder="Enter Hex Value" pattern="[a-fA-F0-9]{8}$/i"><br>
<input type="submit" onclick="fnCustomColour();" id="ColourSubmit" value="Submit">
</div>
如有任何帮助,我们将不胜感激
我在黑色文本周围添加了一个白色阴影。这很像在电视上使用隐藏式字幕。我在黑色上测试了黑色,你可以在 snippit 中调整颜色以在绿色、黄色、蓝色等上看到它 运行
#ColourInput {
/* apply this style to element id="ColourInput" */
left: 240px;
top: 60px;
width: 100px;
height: 20px;
text-shadow: 0px 0 0 #fff, 0 0 0 #fff, 0 1px 0 #fff, 0 0 0 #fff;
color: black;
background: black;
}
}
input[type=text]:focus {
border: 3px solid #555;
}
<div id="CustomColour">
Custom Colour Input: #<input type="text" id="ColourInput" name="CustomColour" placeholder="Enter Hex Value" pattern="[a-fA-F0-9]{8}$/i"><br>
<input type="submit" onclick="fnCustomColour();" id="ColourSubmit" value="Submit">
</div>