简短的几句js实现css压缩和反压缩功能
写在前面
最近一直在整理css,但因为现在Visual Studio 2013太智能了,它每每在我按ctrl+E+D进行格式化代码的时候,就会将css进行层次格式化(如下图所示),而这个格式让我老大实在无法忍受,我老大认为它实在是太浪费空间了。
那我应该怎么办呢,每次将本地代码上传之前都打开另外一个vs10,然后复制粘贴,可是下次从服务器拉下来代码我一编辑,手痒一下就又变成上面这个鬼样,折磨的我呀
刚刚看了豪情的一篇文章,http://www.cnblogs.com/jikey/archive/2010/04/19/1715474.html 才发现有这么简单的方法来实现css的格式化,瞬间觉得弱爆了
CSS压缩效果见下
body * { font-size:10pt; }/* ss sda */
p
{ clear:left; padding:5px 10px;
}
td
,
fieldset
{ padding : 10px ; }
textarea {
width:90%;
height:10em;
}
压缩代码 格式(多行) 格式(单行) 还原代码
大家可以点击上面的“压缩代码”、“格式多行”等按钮试一下效果
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里面就可以了)
简短的几句js实现css压缩和反压缩功能的更多相关文章
- 将Microsoft Ajax Minifier集成到VS2013对JS、CSS进行编译时压缩
在网站发布中,一般要将js,css文件压缩减少体积,以减少在HTTP请求中的流量.将Microsoft Ajax Minifier集成到VS2013中就可以对JS.CSS进行编译时压缩. VS2013 ...
- 【web性能】 JS、CSS的合并、压缩、缓存管理
本篇文章主要讨论下目前JS,CSS 合并.压缩.缓存管理存在的一些问题,然后分享下自己项目中用到的1个处理方案,并提供1个实例下载. 存在的问题: 合并.压缩文件主要有2方面的问题: 1. 每次发 ...
- gulp 实现 js、css,img 合并和压缩
前提条件,知道如何安装nodejs.gulp,这里不做介绍,可以自行google 实现此功能需要安装的gulp工具有如下 npm install gulp-htmlmin gulp-imagemin ...
- gulp 实现 js、css,img 合并和压缩(转)
前提条件,知道如何安装nodejs.gulp,这里不做介绍,可以自行google 实现此功能需要安装的gulp工具有如下 npm install gulp-htmlmin gulp-imagemin ...
- 使用yuicompressor-maven-plugin压缩js及css文件
本文介绍通过使用yuicompressor-maven-plugin插件实现js及css代码的自动压缩,方便集成到持续集成环境中,如jenkins. 一.配置yuicompressor-maven-p ...
- 【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css
在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原 ...
- (转)使用yuicompressor-maven-plugin压缩js及css文件(二)
本文介绍通过使用yuicompressor-maven-plugin插件实现js及css代码的自动压缩,方便集成到持续集成环境中,如jenkins. 一.配置yuicompressor-maven-p ...
- 在ASP.NET MVC中,使用Bundle来打包压缩js和css(转)
转自:http://www.cnblogs.com/xwgli/p/3296809.html 在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和c ...
- java Web程序使用wro4j合并、压缩js、css等静态资源
在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...
随机推荐
- 分布式环境下Unique ID生成方法
ID即标示符,在某个搜索域内能唯一标示其中某个对象.在关系型数据库中每个表都需要定义一个主键来唯一标示一条记录.为了方便一般都会使用一个auto_increment属性的整形数做为ID.因为数据库本身 ...
- 2703 奶牛代理商 XII
2703 奶牛代理商 XII 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 小徐从美国回来后,成为了USAC ...
- 3110 PHP常见问题
1.中文显示 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&g ...
- 【转】【Asp.Net】asp.net服务器控件创建
VS新建一个Web服务控件工程,会默认生成以下代码: namespace WebControlLibrary { [DefaultProperty("Text")] [Toolbo ...
- Android Studio使用中的异常
Android studio教程:[4]真机测试 1.连不上手机 Android Studio识别不了手机(最后还是恢复成勾中的状态),重启,Android Studio连接真机没反应? 2.连上手机 ...
- ESLint 检查代码质量
利用 ESLint 检查代码质量 其实很早的时候就想尝试 ESLint 了,但是很多次都是玩了一下就觉得这东西巨复杂,一执行检查就是满屏的error,简直是不堪入目,遂放弃.直到某天终于下定决心深入看 ...
- Linux 字符集转化
命令行"iconv --list" 查看Linux操作系统支持的字符集 iconv_open 设置字符集转化 --iconv_t iconv_open(const char *to ...
- 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
我从同学那拷贝来一个数据库,在他那都可以用,可是当我附加到自己SQL Server上时,数据库显示为只读,我查看过数据库源文件所在的文件夹都正常!请高手指教!谢谢 ================== ...
- vbs实现的支持拖动的txt文本切割器
vbs实现的支持拖动的txt文本切割器 作者: 字体:[增加 减小] 类型:转载 时间:2008-06-20我要评论 用vbs实现的txt文本文件切割器,默认为8000个字符切为一个文件.支持拖动. ...
- 社交网站好友储存设计和实现(PHP+MySQL)
最近手头的一个网站新增社交功能,用户可以互加好友. 通常,对好友列表设计是新增一个好友,就往好友列表新增一行,当要查询一个用户好友 SELECT * FROM WHERE userid="1 ...