jquery - 设置影子 dom :after using next sibling in css? 的样式

标签 jquery html css

好的,拿这个:

<div class="foo">
    <p>Lorem
       :after
    </p>
</div>

可以这样设计:

 .foo p:after{
   content: 'ipsum';
   display: block;
  }

现在我有一个使用 javascript 动态添加到 p 中的表单,如下所示:

<div class="foo">
    <p>Lorem
        <form action="POST">
            <input type="text" />
            <button>SEND</button>
        </form>
       :after
    </p>
</div>

但我不能像这样使用相邻的伪选择器来设置表单的样式:

 .foo p >form + *:after{
   content: 'ipsum';
   display: block;
  }

为什么不呢? 以及我如何设计 :After 只有当它在表单旁边时? 克里斯

最佳答案

您正在尝试为 ::after 元素的伪元素设置样式,这些伪元素是表单元素的直接兄弟元素,它是 p 元素的直接子元素,而 p 元素是 .foo 的子元素。所有其他条件都匹配,但结构中的 form 元素没有直接兄弟。

为了在表单元素作为子元素的情况下设置 p::after 的样式,您需要有一个父选择器,而这实际上并不存在。根据规范,规则如下所示:

!form > p::after { ... }

关于jquery - 设置影子 dom :after using next sibling in css? 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309422/

相关文章:

javascript - ajax加载脚本不工作

javascript - Rails jquery sortable 无法正确保存位置

jquery - 带有 :not selector working when placed inside as jquery selector, 的 CSS 不是纯 CSS

javascript - 如何自动测试网页中的元素是否按预期呈现

javascript - Firefox 6 的平滑 CSS3 转换问题

javascript - 使用 jQuery 通过 url 中的哈希值显示页面的一部分

jquery - Html5 pushstate vs history.js vs HTML5-History-API

javascript - 将脚本/样式从 DOM 传递到子 iFrame

javascript - 将 SVG 从文件加载到 Canvas 并取消组合

HTML 电子邮件模板在 html 标记中有额外的空白空间