当前位置: 首页 > 面试题库 >

如何使用jQuery访问伪元素的样式属性?

齐振
2023-03-14
问题内容

就上下文而言,这是对先前问题的后续。与其深入研究cssRules,我不希望逻辑基于jQuery选择器来搜索那些规则的
效果

给定默认属性

.commentarea .author:before {
    background-image: url(http://...);
    background-position: -9999px -9999px;
    /* ... */
}

被有选择地修改为

.author[href$="gbacon"]:before /* ... */ {
  content: "";
  background-position: 0 -140px
}

如何选择各自背景位置具有默认值的伪元素?按照如下方式复制选择器

GM_log("size = " + $(".commentarea .author:before").size());

什么都不匹配。试图.siblings()

$(".commentarea .author")
  .map(function(i) {
         GM_log($(this)
                  .siblings()
                  .map(function (i) { return $(this).css("background-image") })
                  .get()
                  .join(", "))
       });

仅产生none值。


问题答案:

您不能像这样使用:before:after伪元素。它们的目的是在分别指定的选择器之前和之后插入内容。

用法示例:

HTML:

<span class='a'>
    Outer
    <span class='b'>
        Inner
    </span>
</span>

CSS:

.a .b:before {
    content: "|Inserted using :before|";
}

.a {
    color: blue;
}

.b {
    color: red;
}

结果:

发生的事情是,文本|Inserted using :before|被插入到内部跨度之前(实际上是在内部跨度之前),因为它是class
b,是class 元素的后代a。基本上,:before并且:after不要选择; 他们修改。

例:

这无法正常工作:

HTML:

<span class='a'>
    <p>More text</p>
    <span class='b'>
        <p>More text</p>
        Inner
    </span>
</span>

CSS:

.a .b:before {
    text-size: 100px;
}


 类似资料:
  • 任何支持style 特性的HTML 元素在JavaScript 中都有一个对应的style 属性。这个style 对象是CSSStyleDeclaration 的实例,包含着通过HTML 的style 特性指定的所有样式信息,但不包含与外部样式表或嵌入样式表经层叠而来的样式。在style 特性中指定的任何CSS 属性都将表现为这个style 对象的相应属性。对于使用短划线(分隔不同的词汇,例如ba

  • 问题内容: 在CSS中,将鼠标悬停在元素上时,可以使用:hover伪类为其指定视图: 如何使用jquery添加或“打开”此伪类?通常在jQuery中,如果您想添加一个类,可以这样做: 我已经尝试过“ hover”,但这实际上是在元素中添加了一个名为“ hover”的类。 如果有人知道写什么,请告诉我!谢谢! 问题答案: 您不能强迫某个伪类使用jQuery来应用。伪类(尤其是动态伪类)不是这样工作的

  • 问题内容: 是否可以使用或在angular2中更改伪元素的样式? 为了使div上的模糊效果像叠加层一样,我应该在伪元素上设置背景图像。 我尝试了类似的东西 它没有用。我也试过了 问题答案: 不,这不可能。实际上,这不是一个Angular问题:伪元素不是DOM树的一部分,因此不会暴露任何可用于与其交互的DOM API。 如果要以编程方式处理伪元素,通常的方法是间接的:添加/删除/更改类,并在CSS中

  • 本文向大家介绍jQuery修改CSS伪元素属性的方法,包括了jQuery修改CSS伪元素属性的方法的使用技巧和注意事项,需要的朋友参考一下 CSS伪元素(pseudo elements)不是DOM元素,因此你无法直接选择到它们。 假设有如下HTML代码: 和CSS代码: 现在你想在某个元素的click事件中动态的把techbrood:before的width属性设置为100%, 有两个方法,一个是

  • css是页面不能分隔的部分,jQuery中也提供了一些css相关的实用的办法。前面章节中有使用过 addClass()为元素添加css样式风格。本节主要介绍jQuery如何设置页面的样式风格。包括添加、删除、动态切换等。 1. 添加、删除css类别。 $(function() { //同时添加多个CSS类别 $("img").addC

  • 9.6. 访问元素属性 XML 元素可以有一个或者多个属性,一旦你已经解析了一个 XML 文档,访问它们就太简单了。 在这部分中,将使用 binary.xml 语法文件,你在上一节中已经看到过了。 这部分由于某个涵义重叠的术语可能让人有点糊涂。在一个 XML 文档中,元素可以有属性,而 Python 对象也有属性。当你解析一个 XML 文档时,你得到了一组 Python 对象,它们代表 XML 文