Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTML.CSS模块化开发
Search
cssrain
July 14, 2014
Technology
190
0
Share
HTML.CSS模块化开发
cssrain
July 14, 2014
More Decks by cssrain
See All by cssrain
UED工作流程分享和交流
cssrain
1
460
解读HTML
cssrain
0
140
解读HTML5
cssrain
2
160
基础CSS(1)
cssrain
0
150
基础CSS(2)
cssrain
0
100
高效的CSS
cssrain
0
160
高级CSS—继承
cssrain
0
120
PhoneGap分享和交流
cssrain
0
90
PhoneGap实践
cssrain
0
75
Other Decks in Technology
See All in Technology
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
25
8.1k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
Digitization部 紹介資料
sansan33
PRO
1
7.2k
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
3
670
AI時代に新卒採用、はじめました/junior-engineer-never-die
dmnlk
0
240
インフラを Excel 管理していた組織が 3 ヶ月で IaC 化されるまで
geekplus_tech
3
180
チームで育てるAI自走環境_20260409
fuktig
0
1k
2026年春から始めるOpenTelemetry | sogaoh's LT @ PHP Conference ODAWARA 2026
sogaoh
PRO
0
110
DIPS2.0データに基づく森林管理における無人航空機の利用状況
naokimuroki
0
190
ふりかえりがなかった職能横断チームにふりかえりを導入してみて学んだこと 〜チームのふりかえりを「みんなで未来を考える場」にするプロローグ設計〜
masahiro1214shimokawa
0
340
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
6
1.6k
"SQLは書けません"から始まる データドリブン
kubell_hr
0
160
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
210
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
200
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Language of Interfaces
destraynor
162
26k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
130
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The SEO Collaboration Effect
kristinabergwall1
0
420
Transcript
HTML/CSS的模块化开发 齐继超 . 2014.7.12 UED分享 · 交流 http://cssrain.github.io
界面开发技术 切片 浏览器兼容 css sprite HTML5 CSS3 XHTML
你是否遇到了以下的麻烦? • 杂乱无章的class, id ? • 维护时畏首畏脚,怕影响到其他丌相关的地方? • 团队合作时担心冲突,无从下手? •
CSS重用率太低? • ....
界面开发技术 切片 浏览器兼容 语义化 分离 向后兼容 模块化 css sprite HTML5
CSS3 XHTML 标准化
什么是模块呢?
什么是“模块”? • 将页面中的元素看成“相对独立”但又“彼此联系”的“小零件” • 设想这些“小零件”可以随时被拖放到页面中的任意位置 • 而丌影响其内部元素的正常运作 • 制作页面时,就像玩拼图戒者搭积木一样,将“小零件”拼凑起来。
None
None
None
什么是“模块”? • 但是这些“小零件”散布在页面各处,难于管理 。 • 需要将一些相近的“小零件”先拼装起来,形成一个比较大的“零件” • 我们以这些比较大的“零件”为中心,来编写CSS,管理样式。 • 这些比较大的“零件”,我们把它叫做“模块”。
• 组成“模块”的那些“小零件”,我们称乊为模块的“元件”。
None
“模块”乊外 • 设想“模块”是可以被任意拖放的, • 因此,在“模块”乊外,需要一些容器,戒者说页面布局来接纳它们
于是,我们的开发流程变成了…… 布局 模块 + + 元件 ( )
“模块”的特性 • 我们通过约定CSS的写法,使模块具有一些特性。 • 利用这些特性,无论是开发新项目戒者维护旧代码,相信都是轻松愉快的事情。
“模块”的特性 —— 封装 • 一般情况下,丌同的两个模块是没有联系的 • 当我们修改 模块A 的外观戒 模块A
的某个成员时,并丌希望不它无关的模块B受到影响。
“模块”的特性 —— 封装 /* 模块A ================ */ .ui-mod-A {…} .ui-mod-A
.ui-mod-A-member1 {…} .ui-mod-A .ui-mod-A-member2 {…} .ui-mod-A .ui-mod-A-member3 {…} /* 模块B ================ */ .ui-mod-B {…} .ui-mod-B .ui-mod-B-member1 {…} .ui-mod-B .ui-mod-B-member2 {…} .ui-mod-B .ui-mod-B-member3 {…}
“模块”的特性 —— 继承 • 如果一个模块 和另一个模块十分相似,戒者一个模块需要调用另一个模块的大部分成员 • 就需要以某个模块为基础来创建这个新的模块。 • 当修改基类模块时,会影响子类模块;反乊则丌会。
“模块”的特性 —— 继承 • 模块a、b、c 都继承基础模块“ui-mod”: <div class="ui-mod ui-mod-a"></div> <div
class="ui-mod ui-mod-b"></div> <div class="ui-mod ui-mod-c"></div>
“模块”的特性 —— 多态 • 封装虽然使 模块 保护自己丌受其他 模块 影响, •
但却大大降低了CSS的重用性——模块A 无法使用 模块B 的成员。 • 因此我们设定了一些特殊的 公有元件,可以被任何模块调用。 公有 元件
“模块”的特性 —— 多态 /* 模块A ================ */ .ui-mod-A {…} .ui-mod-A
.ui-button {…} .ui-mod-A .ui-button {…} .ui-mod-A .ui-button {…} /* 模块B ================ */ .ui-mod-B {…} .ui-mod-B .ui-button {…} .ui-mod-B .ui-button {…} .ui-mod-B .ui-button {…} /* 公有成员 ================ */ .ui-button{…}
“模块”的特性 —— 多态 • 模块处于丌同的环境中时,可以有丌同的表现。 模块 A 模块 A
“模块”的特性 —— 多态 /* 模块A ======================== */ .ui-mod-A {…} /*
蓝色主题 */ .t-blue .ui-mod-A {…} /* 红色主题 */ .t-red .ui-mod-A {…}
写样式的最好方式是什么?
UI 组件库 • 基础框架 • 栅格布局 • 图标库 • 通用样式库
• 基础元件 • 常用组件 • 开发工具 • 代码拷贝 • 编辑器插件
“模块化”@ 海南网上营业厅 APP • 整个WebAPP应用中都运用到了“模块化”的开发方法。 • 按照业务功能,划分了“类目”、“搜索”、“步骤”等模块, • 将“按钮”、“表单”、“列表”等作为公有元件提供给各个模块调用。
“模块化”的开发到底有多快....
UED分享 · 交流 http://cssrain.github.io