CSS壓縮混淆 / 格式化 / 美化

来源:http://www.cnblogs.com/shouce/archive/2016/05/30/5541076.html
-Advertisement-
Play Games

<!doctype html><html><head><meta charset="utf-8"><title>CSS壓縮混淆 / 格式化 / 美化工具</title><style type="text/csss">@charset "utf-8";/* CSS Document */ *{marg ...


<!doctype html>
<html><head>
<meta charset="utf-8">
<title>CSS壓縮混淆 / 格式化 / 美化工具</title>
<style type="text/csss">
@charset "utf-8";
/* CSS Document */

*{margin:0; padding:0; font-family:"Microsoft YaHei UI"; font-size:14px; color:#444;}
img{border:none;}
li {list-style:none;}
a{text-decoration:none}
#wrap{ width:960px; margin:0 auto;}
#head, #mainbody, #foot{ width:100%;}

/*表單控制項樣式 start*/
.tarea { margin-left:20px; width:90%; height:220px; border:1px solid #e6e6e6; margin-bottom:12px; box-shadow:inset 1px 1px 1px #eee; padding:4px; border-radius:2px; line-height:18px; color:#CCC; font-size:12px;}
.tarea-on{color:#000;}
textarea{ overflow:auto; vertical-align:top;}
.sbtn{ cursor:pointer; display: inline-block; vertical-align:middle;height:27px; line-height:27px; padding:0 12px; border-radius:2px; border:1px solid #ddd; text-align:center;}
/*表單控制項樣式 end*/

.subbtn { margin-left:50px; margin-bottom:10px;}
.center h2{ margin-left:30px;}
.sitetip{ margin-bottom:12px;}

</style>
</head>
<body>
<div id="wrap">
<div id="head"></div>
<div id="mainbody">
<div class="center">
<h1>CSS壓縮混淆 / 格式化 / 美化工具</h1>
<hr />
<h2 class="sitetip">貼入要格式化或壓縮的CSS代碼:</h2>
<textarea id="code" class="tarea">格式化或壓縮的CSS代碼</textarea>
<div class="subbtn">
<input type="button" onClick="CSS('packAdv')" value="高級壓縮" class="sbtn" />
<input type="button" onClick="CSS('pack')" value="普通壓縮" class="sbtn" />
<input type="button" onClick="CSS('format')" value="格式化" class="sbtn" />
</div>
<h2 class="sitetip">轉換後的css代碼: </h2>
<textarea id="packer" class="tarea tarea-on"></textarea>
</div>
</div>
<div id="foot"></div>
</div>
<script type="text/javascript">
/**
* css 壓縮 格式化
*/
var CSSCoder = {
format: function (s) {//格式化
s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
s = s.replace(/;\s*;/g, ";");
s = s.replace(/\,[\s\.\#\d]*{/g, "{");
s = s.replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2");
s = s.replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2");
s = s.replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2");
return s;
},
packAdv: function (s) {//高級壓縮
s = s.replace(/\/\*(.|\n)*?\*\//g, "");
s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
s = s.replace(/\,[\s\.\#\d]*\{/g, "{");
s = s.replace(/;\s*;/g, ";");
s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (s == null) ? "" : s[1];
},
pack: function (s) {//普通壓縮
s = s.replace(/\/\*(.|\n)*?\*\//g, "");
s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
s = s.replace(/\,[\s\.\#\d]*\{/g, "{");
s = s.replace(/;\s*;/g, ";");
s = s.replace(/;\s*}/g, "}");
s = s.replace(/([^\s])\{([^\s])/g, "$1{$2");
s = s.replace(/([^\s])\}([^\n]s*)/g, "$1}\n$2");
return s;
}
};

function CSS(s) {
document.getElementById("packer").value = CSSCoder[s](document.getElementById("code").value);
}
</script>
</body>
</html>

界面顯示如下圖所示


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • #include<stdio.h> #include<stdlib.h> #include<time.h> double jieguo(); void main(){ int i,k; int m,n; int j; printf("請輸入購買的號碼:\n"); scanf("%d",&i); j= ...
  • 偶爾調試代碼的時候會出現這種事情,之前並沒有特別註意,今天稍微搜集一下相關資料: 1.跳轉到的代碼的確沒有源碼,下載源碼後選擇源碼位置後便會正常顯示源碼. 2.源碼和class文件不一致.即便勾選了auto build選項,eclipse依然存在class沒有實時編譯的情況,致使我們當前的代碼和編譯 ...
  • SpringBoot啟動過程: 1、構建SpringApplication對象 2、執行run() 一、構建SpringApplication對象 說明: 實例化該類的時候會載入bean到applicationContext中去 這裡的入參是MySpringApplication.class這樣一個 ...
  • 本文結合實例詳述了策略模式的實現方式,並介紹瞭如何結合簡單工廠模式及Annotation優化策略模式。最後分析了策略模式的優缺點及已(未)遵循的OOP原則 ...
  • 在一個招聘網站中,通過限制用戶選擇職位標簽個數,可以精確定位用戶的職位。例如,以覆選框的形式為用戶提供一下備選職位標簽,限制用戶最多選擇3個,當超過三個時禁止用戶繼續選擇。 覆選框在問卷調查,招聘網站用的很廣,今天來介紹一下限制覆選框最多選擇幾項的方法: 思路: 監聽覆選框的onclick事件 監聽 ...
  • 一.簡介 Processing.js作者是John Resig,這是繼Jquery之後,他的第二個力作。 Processing.js提供了教學可視化的編程語言及運行環境。通過編寫processing程式,教師可以將複雜的物理、化學、數學原理形象的展示給學生。比如繪製各種曲線圖,波線,粒子,繪製分子結 ...
  • Div層拖動效果圖: 實現: CSS: View Code <style> div { position:relative; } </style> JS: View Code <script type="text/javascript"> var mouseover=true var xcoor; ...
  • 在JavaScript 中,this的指向是動態變化的,很可能在寫程式的過程中,無意中破壞掉this的指向,所以我們需要一種可以把this的含義固定的技術,於是就有了call,apply 和bind這三個方法,來改變函數體內部 this 的指向,因為函數存在「定義時上下文」和「運行時上下文」以及「上 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...