【问题标题】:How to find out colour of placeholder? [closed]如何找出占位符的颜色? [关闭]
【发布时间】:2016-12-20 05:35:15
【问题描述】:

我知道如何设置占位符的颜色,但是如果我需要找出某个页面上占位符的颜色怎么办?我无法使用 Chrome Devtools 找到此属性。 ColorZilla 也无济于事。

【问题讨论】:

  • 欢迎来到stackoverflow。提出一个明确的问题会更容易帮助你。包括您到目前为止所做的工作以及如果有任何错误共享是非常重要的。请阅读这篇文章以确保您得到一个好的答案stackoverflow.com/help/how-to-ask
  • 它只会在我怀疑的 CSS 文件中定义,它不是 html 元素或伪元素,因此无法通过网络检查器找到。
  • Web 检查器,例如 Chrome DevTools 或 Firebug 等?我找不到这些检查员。在其他 CSS 规则中没有“占位符”一词的规则
  • 最简单的解决方案是在 chrome 中安装一个颜色选择器扩展,然后使用您的工具将鼠标悬停在颜色上以获取 hex 和 rgba 代码!

标签: html css google-chrome-devtools


【解决方案1】:

您似乎无法在 DevTools 中访问伪 placeholder 属性的 CSS。您只能在 JavaScript 中使用 getAttribute('placeholder') 获取文本值。

但是,可以使用 JavaScript 查看样式属性,而不是在 CSS 文件中手动查找它们。这并不理想,但我创建了一个通用函数,允许您指定选择器(或选择器的一部分)以及您要查找的属性,它将遍历所有样式表并将表格记录到控制台.

function getSelectorStyle(selector, attribute) {

    var rules = [];

    function CSSRule(sheet, selector, value) {
        this.sheet = sheet;
        this.selector = selector;
        this.value = value;
    }

    var styleSheets = document.styleSheets;
    for (var i = 0; i < styleSheets.length; i++) {
        var currentSheet = document.styleSheets[i];
        if (currentSheet != null) {
            var ruleList = currentSheet.cssRules;
            if (ruleList != null) {
                for (var j = 0; j < ruleList.length; j++) {
                    var currentRule = ruleList[j];
                    if (currentRule.selectorText != null) {
                        if (currentRule.selectorText.indexOf(selector) != -1) {
                            var sheetLocation = currentSheet.href ? currentSheet.href : "inline-css";
                            var item = new CSSRule(sheetLocation, currentRule.selectorText, currentRule.style[attribute]);
                            rules.push(item);
                        }
                    }
                }
            }
        }
    }

    console.table(rules)
}

getSelectorStyle("placeholder", "color");

更新:

就您的颜色与亚马逊网站不匹配的问题而言,根据下面的 cmets,似乎未应用选择器 .form-control::-webkit-input-placeholderinput 字段不包含在 form-control 中。而是应用默认占位符颜色,即 #A9A9A9(至少在 Chrome 中),这就是您所看到的。

【讨论】:

  • 谢谢!但是对于那些还没有开始学习 JS 的人来说,除了使用 JavaScript 之外,还有什么办法吗? :)
  • 我不知道,除非有一个 Chrome 扩展程序可以有效地做到这一点。但是,您不必担心过多地理解代码。您只需要在页面的控制台中运行代码(例如,在 DevTools 中使用 Snippet),然后您可以使用 getSelectorStyle("placeholder", "color"); 在控制台中执行它。这将注销所有包含“占位符”的选择器,以及相关的“颜色”值。我可以考虑在某个时候创建​​一个扩展来隐藏实现细节。
  • 谢谢,它有效!但是有一个问题:函数返回了颜色,但它不匹配 - 它更暗
  • @AleksandrMikheev 可能有一个 CSS filter 属性改变了计算值?你能提供我可以测试的链接或sn-p吗?
猜你喜欢
  • 2012-11-08
  • 1970-01-01
  • 2019-01-03
  • 2019-10-09
  • 2012-04-12
  • 1970-01-01
  • 2020-08-03
  • 2011-08-15
  • 1970-01-01
相关资源
最近更新 更多