首页 > web前端 > css教程 > 正文

## 我们如何提高 CSS 路径的准确性和可读性?

Patricia Arquette
发布: 2024-10-25 11:14:30
原创
807 人浏览过

## How Can We Improve the Accuracy and Readability of CSS Paths?

来自文档元素的 CSS 路径:增强方法

当前生成 CSS 路径的方法可以改进以提高准确性和可读性。

原始函数:

var cssPath = function (el) {
  var path = [];

  while (
    (el.nodeName.toLowerCase() != 'html') && 
    (el = el.parentNode) &&
    path.unshift(el.nodeName.toLowerCase() + 
      (el.id ? '#' + el.id : '') + 
      (el.className ? '.' + el.className.replace(/\s+/g, ".") : ''))
  );
  return path.join(" > ");
}
登录后复制

生成如下 CSS 路径:

html > body > div#div-id > div.site > div.clearfix > ul.choices > li
登录后复制

为了精确起见,对于没有 ID 的元素,路径应包含 nth-child():

html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)
登录后复制

以下增强功能解决了这些问题:

var cssPath = function(el) {
    if (!(el instanceof Element)) 
        return;
    var path = [];
    while (el.nodeType === Node.ELEMENT_NODE) {
        var selector = el.nodeName.toLowerCase();
        if (el.id) {
            selector += '#' + el.id;
            path.unshift(selector);
            break;
        } else {
            var sib = el, nth = 1;
            while (sib = sib.previousElementSibling) {
                if (sib.nodeName.toLowerCase() == selector)
                   nth++;
            }
            if (nth != 1)
                selector += ":nth-of-type("+nth+")";
        }
        path.unshift(selector);
        el = el.parentNode;
    }
    return path.join(" > ");
 }
登录后复制

通过此增强功能,给定元素的 CSS 路径将更加精确和可读。

以上是## 我们如何提高 CSS 路径的准确性和可读性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!