javascript - 使用 JS 获取正确的占位符颜色

标签 javascript html css placeholder

我将输入的默认占位符颜色更改为蓝色。为什么我使用 Javascript 得到黑色占位符颜色?

const getPlaceholderColor = () => {
  let inputEl = document.querySelector('.myClass');
  let inputElStyle = window.getComputedStyle(inputEl, '::placeholder');
  
  let resultTarget = document.getElementById('colorResult');
  let placeholderColor = inputElStyle.getPropertyValue('color');
  resultTarget.innerHTML = `Placeholder color: ${placeholderColor}`;
}
.myClass::placeholder {
  color: #004085;
}

.marginTop20 {
  margin-top: 20px;
}
<input
  type="text"
  placeholder="Enter name"
  class="myClass"
/>

<button onClick="getPlaceholderColor()">Get placeholder color</button>

<div class="marginTop20" id="colorResult"></div>

最佳答案

问题写在这里=> https://css-tricks.com/almanac/selectors/p/placeholder/

下面是使用 :placeholder-shown 和::placeholder 的代码笔

https://codepen.io/kipomaha/pen/pOOdQr

document.getElementById("myStyles").sheet.insertRule('.myClass:placeholder-shown { color: red; }');
document.getElementById("myStyles").sheet.insertRule('.myClass::placeholder { color: red; }');
const getPlaceholderColor = () => {
    let inputEl = document.querySelector('.myClass');
    let inputElStyle = window.getComputedStyle(inputEl, ':placeholder-shown');
    let resultTarget = document.getElementById('colorResult');
    let placeholderColor = inputElStyle.getPropertyValue('color');

    resultTarget.innerHTML = `Placeholder color: ${placeholderColor}`;
}


document.getElementById("myStyles").sheet.insertRule('.myClass:placeholder-shown { color: red; }');
document.getElementById("myStyles").sheet.insertRule('.myClass::placeholder { color: red; }');

var inputEl = document.querySelector('.myClass'); 
var placeholderColor = inputElStyle.getPropertyValue('color');
const getPlaceholderColor = () => {
    let inputElStyle = window.getComputedStyle(inputEl, ':placeholder-shown');
    let resultTarget = document.getElementById('colorResult');

    resultTarget.innerHTML = `Placeholder color: ${placeholderColor}`;
}

关于javascript - 使用 JS 获取正确的占位符颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355140/

相关文章:

javascript - Express.js 请求隔离

javascript - jQuery UI - 拖放排序和恢复

css - 为同一类的所有元素显示相同的标题文本?

jquery - 页面导航后事件类不起作用

html - 如何使用 Bootstrap 将菜单设置在整个屏幕的中央?

css - SASS 未正确预处理

javascript - 通过 AJAX 改善加载时间?

javascript - react native ScrollView 与分页 + 显示下一页的一部分

html - 如何避免 Bootstrap css 覆盖自定义 css?

html - 有没有办法暂时禁用嵌入视频的鼠标悬停事件?