CSS 内容:url() 无法与 Firefox 和 Edge 一起正常工作(即使使用 ::before 或 ::after)

CSS content: url() not working correctly with Firefox and Edge (even with ::before or ::after)

我正在覆盖 Kendo 调度程序在事件上放置的循环符号(一个“!”,周围有一个圆圈)是带有以下 css 的圆圈箭头:

.k-task>span.k-icon.k-i-warning {
        content: url('{!URLFOR($Asset.slds, "assets/icons/utility/sync.svg")}') !important;
        -webkit-filter: invert(100%);
        -moz-filter: invert(100%);
        -ms-filter: invert(100%);
        -o-filter: invert(100%);
    }
    .k-event>span.k-event-actions>span.k-icon.k-i-warning {
        content: url('{!URLFOR($Asset.slds, "assets/icons/utility/sync.svg")}') !important;
        margin-right: 10px;
        margin-top: -5px;
    }

这在 Chrome 中工作正常,但是,Firefox 和 Edge 仍然显示为带圆圈的“!”。我尝试在每一个之后执行 ::after 和 ::before 操作,但这并没有真正起作用。

做 ::before 替换了 !带有圆圈箭头,但图标很大,设置宽度和高度以及字体大小等...没有改变图标的​​大小。

Chrome 只是交换他们的默认值!图标与我在内容中指定的图标相同,因此不需要其他大小更改。

如何使它在 Firefox 和 Edge 中正确显示?

这样试试

.k-task>span.k-icon.k-i-warning {
    width: 16px;
    height: 16px;
    -webkit-filter: invert(100%);
    -moz-filter: invert(100%);
    -ms-filter: invert(100%);
    -o-filter: invert(100%);
}
.k-event>span.k-event-actions>span.k-icon.k-i-warning:after {        
    content: '';
    background-size: contain;
    background-position: center center;
    background-image: url('{!URLFOR($Asset.slds, "assets/icons/utility/sync.svg")}') !important;
    margin-right: 10px; /*I am not sure why you need these*/
    margin-top: -5px;/*I am not sure why you need these*/
}

另一种方法(假设您可以控制 HTML):在输入后添加一个空白,然后使用 input+ span:after

在 CSS 中定位它
.field_with_errors {
  display: inline;
  color: red;
}
.field_with_errors input+span:after {
  content: "*"
}
<div class="field_with_errors">Label:</div>
<div class="field_with_errors">
  <input type="text" /><span></span> 
</div>

我在 AngularJS 中使用这种方法,因为它会自动将 .ng-invalid 类 添加到表单元素和表单中,但不会添加到 .