内容简介
《精通CSS·高级Web标准解决方案》将有用的CSS技术汇总在一起,还总结了CSS设计中的极具实践,讨论了解决各种实际问题的技术,填补了一直以来CSS图书的空白。
CSS作为Web标准的一部分,已经成为现代网页设计中必不可少的关键要素。CSS看似简单,但真正精通CSS绝非易事。在使用CSS开发网站时,会遇到形形色色的浏览器bug和不一致问题,而解决方案又五花八门,往往让使用者感觉千头万绪,不知从何着手。
作为新的升级版,《精通CSS·高级Web标准解决方案》淘汰了过时的内容,补充了大量CSS领域的新技术,涵盖了CSS3和HTML5,无愧于Web设计人员必读的经典著作。
内页插图
精彩书评
“Andy Budd对CSS设计的底层技术和方法有着深刻的理解,而且更善于将这些知识娓娓道来。在跨浏览器支持问题上,无人可以望其项背。”
——Molly E. Holzschlag,Web标准项目负责人和W3C HTML工作组专家
“Andy Budd多年来一直在编写、设计和宣传基于标准的网页设计,我们现在有幸在本书中看到他以简洁清晰的方式讲授重要的CSS技术。本书提供了一套网页设计 人员不可或缺的解决方案、技巧和经验。”
——Dan Cederholm,《Web标准实战》的作者
目录
第1章 基础知识
1.1 设计代码的结构
1.1.1 标记简史
1.1.2 文档类型、DOCTYPE切换和浏览器模式
1.1.3 有效性验证
1.2 小结
第2章 为样式找到应用目标
2.1 常用的选择器
2.2 通用选择器
2.3 高级选择器
2.3.1 子选择器和相邻同胞选择器
2.3.2 属性选择器
2.3.3 层叠和特殊性
2.3.4 继承
2.4 规划、组织和维护样式表
2.4.1 对文档应用样式
2.4.2 样式指南
2.5 小结
第3章 可视化格式模型
3.1 盒模型概述
3.1.1 IE和盒模型
3.1.2 外边距叠加
3.2 定位概述
3.2.1 视觉格式化模型
3.2.2 相对定位
3.2.3 绝对定位
3.2.4 浮动
3.3 小结
第4章 背景图像效果
4.1 背景图像基础
4.2 圆角框
4.2.1 固定宽度的圆角框
4.2.2 山顶角
4.3 投影
4.3.1 简单的CSS投影
4.3.2 来自Clagnut的投影方法
4.4 不透明度
4.5 图像替换
4.5.1 FIR
4.5.2 Phark
4.5.3 sIFR
4.6 小结
第5章 对链接应用样式
5.1 简单的链接样式
5.2 让下划线更有趣
5.2.1 简单的链接修饰
5.2.2 奇特的链接下划线
5.3 已访问链接的样式
5.4 为链接目标设置样式
5.5 突出显示不同类型的链接
5.6 创建类似按钮的链接
5.6.1 简单的翻转
5.6.2 图像翻转
5.6.3 Pixy样式的翻转
5.6.4 CSS精灵
5.6.5 用CSS实现翻转
5.7 纯CSS工具提示
5.8 小结
第6章 对列表应用样式和创建导航条
6.1 基本列表样式
6.2 创建基本的垂直导航条
6.3 在导航条中突出显示当前页面
6.4 创建简单的水平导航条
6.5 创建图形化导航条
6.6 简化的“滑动门”标签页式导航
6.7 Suckerfish下拉菜单
6.8 CSS图像映射
6.9 远距离翻转
6.10 对于定义列表的简短说明
6.11 小结
第7章 对表单和数据表格应用样式
7.1 对数据表格应用样式
7.1.1 表格特有的元素
7.1.2 数据表格标记
7.1.3 对表格应用样式
7.1.4 添加视觉样式
7.2 简单的表单布局
7.2.1 有用的表单元素
7.2.2 基本布局
7.2.3 其他元素
7.2.4 修饰
7.3 复杂的表单布局
7.3.1 可访问的数据输入元素
7.3.2 多列复选框
7.3.3 表单反馈
7.4 小结
第8章 布局
8.1 计划布局
8.2 设置基本结构
8.3 基于浮动的布局
8.3.1 两列的浮动布局
8.3.2 三列的浮动布局
8.4 固定宽度、流式和弹性布局
8.4.1 流式布局
8.4.2 弹性布局
8.4.3 流式和弹性图像
8.5 faux列
8.6 高度相等的列
8.7 CSS列
8.8 CSS框架与CSS系统
8.9 小结
第9章 bug和修复bug
9.1 捕捉bug
9.2 捕捉bug的基本知识
9.2.1 尽量在一开始就避免bug
9.2.2 隔离问题
9.2.3 创建基本测试案例
9.2.4 修复问题,而不是修复症状
9.2.5 请求帮助
9.3 拥有布局
9.3.1 什么是布局
9.3.2 布局的效果
9.4 解决方法
9.4.1 IE条件注释
9.4.2 关于hack和过滤器的一个警告
9.4.3 明智地使用hack和过滤器
9.4.4 应用IEforMac带通过滤器
9.4.5 应用星号HTMLhack
9.4.6 应用子选择器hack
9.5 常见bug及其修复方法
9.5.1 双外边距浮动bug
9.5.2 3像素文本偏移bug
9.5.3 IE的重复字符bug
9.5.4 IE的“藏猫猫”bug
9.5.5 相对容器中的绝对定位
9.5.6 停止对IE的批评
9.6 分级浏览器支持
9.7 小结
第10章 实例研究:RomaItalia
10.1 关于这个实例研究
10.2 基础
10.2.1 着眼于HTML
10.2.2 reset.css
10.3 1080布局和网格
10.4 高级CSS和CSS特性
10.4.1 网站需要在每种浏览器中看起来完全一样吗
10.4.2 属性选择器
10.4.3 box-shadow、RGBa和text-overflow
10.5 字体链接和更好的Web排版
10.5.1 按以前的方式设置font-size
10.5.2 标点符号悬挂
10.5.3 多栏文本布局
10.5.4 @font-face
10.5.5 Cufón,向@font-face发展的过渡手段
10.6 用AJAX和jQuery增加交互性
10.6.1 AJAX
10.6.2 jQuery
10.6.3 使用AJAX和jQuery实现搜索
10.7 小结
第11章 实例研究:ClimbtheMountains
11.1 关于这个实例研究
11.2 样式表的组织和约定
11.2.1 screen.css
11.2.2 reset
11.2.3 使用条件注释的IE样式表
11.3 网格灵活性
11.4 用body类控制导航
11.4.1 突出显示当前页面
11.4.2 控制blockquote所处的层
11.5 战略性地选择元素
11.5.1 深层后代选择器
11.5.2 :first-child伪类
11.5.3 相邻同胞选择器
11.6 透明度、阴影和圆角
11.6.1 我们的目标
11.6.2 说明图像覆盖和RGBa透明度
11.6.3 组合类
11.6.4 border-radius
11.6.5 box-shadow
11.7 定位列表和显示内容
11.7.1 圆角
11.7.2 主海拔图
11.8 小结
精彩书摘
第1章 基础知识
1.1 设计代码的结构
大多数人不关心建筑物的地基。但是,如果没有坚固的地基,建筑物的主体也就不会存在了。虽然本书讨论的是高级的CSS技术,但是如果没有结构良好且有效的HTML文档,那么我们要做的许多事情都是不可能实现的(至少实现起来非常困难)。
在本节中,你将明白为什么结构良好且有意义的HTML文档在基于标准的CSS开发中非常重要,还将学习如何丰富文档的意义,从而让自己的开发工作更轻松。
1.1.1 标记简史
早期的Web仅仅是一系列相互链接的研究文档,使用HTML添加基本的格式和结构。但是,随着万维网的流行,HTML开始用来表现页面。人们结合使用字体和粗体标签来创建所需的视觉效果,而不只是用标题元素突出显示页面的标题。表格成了一种布局工具而不是显示数据的方式,人们使用块引用(blockquote)来添加空白而不是表示引用。Web很快就含义不清,成了字体和表格标签的大杂烩。Web设计者把这样的标记称为“标签汤”(见图1-1)。
网页变得越来越具表现力,代码却变得越来越难以理解和维护了。WTSKWYG(所见即所得)编辑器让设计者可以摆脱这些复杂性,它宣称可以提供全新的图形布局环境。遗憾的是,这些工具并没有使事情简化,反而添加了它们自己的复杂标记。使用FrontPage或Dreamweaver等编辑器能够通过简单的鼠标操作构建复杂的表格布局,但是嵌套的表格和“分隔线GIF”把代码弄得非常混乱。
......
前言/序言
尽管CSS资源的数量越来越多,但是在CSS邮件列表上仍然总是看到有人问同样的问题:如何让设计居中?最好的圆角框技术是什么?如何创建三列布局?
如果你熟悉CSS设计社区,那么寻找解决方案时无非就是回想一下某篇文章或某种技术曾在哪个网站重点介绍过。但是,如果你是CSS的初学者,或者没有时间阅读所有博客,那么这些信息可能并不好找。
CSS有些方面(比如定位模型和特殊性)比较晦涩,即使是有经验的CSS开发人员也会遇到
问题。这是因为大多数CSS开发人员都是靠自学的,他们从各种文章和别人的代码中学习经验,
而没有全面理解CSS规范。这也不奇怪,因为CSS规范本身十分复杂,常常还自相矛盾,它的目标读者是浏览器厂商而不是网页开发人员。
此外,还得应付浏览器问题。浏览器的bug和不一致性是现代CSS开发人员面对的一个最大问题。不幸的是,许多bug都没有很好地记载,它们的修复方法基本上只是在开发人员之间口口相传。你知道自己必须以某种方式做某件事,否则在某种浏览器中就会出问题。但是,你记不住是在哪种浏览器中会出问题,也说不清为什么会出问题。
所以,我产生了写这么一本书的想法。这本书将最有用的CSS技术汇总在一起,集中介绍实际的浏览器问题,从而弥补人们欠缺的CSS知识。本书会帮助你加快学习CSS的进程,使你的编码技术很快达到CSS专家的水平。
读者对象
本书适合具有HTML和ICSS基础知识的任何人①阅读。无论你是刚刚接触CSS设计,还是已经开发纯CSS站点好几年了,书中都有适合你的内容。如果你已经使用CSS一段时间了,但还没有达到专家级水平,那么你能够从本书获得最大的收益。本书为你提供了各种实用的建议和示例,可以帮助你精通现代CSS设计。
本书结构
本书前3章讨论基本的CSS概念和最佳实践,帮助你轻松地入门。
跃升前端技艺,驾驭现代网页设计:一套精益求精的实战指南 在日新月异的Web技术浪潮中,前端开发者的角色愈发关键。他们不仅需要构建视觉上引人入胜的界面,更需确保这些界面在各种设备、浏览器及性能要求下都能流畅运行。本书并非一本浅尝辄止的速成教程,而是一套深度探索CSS精髓、揭示高级Web标准解决方案的实战工具箱。它旨在带领读者超越基础语法的掌握,迈入精通CSS的殿堂,从而在复杂的Web开发环境中游刃有余,打造出既美观又高效的现代化网站。 本书的核心理念在于“解决问题”。它不是罗列CSS属性的字典,而是围绕实际开发中遇到的棘手难题,提炼出一套套经过实践检验、具备前瞻性的解决方案。从响应式设计的精妙布局,到复杂动画的流畅实现,再到性能优化的极致追求,本书将逐一剖析,并提供清晰、可复用的代码示例和详尽的原理阐释。我们相信,真正的精通源于对根本原理的深刻理解,以及将这些原理应用于解决实际挑战的能力。 为何选择精通? 在Web设计的早期,CSS被视为一种简单的样式表语言。然而,随着Web标准的不断演进和浏览器功能的日益强大,CSS的能力早已今非昔比。如今,CSS足以支撑起几乎所有你能想象到的视觉表现和交互逻辑。但这也意味着,要想在众多前端开发者中脱颖而出,掌握CSS的“深度”和“广度”变得至关重要。 本书将深入探讨以下几个关键领域,它们是构建现代、高性能、用户友好型Web应用的基础: 响应式设计的终极哲学与实践: 响应式设计早已不是可选项,而是必备技能。本书将从断点设置的策略,到弹性布局(Flexbox)与网格布局(Grid)的深入应用,再到视口单位(viewport units)的精妙运用,为您提供一套完整的响应式设计框架。您将学会如何构建一个在桌面、平板、手机乃至更小屏幕上都能完美呈现的页面,并理解其背后的响应式断点选择、内容重排与元素隐藏/显示的最佳实践。我们将探讨如何避免常见的响应式陷阱,例如过于僵化的断点,以及如何利用CSS的内在灵活性来优雅地处理不同尺寸的屏幕。 高级选择器与布局技术的威力: CSS选择器是定位和样式化元素的基石。本书将超越基本的标签、类和ID选择器,深入讲解伪类(pseudo-classes)和伪元素(pseudo-elements)的强大功能,以及如何利用它们来实现复杂的交互状态和精细的样式控制。同时,我们将彻底解析Flexbox和CSS Grid的每一个关键属性,教会您如何用最少的代码构建出结构清晰、易于维护的复杂布局,例如导航栏、卡片式布局、仪表盘等。您将理解它们各自的优势和适用场景,并学会如何将它们结合使用,以应对各种布局挑战。 CSS动画与过渡的艺术: 动态效果是提升用户体验的关键。本书将引导您掌握CSS transitions和animations,从简单的元素淡入淡出、尺寸变化,到复杂的路径动画、序列动画,您将能够创造出流畅、吸引人的视觉反馈。我们将深入探讨`@keyframes`规则、`animation`属性及其各个子属性,以及如何利用`transition`属性实现平滑的属性变化。您将学会如何控制动画的时间函数、延迟、迭代次数,甚至如何实现更高级的同步与异步动画效果,让您的网页“活”起来。 性能优化:隐藏在代码之下的速度奥秘: 网页的加载速度和响应速度直接影响用户留存率和转化率。本书将聚焦CSS层面的性能优化策略,包括如何编写高效的CSS选择器,避免冗余样式,以及利用CSS特性(如`will-change`属性)来提前告知浏览器元素的潜在变化,从而优化渲染性能。您将学习到如何通过精简CSS文件、利用浏览器缓存、以及优化媒体查询的使用来缩短加载时间。我们还会探讨如何使用工具来分析CSS的性能瓶颈,并提供行之有效的解决方案。 跨浏览器兼容性的智能处理: 尽管Web标准日益统一,但跨浏览器兼容性问题仍然是前端开发中的一个挑战。本书将提供一套系统性的方法来应对这一问题,包括如何使用CSS前缀(vendor prefixes)的正确姿势,以及如何利用条件注释(conditional comments)和特性查询(feature queries)来优雅地处理不同浏览器版本的差异。您将学习到如何在早期阶段就预见并规避兼容性问题,从而减少后期调试的时间和精力。 模块化与可维护性:构建可复用的CSS架构: 随着项目规模的增长,CSS的可维护性成为一个关键问题。本书将介绍诸如BEM(Block, Element, Modifier)、OOCSS(Object-Oriented CSS)等流行的CSS架构方法论,帮助您构建出清晰、模块化、易于复用的CSS代码。您将学会如何组织您的CSS文件,如何命名类名,以及如何编写具有良好封装性的CSS组件,从而提高团队协作效率和项目的长期可维护性。 CSS变量(Custom Properties)与主题化: CSS变量(CSS Custom Properties)的出现极大地增强了CSS的灵活性和动态性。本书将深入讲解CSS变量的定义、使用和作用域,以及如何利用它们来实现动态的主题切换、颜色管理和响应式设计中的变量控制。您将学会如何构建一个可自定义主题的网站,让用户拥有更多的个性化选择。 无障碍Web设计的CSS实践: 构建一个对所有用户都友好的网站是现代Web开发的道德责任。本书将探讨如何在CSS层面实现无障碍设计(Accessibility),例如如何通过颜色对比度、焦点指示器、可读性强的排版等来确保用户能够顺畅地访问您的网站,无论他们是使用辅助技术还是存在视力或认知障碍。 本书的每一章都以解决一个实际的Web开发难题为出发点,通过清晰的理论阐释、精炼的代码示例,以及对最佳实践的深入分析,帮助读者构建起扎实的CSS功底。我们强调“理解”而非“记忆”,鼓励读者在阅读过程中动手实践,并思考如何将所学知识迁移到自己的项目中。 本书的语言风格力求专业、严谨,同时又不失易懂性。我们避免使用过于晦涩的术语,并在必要时提供解释。我们相信,通过本书的学习,您将不再满足于仅仅“能写CSS”,而是能够“精通CSS”,成为一名能够自信应对各种Web挑战的高级前端开发者。无论是独立的个人开发者,还是大型团队的一员,本书都将是您提升技艺、迈向卓越的理想伴侣。准备好迎接挑战,用CSS重塑您的Web世界吧!