$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTML.CSS模块化开发
Search
cssrain
July 14, 2014
Technology
0
190
HTML.CSS模块化开发
cssrain
July 14, 2014
Tweet
Share
More Decks by cssrain
See All by cssrain
UED工作流程分享和交流
cssrain
1
440
解读HTML
cssrain
0
130
解读HTML5
cssrain
2
150
基础CSS(1)
cssrain
0
140
基础CSS(2)
cssrain
0
97
高效的CSS
cssrain
0
150
高级CSS—继承
cssrain
0
110
PhoneGap分享和交流
cssrain
0
87
PhoneGap实践
cssrain
0
68
Other Decks in Technology
See All in Technology
AIと二人三脚で育てた、個人開発アプリグロース術
zozotech
PRO
1
710
AWSセキュリティアップデートとAWSを育てる話
cmusudakeisuke
0
230
LT登壇を続けたらポッドキャストに呼ばれた話
yamatai1212
0
130
因果AIへの招待
sshimizu2006
0
950
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
450
研究開発×プロダクトマネジメントへの挑戦 / ly_mlpm_meetup
sansan_randd
0
110
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
800
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
170
ChatGPTで論⽂は読めるのか
spatial_ai_network
3
12k
チーリンについて
hirotomotaguchi
6
1.8k
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
120
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
320
Featured
See All Featured
Practical Orchestrator
shlominoach
190
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
BBQ
matthewcrist
89
9.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Rails Girls Zürich Keynote
gr2m
95
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Music & Morning Musume
bryan
46
7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
[SF Ruby Conf 2025] Rails X
palkan
0
510
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