领导,我不想写CSS代码.key

Similar documents
5-1 nav css 5-2

大漠 伪前端, 就职于淘宝


FP.pdf

上海浦~1


兽医临床诊断学实验指导

06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b

科展作品說明書01.PDF

Microsoft Word - 愛吐沙的蛤蜊

科展作品說明書--情定水果 香邀你我

Microsoft Word - 附件.doc

i

标题

第 一 部 分 投 标 邀 请 一. 项 目 名 称 : 北 京 大 学 附 属 中 学 副 食 品 商 店 协 议 供 货 商 招 标 项 目 二. 项 目 内 容 : 北 京 大 学 附 属 中 学 采 购 中 心 现 就 学 校 副 食 品 商 店 的 供 货 协 议 商 进 行 招 标, 中

我 可 以 向 你 们 保 证 以 下 的 内 容 100% 真 实, 请 您 一 定 耐 心 看 完 从 医 15 年 来, 我 也 反 复 告 诉 病 人 这 些 事 实 但 是 没 有 人 愿 意 去 听, 更 没 有 人 愿 意 去 相 信 或 许, 我 们 的 同 胞 们 真 的 需 要

<4D F736F F D C2E0BEC7A6D2A4ADB14DB0EAA4E52DB8D5C344A8F72E646F63>

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

第 一 编 总 则 第 一 条 为 保 障 煤 矿 安 全 生 产 和 职 工 人 身 安 全, 防 止 煤 矿 事 故, 根 据 煤 炭 法 矿 山 安 全 法 和 煤 矿 安 全 监 察 条 例, 制 定 本 规 程 第 二 条 在 中 华 人 民 共 和 国 领 域 从 事 煤 炭 生 产 和

第一章

第十一章 颈部疾病病人的护理

untitled

9.1.乳房炎

2016 年 全 省 一 般 公 共 预 算 收 入 表 ( 代 编 ) 项 目 2016 年 预 算 数 单 位 : 亿 元 2015 年 快 报 数 预 算 数 增 减 % 一 税 收 收 入 增 值 税 ( 含 改 征 增 值 税 )

第 1 列 的 按 鈕 從 Albatross ~ Duck 1, 第 2 列 按 鈕 從 Eagle ~ Hawk 2, 第 3 行 按 鈕 從 Ibis ~ Lark 3, 而 只 有 第 3 列 按 鈕 多 設 定 span 元 素 ( 理 由 後 面 會 詳 細 說 明 ) html 具 h

1-1 2

XHTML width/height bdo a code href object charset codebase hreflang archive lang type alt dir name name xml:lang rel/rev align shape/coords hspace/vsp

认定编号

Microsoft PowerPoint - Lecture7II.ppt

Microsoft PowerPoint - wu_si_chong_2nd_hua_zu_hun_su

Tz3.s92

HTML5 & CSS3 色彩 背景與漸層屬性 12-1 (color property) CSS 3 color HTML opacity HTML CSS Color Module Level 3 W3C CSS

标题

1. 2. Flex Adobe 3.

Primary Mathematics Catalogue(for schools) as at xls

<4D F736F F D20A54CA8D3A6DBA6F2B5D0C2C4AABAB0EAABD >

互動網頁技術系列課程 HTML與CSS網站基礎設計 [12pt]

RunPC2_.doc

張 院 長 從 小 浸 濡 在 中 醫 的 藥 香 環 境 中, 祖 母 與 母 親 更 擅 以 食 材 配 合 來 滋 補 調 養 身 體, 在 數 十 年 前, 就 極 具 食 療 的 養 生 觀 念, 更 將 藥 食 同 療 的 理 念 發 揮 極 致 張 維 鈞 院 長 從 小 在 藥 香


World Bank Document

jsj0.nps

coverage2.ppt

新 頒 法 規 輯 要 目 錄 分 類 頁 碼 壹 證 券 金 融 : ( 壹 ) 法 律 及 法 規 命 令 : 無 ( 貳 ) 行 政 規 則 ( 解 釋 函 令 ): 一 金 融 監 督 管 理 委 員 會 102 年 7 月 31 日 金 管 保 財 字 第 號 令

RUN_PC連載_8_.doc

国家环保总局

Microsoft Word - PHP7Ch01.docx

目 录

