1

使用 PHP 将 css 十六进制代码转换为较短的对应代码的最佳方法是什么?只需编写一个 css 压缩脚本,尽管它可能对文件大小有所帮助。

谢谢

4

1 回答 1

0

在这种情况下,您希望从一种格式(#RRGGBB,每个通道具有 8 位颜色信息)转换为明显不同的格式(#RGB,每个通道只有 4 位颜色信息)。这只能在两个十六进制数字相同的情况下完成。

您可以尝试一些简单直接的方法,如下所示:

function compress_css_colour($original) {
    if (   $original[1] == $original[2]
        && $original[3] == $original[4]
        && $original[5] == $original[6]) {
        return "#" . $original[1] . $original[3] . $original[5];
    } else return $original;
}

echo compress_css_colour("#aabbcc");
// prints "#abc"

肯定有更优雅的解决方案,尽管这个解决方案适用于一般情况。您还需要增加一些鲁棒性 - 如果原始 CSS 颜色格式不正确,或者它是#RRGGBBAA 形式怎么办?

于 2012-09-29T20:54:27.957 回答