html - 如何为不同的浏览器组合相同的 css 样式

标签 html css

我正在使用 querySelector更改某些元素的样式。

对于某些样式,不同的浏览器有不同的版本。在这种情况下,Chrome 的 fit-content 和 Mozilla 的 -moz-fit-content

如果我想在 Chrome 上运行,代码如下所示:

document.querySelector('.my-element').style.height = "fit-content";

对于 Mozilla:

document.querySelector('.my-element').style.height = "-moz-fit-content";

我的问题是:有没有办法将它们结合起来?通过上述工作方式,一次只适用于一个浏览器,我希望两者都适用。

最佳答案

鉴于可能答案的范围很大、不可预测(且可变),应避免浏览器检测/嗅探。

在您的 CSS 中定义包含您需要的前缀的类,并将该类添加(或替换)到元素 MDN: className . JavaScript 将是一条语句,添加一个已经列出所有供应商前缀的类。

.anotherclass {
    height: -moz-fit-content;
    height: -webkit-fit-content;
    height: fit-content;
}

document.querySelector('.my-element').className = 'anotherclass';

如果你愿意,你也可以使用类似 PrefixR 的工具,或类似的,为您的样式表添加前缀。

另外值得一提的是 Can I use检查您是否还需要一些前缀。

关于html - 如何为不同的浏览器组合相同的 css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720953/

相关文章:

html - Internet Explorer 中的 Div 相对定位问题

javascript - 使用 jQuery 切换复杂弹出式样式 css 菜单的可见性

javascript - 左侧为粘性侧边栏,右侧为可滚动内容的布局

javascript - 在 html 末尾包含 jquery 和 js 的解决方案,同时包含在中间的控件需要 $(document).ready

javascript - 输入下一个文本时,angularjs 搜索不起作用

iphone - 使用 Phonegap 进行 native 应用程序开发

javascript - 当目标有多个类时,jQuery 单类选择器不会触发

html - 使用 CSS3 动画加速闪烁计时器

css - 使单行元素成为下一行的最后一个但不是全 Angular ?

css - 在 CSS 属性中访问 GWT ImageResource?