写在前面
最近一直在整理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(/( | |s)*/ig, '$1'); code = code.replace(/ | |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 '); code = code.replace(/ *(})/ig, '$1 '); code = code.replace(/(*/)/ig, '$1 '); return code; } this.formatOver = function () { var code = this.init(); code = code.replace(/(})/ig, '$1 '); code = code.replace(/(*/)/ig, '$1 '); 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里面就可以了)