Man*_*zzo 21 html javascript css pseudo-element
我在网上搜索,但没有找到任何东西.我正在尝试使用javascript更新文本框的占位符颜色,但我该怎么做?我有一个颜色选择器,颜色正在改变.
如果我在CSS中有这样的东西,我该如何更新它?
::placeholder {
color: red;
}
Run Code Online (Sandbox Code Playgroud)
<input placeholder="placeholder" />
Run Code Online (Sandbox Code Playgroud)
是否有javascript命令来编辑它?就像是
document.getElementById('text').style.placeholderColor = newColor;
Run Code Online (Sandbox Code Playgroud)
Tem*_*fif 31
使用CSS变量.您也可以只定位所需的元素
function update() {
document.querySelector('input[type=text]').style.setProperty("--c", "blue");
}
Run Code Online (Sandbox Code Playgroud)
::placeholder {
color: var(--c, red);
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" placeholder="I will be blue">
<input type="number" placeholder="I will remain red">
<button onclick="update()">change</button>
Run Code Online (Sandbox Code Playgroud)
CSS变量在修改无法使用JS访问的伪类/伪元素时非常有用,例如:before
/ :after
/ ::placeholer/::selection
等等.您只需使用可以在元素上轻松更新的变量来定义属性.
相关:https://stackoverflow.com/a/49618941/8620333
正如其他答案中所述,您无法更改伪元素样式 inline。但是,您可以修改 CSS 规则本身<style>
,并且不需要浏览器支持 CSS 变量。访问样式表并获取现有规则或插入您自己的规则,然后像使用元素一样使用其样式声明.style
:
const {sheet} = Object.assign(document.head.appendChild(document.createElement("style")), {type: "text/css" });
const placeholderStyle = sheet.rules[sheet.insertRule("::placeholder {}")].style;
placeholderStyle.color = "red";
Object.assign(document.body.appendChild(document.createElement("input")), {
type: "button", value: "Color!", onclick() {
placeholderStyle.color = "#"+Math.round(Math.random()*0xFFF).toString(16).padStart("0",3);
}});
Run Code Online (Sandbox Code Playgroud)
<input placeholder="placeholder" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
947 次 |
最近记录: |