PHP类重写CSS3规则以实现跨浏览器兼容性

时间:2010-09-24 03:17:51

标签: php css cross-browser

我需要一些帮助来编写一个很棒的类来获取样式表,检测浏览器特定的CSS3规则,并添加对所有兼容浏览器的支持。这样,我们就可以为一个浏览器编写样式表,然后在准备好生产时处理CSS文件。

到目前为止,我对这堂课的看法是:

class CssRewriter {

    public function reformCss($file) {
        // Get the CSS as a string
        $cssString = file_get_contents($file);

        // Use regex to capture all styles delimited by {...}

        // Use regex to determine if the any of the captured styles are browser
        // specific (starts with -moz, -webkit, etc)

        // Determine which CSS3 rules are not present and add them to the style
        // (so if you have -moz-linear-gradient, automatically add the webkit
        // version)
    }

}

2 个答案:

答案 0 :(得分:3)

让人惊讶。 CSS解析器并不像你想象的那么容易,伙计。根据正则表达式只是要求错误解释一个拼写错误。

不是你想要的答案,但很可能是一个更好的答案:你考虑过使用Sass和mixins吗?你不是第一个遇到CSS重复性问题的人,所以其他人已经面临着CSS预处理器的挑战。

答案 1 :(得分:0)

您最好的选择是修改现有的CSS解析器,如CSS Tidy,并添加一个额外的逻辑来输出向后兼容的CSS。