css - 使用浏览器前缀覆盖 CSS

标签 css vendor-prefix

我的页面在使用 Safari 进行页面加载时出现显示问题(显示内联 block 元素的宽度为 0,在使用 JS 内联样式后就可以了)。我可以用我的 span 元素的这个额外样式来解决这个问题:

display: inline-block; //standard for all browsers
display: -webkit-inline-box; //safari fix

我必须首先使用标准,然后再使用我的修复。在当前的浏览器版本上,它看起来很适合 FF、IE 9-11、Chrome 和 Safari(Mac 桌面)。

我现在的问题是:顺序正常吗?或者我在使用某些浏览器时会遇到问题吗? (也许浏览器会想:“哦,我必须让内联元素(span)显示:inline-block”。下一行“哦,我不知道那个属性(-webket-inline-flex),所以我使用标准显示:内联”。)

希望你明白我的意思? :)

最佳答案

顺序很好,但是你会发现任何支持-webkit-inline-box的浏览器都会使用它而不是inline-block。这可能会导致问题,因为浏览器前缀版本的实现方式可能无法反射(reflect)非浏览器前缀版本的实现方式。

例如,Google Chrome 支持 -webkit-inline-box 并将使用它而不是 inline-block。在我的脑海中,webkit-inline-box 是基于旧的过时版本的 Flexbox 规范。

也许更好的解决方案是弄清楚为什么 Safari 为您的 inline-block 元素提供 0 的宽度。这不是我亲眼所见的行为,但 Safari 通常不符合我测试的生产浏览器。

关于css - 使用浏览器前缀覆盖 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959737/

相关文章:

jquery - 页面导航后事件类不起作用

css - 线性渐变仅适用于 -moz 供应商前缀

html - 在子悬停时影响父 div

html - 防止 CSS 引用在移动设备上换行

html - 使用 css 渐变的 Angular 网格图案

javascript - vanilla javascript 前缀以 css 选择器开头

css - 为什么 text-align 的浏览器前缀有不同的行为,哪个是正确的?

javascript - 消除 CSS 中 vendor 前缀的脚本

css - -ms-animation 我应该为旧浏览器包含这个吗?

html - <p> 不断脱离 <div>