我 们 再 看 到 尼 西 米 记, 也 会 发 现 当 时 神 的 百 姓 有 一 颗 单 纯 受 教 的 心, 他 们 单 纯 的 听 从 神 的 教 导, 敬 畏 遵 从 神 的 训 诲 当 他 们 明 白 自 己 的 罪 孽 时, 个 个 俯 伏 在 地, 为 罪 痛 悔 哭 泣 在 整 个

动物学

05Cv1.mps

壹、

Fuzzy Highlight.ppt


gf

目 录 引 言 概 论 项 目 背 景 环 境 影 响 评 价 的 目 标 和 内 容 研 究 和 评 价 范 围 环 境 影 响 识 别 及 评 价 因 子 筛 选 评 价 类 别 与 评 价

untitled

FILTRON 1. DC AC AC 220V 50HZ / / / / 4. 1) / DC AC FILTRON DC AC FILTRON DC 12V 12VDC D

Transcription:

领导 我不想写 CSS 张鑫旭 25MIN 2018-03-31 YUEWEN USER EXPERIENCE DESIGN 01 1

YUEWEN USER EXPERIENCE DESIGN 砖家 02 CSS - 艺术家

YUEWEN USER EXPERIENCE DESIGN 03 CSS - 砖家 艺术家

YUEWEN USER EXPERIENCE DESIGN 04 领导, 我不想写 CSS了!

YUEWEN USER EXPERIENCE DESIGN 05 1. 设计稿 -> 页 2. 模块组装 模板编辑 3. 让 少难受 点

反复出现的 CSS 赋予类名 06.ell { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } <div class="cl-a ell"> </div> <div class="cl-b ell"> +1</div>

YUEWEN USER EXPERIENCE DESIGN 07

YUEWEN USER EXPERIENCE DESIGN 08 请问 : <div> 标签的语义是什么? <div class="cl-a ell"> </div>

CSS 与 定义标签 09 ell { display: block; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } <ell class="cl-a"> </ell> <ell class="cl-b"> +1</ell>

YUEWEN USER EXPERIENCE DESIGN 10

YUEWEN USER EXPERIENCE DESIGN 11 <ell> HTMLUnknownElement <x-ell> HTMLElement

CSS 与 定义标签 12 db-ell { display: block; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } <db-ell class="cl-a"> </db-ell>

YUEWEN USER EXPERIENCE DESIGN 13

YUEWEN USER EXPERIENCE DESIGN 14 仅适 在页 长尾区域

Sass Less 简化书写 -Sass 15 @mixin ell() { white-space: nowrap; text-overflow: ellipsis; @mixin w($width: 0) { } width: $width; overflow: hidden; }.class-a { } @include ell;.class-b { } @include w(100px); 复合 单独

Sass Less 简化书写 -Sass 16 @mixin ell() { white-space: nowrap; @mixin w($width: 0) { width: $width; } text-overflow: ellipsis; } overflow: hidden;.class-a { } @include ell;.class-b { } @include w(100px); 复合 单独

Less 简化书写 17.ell { white-space: nowrap; text-overflow: ellipsis;.w(@width: 0) { } width: @width; overflow: hidden; }.class-a { }.ell;.class-b { }.w(100px); 复合 单独

YUEWEN USER EXPERIENCE DESIGN 18

YUEWEN USER EXPERIENCE DESIGN.w(100px) 19 shift.

Sublime Emmet 插件 带缩写 20

Sublime 还 持 CSS 段 定义 21

22 /24

YUEWEN USER EXPERIENCE DESIGN 23

YUEWEN USER EXPERIENCE DESIGN 24 1. 可不可以不要 Tab/Enter 键? 2. 可不可以不写 px 单位 ;

造简化书写 -Qcss 25.class-a {.class-a { w100; ell; } width: 100px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } 没有括号, 没有点, 也没有回车键, 兼容标准写法

26 /24

Qcss So easy! 27 var keymap = { '<': '<', '>': '>', '&': '&' }; xxx.replace(/< & >/g, function(matchs) { }); return keymap[matchs];

28 keymap = { dn: 'display: none', db: 'display: block', m: 'margin: ', ml: 'margin-left: ', Part1: 键值映射对象 ell: 'text-overflow: ellipsis; white-space: nowrap; overflow: hidden' Part2: 键值匹配替换 法 }

