【发布时间】:2014-03-16 04:49:53
【问题描述】:
有点麻烦。我需要从 display: none 切换到 display: flex, display: flex-box 和 display: -ms-flexbox 但它似乎破坏了我的代码.. 这是我到目前为止所拥有的:
$(elem).css({'display': 'flex', 'display': '-webkit-flex', 'display':'-ms-flexbox'});
虽然这有效:
$(elem).css({'display': 'flex'})
我需要另外两个用于 safari 和 IE10。有什么方法可以编写这样它不会破坏我的代码吗? Jquery 似乎被这种语法弄糊涂了。
【问题讨论】:
-
您应该始终订购带前缀的旧 > 带前缀的新 > 不带前缀。
-
感谢您的回复!这有什么特别的原因吗?浏览器读得更快还是怎么的?
-
啊等等我其实知道为什么,由于计算机读取css的顺序,不带前缀的会先读取不?
-
没有。浏览器应该忽略它们不理解的任何内容,并且应该优先使用同一属性的最后声明。
-
FOLKS - 请注意:当我提出声明时的第一个答案:“从 jQuery 1.8.0 开始,无需添加供应商前缀。” 在这种情况下这不是真的!!! jQuery 确实为 CSS 属性名称添加了供应商前缀 - jepp 这是真的(例如:
-prefix-transform:...)。但是这个问题是关于前缀 CSS 值而不是属性名称 - 并且不 - jQuery 不处理 CSS 值,例如display: -prefixed-flex或background:-prefixed-linear-gradient!
标签: javascript jquery css flexbox