简短的几句js实现css压缩和反压缩功能

写在前面

最近一直在整理css,但因为现在Visual Studio 2013太智能了,它每每在我按ctrl+E+D进行格式化代码的时候,就会将css进行层次格式化(如下图所示),而这个格式让我老大实在无法忍受,我老大认为它实在是太浪费空间了。

那我应该怎么办呢,每次将本地代码上传之前都打开另外一个vs10,然后复制粘贴,可是下次从服务器拉下来代码我一编辑,手痒一下就又变成上面这个鬼样,折磨的我呀

刚刚看了豪情的一篇文章,http://www.cnblogs.com/jikey/archive/2010/04/19/1715474.html  才发现有这么简单的方法来实现css的格式化,瞬间觉得弱爆了

CSS压缩效果见下


压缩代码 格式(多行) 格式(单行) 还原代码

 

 大家可以点击上面的“压缩代码”、“格式多行”等按钮试一下效果

JS实现CSS压缩及格式化原理

    <script type="text/javascript">
        function $(id) { return document.getElementById(id); }
        function cssCode(obj) {
            this.init = function () {
                var code = obj.value;
                if (!this.code || this.code == "") this.code = code;//先保存起来  以方便后续还原
                code = code.replace(/(\n|\t|\s)*/ig, '$1');
                code = code.replace(/\n|\t|\s(\{|\}|\,|\:|\;)/ig, '$1');
                code = code.replace(/(\{|\}|\,|\:|\;)\s/ig, '$1');
                return code;
            }
            this.compress = function () {
                var code = this.init();
                return code;
            }
            this.format = function () {
                var code = this.init();
                code = code.replace(/(\{)/ig, ' $1');
                code = code.replace(/(\{|\;)/ig, '$1\n\t');
                code = code.replace(/\t*(\})/ig, '$1\n');
                code = code.replace(/(\*\/)/ig, '$1\n');
                return code;
            }
            this.formatOver = function () {
                var code = this.init();
                code = code.replace(/(\})/ig, '$1\n');
                code = code.replace(/(\*\/)/ig, '$1\n');
                return code;
            }
            this.recover = function () {
                return (this.code) ? this.code : obj.value;
            }
            var my = this;
            obj.onkeydown = function () {
                my.code = "";
            }
        }
        var code = new cssCode($('cssCode'));
    </script>

大家看到没有,简简单单的几句话,也就是利用正则将换行、tab键、空格等去掉来实现压缩。

哎,发现自己太弱了,还是应该多跟园子里的大神学习下。(写这篇博文的意义还在于,原来让自己的博文上出现界面展示效果其实原理也很简单,只要把相关script和style插入到博文的html里面就可以了

posted @ 2015-07-02 05:08  静逸  阅读(2302)  评论(0编辑  收藏  举报