javascript - 通过 jQuery 更改背景属性会在 Safari 中造成问题

标签 javascript jquery css safari

Safari 的行为方式确实很奇怪,我不知道为什么它添加了额外的属性,这给我正在处理的元素带来了很多麻烦。

测试非常简单,这里有一些小技巧:

function clickme() {
	$('.container').css('background', "red");
}
.container {
  width: 100px;
  height: 100px;
  background-color: black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>
<button onclick="clickme();">Click me!</button>

您将看到,在 Chrome 或 Firefox 中,它会按照您的预期添加 background: red,现在在 Safari 中添加此内容:

style="background-color: red; background-position: initial initial; background-repeat: initial initial;"

这给我带来了麻烦,因为不允许我覆盖 background-image 的预定义 CSS 样式,我需要强制设置 background: '#color' 。否则,background-image 将始终位于 background-color 之上,即使它内联在元素中。 Safari 现在不是我的 friend 。

这个问题有什么解决办法吗?我将不胜感激。

提前致谢。

最佳答案

这似乎是使用内联简写 background 属性的问题。尝试将简写 background 属性分离为其各个属性:

$('.container').css('background-color', 'red');

或者您可以尝试使用具有 background 属性的类:

.bg {
    background: red
}

$('.container').addClass('bg');

关于javascript - 通过 jQuery 更改背景属性会在 Safari 中造成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41885692/

相关文章:

css - 如何解决 Bootstrap 3 中浏览器特定选择器的 css 警告?

javascript - 删除子节点

Jquery Mobile - 添加动态选择选项

jquery - 在视觉上禁用一个复选框,但允许它仍然提交它的值

JQuery 为 <li> 元素分配不同的宽度

jquery - Rails 4 - jQuery 或 Coffeescript 根据下拉选择显示/隐藏 <div>

javascript - 在原始文本字符串中的字符周围插入范围和类

javascript - 删除并重新添加函数 javascript?

javascript - 将特殊字符转换为 HTML

javascript - 如何在无限滚动加载新页面后请求类似 Tumblr 的按钮状态