通常当我制作渐变时,我使用colorzilla gradient edtior。
默认情况下,它会为您生成 CSS。这是一个例子:
background: #1e5799; /* Old browsers */
background: -moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* IE10+ */
background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
虽然这肯定是彻底的,但我很好奇是否有必要。通过反复试验和消除过程,我将其简化为以下 CSS:
background: #1e5799; /* Old browsers */
background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
这种减少的 CSS 似乎在 Chrome、Firefox、IE8、IE9 和 IE10 中仍然有效。但是很难说,因为使用 Internet Explorer 兼容性视图并不总是能很好地工作(当我有 IE9 时,我的块工作,但在我升级到 IE10 并使用 IE9 兼容性视图后它没有)。我还下载了 IETester,并且使用这个工具取得了更大的成功。
我只是好奇是否有人能看到我是否遗漏了一些可能在给定案例或其他重要浏览器中损坏的重要 CSS,或者我是否可以进一步缩小它。
虽然重要性并不重要,但它在大小上却有很大的不同。
两个块之间的差异是618 bytes
,在使用 10 个渐变的工作表中,差异超过6 KB
. 正如您所看到的,这可以快速加起来(在缓存和今天的互联网速度之间授予它不是最重要的因素),我仍然认为它值得一看。