【问题标题】:How do I override CSS set on a pseudo element?如何覆盖在伪元素上设置的 CSS?
【发布时间】:2013-07-23 14:20:12
【问题描述】:

我知道以前有人问过这个问题,但我找不到覆盖这个 CSS 的干净方法:

.ui-input-search:after {
    content: "";
    height: 18px;
    left: 0.3125em;
    margin-top: -9px;
    opacity: 0.5;
    position: absolute;
    top: 50%;
    width: 18px;
}

我需要在元素上留下ui-input-search,但可以添加我自己的类,比如:

.ui-input-search-no-pseudo:after {
   content: "";
}

问题
有没有一种简单的方法可以删除“pseudo-css”而不必逐行覆盖 CSS?

谢谢!

【问题讨论】:

    标签: css overriding pseudo-element


    【解决方案1】:

    据我所知,除了覆盖所有属性之外别无他法。样式是在元素上定义的,它们不会因为另一个以该元素为目标的选择器而消失。

    如果您只想从页面中删除伪元素,您可以执行content: none

    从下面的 cmets 添加:

    content: "" 和 content: none 的区别在于 content: "" 产生一个没有内容的伪元素(即一个空的伪元素),而 content: none 阻止伪元素在全部。

    【讨论】:

    • content: none 是我所需要的。完美的!谢谢。
    • content: ""content: none 的区别在于content: "" 产生一个没有内容的伪元素(即一个空的伪元素),而content: none 阻止伪元素从正在生成。
    • @BoltClock 的评论应包含在答案中以供解释。
    【解决方案2】:

    这里content: ""; 完全没有影响,如果您想删除必须使用content:none; 的伪内容,它将删除以前添加的伪内容。

    content:none;
    

    如果没有帮助,您也可以尝试:

    display:none; 
    

    如果还是不行,那么您可以尝试以下方法,但我从不建议您使用 !important

     display:none !important;
    

    这里正在工作 jsfiddle

    https://jsfiddle.net/ganeshswami99/52duu0x8/1/

    【讨论】:

    • 请不要建议使用 !important 解决方案。每个初学者都会复制
    • @vanrado,谢谢,我更新了代码并注明不要使用 !important
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2020-04-21
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多