代码之家  ›  专栏  ›  技术社区  ›  montrealist

用CSS做引号

  •  0
  • montrealist  · 技术社区  · 16 年前

    我有一些遗留CSS我想清理。写这封信的人无法咨询。以下规则无效(CSS 2.1):

    html[lang=en] q: before, : lang(en) q: before {
        content: "“";
    }
    

    可以安全地假设作者的意思如下(这验证了):

    html[lang=en] q:before, q:lang(en):before {
        content: "“";
    }
    

    此外,第一个选择器与第二个选择器是否有任何不同?每个浏览器是否特定于某个浏览器?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Mr. Shiny and New 安宇    16 年前

    此选择器在Firefox中似乎不起作用:

    : lang(en) q: before 
    

    :lang(en) q:before
    

    这和

    q:lang(en):before
    

    您可以通过以下测试用例看到这一点:

    :lang(en) q:before {
      content: "a";
    }
    q:lang(en):before {
      content: "b";
    }
    
    <div lang="en">
    <q lang="zh">Hello zh</q> <q lang="en">Hello EN</q> <q>Hello Plain</q>
    </div>
    

    这给

     a"Hello zh" b"Hello EN" b"Hello Plain"
    

    基本上 :lang(en) q:before 规则说“在任何Q之前,在任何元素中使用英语”,而 q:lang(en):before 说“在英语中的任何Q之前”。

    另外,使用的两个选择器( html[lang=en] q:before :lang(en)q:之前 )并非完全相同,但如果相关浏览器理解其中一个选择器,则大多数情况下会达到相同的效果:lang(en)是一个较新的选择器,用于标识语言,而html[lang=en]是一个属性选择器,仅用于标识调用的某些属性 lang .

        2
  •  0
  •   Colin    16 年前

    before, : lang(en)
    

    这个 , : a:link ).

    附言 content before