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
0
170
HTML.CSS模块化开发
cssrain
July 14, 2014
Tweet
Share
More Decks by cssrain
See All by cssrain
UED工作流程分享和交流
cssrain
1
350
解读HTML
cssrain
0
110
解读HTML5
cssrain
2
140
基础CSS(1)
cssrain
0
120
基础CSS(2)
cssrain
0
88
高效的CSS
cssrain
0
130
高级CSS—继承
cssrain
0
100
PhoneGap分享和交流
cssrain
0
80
PhoneGap实践
cssrain
0
55
Other Decks in Technology
See All in Technology
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
AIチャットボット開発への生成AI活用
ryomrt
0
170
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
680
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
The Role of Developer Relations in AI Product Success.
giftojabu1
1
130
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
880
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
複雑なState管理からの脱却
sansantech
PRO
1
150
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
4 Signs Your Business is Dying
shpigford
180
21k
Designing for Performance
lara
604
68k
Building Your Own Lightsaber
phodgson
103
6.1k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Done Done
chrislema
181
16k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
The Pragmatic Product Professional
lauravandoore
31
6.3k
GraphQLとの向き合い方2022年版
quramy
43
13k
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