有没有办法让跨浏览器的CSS3代码干掉?

Tam*_*Pap 13 javascript css css3

当我想在CSS3中创建渐变背景时,我必须这样做:

background-color: #3584ba;
background-image: -webkit-gradient(linear, left top, left bottom, from(#54a0ce), to(#3584ba)); /* Safari 4+, Chrome */
background-image: -webkit-linear-gradient(top, #54a0ce, #3584ba); /* Safari 5.1+, Chrome 10+ */
background-image:    -moz-linear-gradient(top, #54a0ce, #3584ba);  /* FF3.6 */
background-image:      -o-linear-gradient(top, #54a0ce, #3584ba); /* Opera 11.10+ */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#54a0ce', endColorstr='#3584ba'); /* IE */
Run Code Online (Sandbox Code Playgroud)

这真的很烦人.有没有更好的解决方案,例如jQuery插件,这将使我的代码跨浏览器兼容,如果我只是使用:

background-image: -webkit-linear-gradient(top, #54a0ce, #3584ba); /* Safari 5.1+, Chrome 10+ */
Run Code Online (Sandbox Code Playgroud)

例如?有没有工具可以帮助我更轻松地编写CSS3代码?

Wes*_*rch 20

有很多工具:

这些通常称为CSS预处理器.

你最终会写一次这样的东西,比如函数定义(通常称为"mixin"):

.linear-gradient(@start, @end) {
    background-color: @end;
    background-image: -webkit-gradient(linear, left top, left bottom, from(@start), to(@end)); /* Safari 4+, Chrome */
    background-image: -webkit-linear-gradient(top, @start, @end); /* Safari 5.1+, Chrome 10+ */
    background-image:    -moz-linear-gradient(top, @start, @end);  /* FF3.6 */
    background-image:      -o-linear-gradient(top, @start, @end); /* Opera 11.10+ */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@start', endColorstr='@end'); /* IE */
}
Run Code Online (Sandbox Code Playgroud)

然后申请:

.my-class {
    .linear-gradient(#54a0ce, #3584ba);
}
.my-other-class {
    .linear-gradient(#ccc, #aaa);
}
Run Code Online (Sandbox Code Playgroud)

极力推荐.