所以我为我的页面风格抢了一些CSS,它是什么东西,给了我一个漂亮的旧彩虹渐变背景。
background-color:#ff0000;
background-image: -moz-linear-gradient( left, #ff0000, #ffa500 13.0%,#ffff00 26.0%,#0000ff 39.0%,#008000 52.0%,#4b0082 65.0%,#ee82ee 78.0%);
background-image: -webkit-linear-gradient( left, #ff0000, #ffa500 13.0%,#ffff00 26.0%,#0000ff 39.0%,#008000 52.0%,#4b0082 65.0%,#ee82ee 78.0%);
background-image: -o-linear-gradient( left, #ff0000, #ffa500 13.0%,#ffff00 26.0%,#0000ff 39.0%,#008000 52.0%,#4b0082 65.0%,#ee82ee 78.0%);
background-image: -ms-linear-gradient( left, #ff0000, #ffa500 13.0%,#ffff00 26.0%,#0000ff 39.0%,#008000 52.0%,#4b0082 65.0%,#ee82ee 78.0%);
background-image: linear-gradient( left, #ff0000, #ffa500 13.0%,#ffff00 26.0%,#0000ff 39.0%,#008000 52.0%,#4b0082 65.0%,#ee82ee 78.0%)
我正在努力解决的问题是这个-moz和-webkit等是如何在线性渐变场前添加的。一定是这样吗?是不是你可以设置它以便它与每个浏览器说话?你觉得我?
答案 0 :(得分:2)
您可以使用CSS预处理器来减少工作量,例如:
http://compass-style.org/examples/compass/css3/gradient/
@include background-image(linear-gradient(red, blue));
W3C推荐供应商前缀,直到某个功能已按照推荐规范实施。
http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords
除此之外,没有办法避免供应商前缀。
一些有趣的读物:CSS vendor prefixes considered harmful
最初,供应商前缀的目的是允许浏览器制造商 开始支持实验性的CSS声明。
让我们说一个W3C工作组正在讨论一个网格声明(其中, 顺便说一句,这不是一个坏主意)。让我们再说一遍 有些人创建了草案规范,但其他人不同意 一些细节。众所周知,这个过程可能需要很长时间。
让我们进一步说微软作为一个实验决定 实现建议的网格。此时,微软无法做到 确保规范不会改变。因此,相反 将网格添加到CSS中,它添加了-ms-grid。
供应商前缀有点说“这是微软的解释 正在进行的提案。“因此,如果网格的最终定义是 不同的是,微软可以不加破坏地添加新的CSS属性网格 依赖于-ms-grid的页面
答案 1 :(得分:1)
浏览器前缀是必需的,直到它们成为规范的一部分。例如,我们以前必须执行webkit-border-radius
,现在只需border-radius
就可以了。随着支持的增加,它们将逐步淘汰,但它们可以很好地用于让用户满意。