29 var qcss=function(b){var c={};b.replace(/\/\*([\w\w]*?)\*\//,function(g,f) {f.split(";").foreach(function(j){var i=j.split("$")[1];if(i&&i.split(/ = :/).length==2){var h=i.split(/= :/);if(h[1].trim()&&h[0].trim()) {c[h[0].trim()]=h[1].trim()}}})});b=b.replace(/;base64,/g,"%%%%% %");b=b.replace(/:\/\//g,"#@#@#");var a=b.replace(/\{([\w\w]*?)\}/ g,function(j,f){f=f.replace(/\/\*([\w\w]*?)\*\//g,"");var h=" ";var g="{\n"+h,i="\n}";if(/\{/.test(f)){i="\n"+h+"}";h=h+h;g="{"+f.split("{") [0]+"{\n"+h;f=f.split("{")[1]}return g+f.split(";").map(function(k) {k=k.trim();if(!k){return""}if(k.indexof(":")!=-1){return k}return k.replace(/ ^([a-z]+)(.*)$/g,function(n,l,m){m=(m "").split(",").map(function(o) {return(o "").split(" ").map(function(p){p=p.trim();if(!p){return""} if(l=="l"){l="left: "}else{if(l=="t"){l="top: "}else{if(l=="r"){l="right: "} else{if(l=="b"){l="bottom: "}}}}if(!isnan(p)){if(l=="lh"&&p<5){return p} else{if(/^(?:zx op z fw)$/.test(l)==false&&p!="0"&&/ ^calc/.test(o.trim())==false){p=p+"px"}}}else{if(l=="tsl"){p=(e[p] p).replace(":","").trim()}else{if(l!="a"){p=c[p] d[p] p}}}return p}).join(" ")}).join(", ");if(/:/.test(l)==false){l=e[l] l+": "}m=m.trim();if(!m) {l=l.split(";").map(function(o){return o.trim().replace(/:\s+/,": ")}).join("; \n"+h)}return l+m})}).join(";\n"+h).trim()+i}).replace(/\w\{/g,function(f) {return f.replace("{"," {")}).replace(/\}(\. # \: \[ \w)/g,function(f){return f.replace("}","}\n")}).replace(/^\s{8}/gm," ").replace(/^\s{4}\}/ gm,"}");a=a.replace(/%%%%%%/g,";base64,").replace(/#@#@#/g,"://");return a}; Part1: 键值映射对象 Part2: 键值匹配替换 法 所有代码 ( 含美化 定义变量 ) 就这么多 ~

30

31 DEMO 不 扫

YUEWEN USER EXPERIENCE DESIGN 32

QCSS 压缩对 33 传统压缩 : taobao-min.css taobao-min.qcss 17 KB 42.65% 9.75 KB 加类名压缩 : taobao-min-cl.css taobao-min-cl.qcss 14.5 KB 50.13% 7.23 KB.product_list.t_mall {} ->.AE.AF {}

Service Worker 与 qcss 直连 34 self.addeventlistener('fetch', function(event) { event.respondwith(async function () { if (/\.qcss/.test(event.request.url)) { let res = await fetch(event.request); let text = await res.text(); return new Response(qcss(text), { qcss 编译成 css headers: { 'content-type': 'text/css; charset=utf-8' } }); } }()); });

35 test.qcss https://zhangxinxu.github.io/https-demo/online-compile/

YUEWEN USER EXPERIENCE DESIGN 36 相 过去,CSS 资源请求 体积可以 30%~50%!

YUEWEN USER EXPERIENCE DESIGN 37

逆向输出 CSS 压缩 具 38 CSS -> Qcss.class-a { width: 100px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;.class- a{w100;nowrap;text- overflow:ellipsis;ovh} }

CSS 压缩 具 -css2qcss 39 extra.css extra.qcss 110 KB 76.2 KB 30.97% < 20ms http://gulp.qcss.tech/css2qcss.js

YUEWEN USER EXPERIENCE DESIGN 40

YUEWEN USER EXPERIENCE DESIGN 41 The end~

42 类名独 定义标签 长尾, 局部 项 推荐 Emmet 和 snippet 速写 不受任何限制 Less 简化 受团队技术选型限制 Qcss 简写 项, 短命项 其它场合不推荐

类名独 长尾, 局部 项 推荐 43 定义标签 Emmet 和 不受任何限制 snippet 速写 Less 简化 受团队技术选型限制 Qcss 简写 项, 短命项 其它场合不推荐 Qcss 客户端 盒 低成本适 范围 编译加压缩

YUEWEN USER EXPERIENCE DESIGN 44 Thanks Q&A

YUEWEN USER EXPERIENCE DESIGN 45 Thanks Q&A 签售敬请期待