《CSS核心技术详解》
前言
看似简单的CSS,却暗藏玄机,那是我们摸爬滚打好长时间后悟出的真理。
在很长的一段时间里,我并没有重视CSS,觉得CSS很简单,无非就是一些属性;后来才发现自己小看了CSS,对CSS的了解实在是太少,尤其是对其核心概念的理解太模糊,实际上它有很多神奇的地方并不为大家所知。对于一个新手来说,只知道一些理论但在实际开发中不会使用是不行的,于是笔者萌生了写作本书的最初想法。
市面上介绍CSS基础的书已经有很多了,已经没有必要再去重复,但是一些核心的内容还是很有必要写出来的,因为我发现很多前端朋友对CSS都不太重视。我认为做前端的技术人员不仅要掌握好CSS的核心内容,还要懂得怎样把这些内容灵活运用到实际开发中。如果对一门技术只停留在了解的层面而不会使用,那和不会有什么区别?所以本书将实用放在第一位,大量的例子都来自于我在实际开发中所遇到的问题,将这些实际的例子拿来讲解才更有说服力,同时也更易于读者的理解。
本书共分13章,第1章主要解答CSS中常见的问题,以及常用的技巧。第2~6章讲解了CSS的核心技术,其中第2章是最为核心的内容,相对于其他章节理解起来会比较难一点。第3~6章主要介绍案例,每个代码片段都有一些案例,配合第2章阅读会轻松很多。本书每个章节都是独立的,因此如果某些章节看不懂,可以暂且跳过,先阅读其他章节。第7~13章讲解关于CSS 3的内容。
本书举例时用到了很多关于CSS 3的属性,所以读者在测试时需要使用高级浏览器,这里推荐使用Chrome浏览器,书中的例子主要也是在Chrome浏览器中测试的。另外本书并不会过多地讲解兼容性问题,因为花太多时间讨论兼容性是不太值得的。书中有一些个人看法,由于才疏学浅,不免会有疏漏。如果发现错误,还请指出,不吝赐教,在此深表谢意,可发邮件至c776@foxmail.com邮箱,一定一一回复并乐此不疲,因为这是我的工作,和你们交流也是我的快乐。
目录
第1章 遇见未知的CSS / 1
- 1.1 在CSS中会遇到的问题 / 1
- 1.1.1 CSS层叠规则 / 3
- 1.1.2 CSS的命名 / 5
- 1.2 CSS的一些技巧 / 6
- 1.2.1 使用pointer-events控制鼠标事件 / 6
- 1.2.2 玩转CSS选择器 / 8
- 1.2.3 利用padding实现元素等比例缩放 / 11
- 1.2.4 calc函数 / 14
- 1.3 隐藏元素 / 18
第2章 CSS核心概念 / 23
- 2.1 CSS解析规则 / 23
- 2.2 替换元素与非替换元素 / 28
- 2.3 属性值的计算规则 / 28
- 2.4 可视化格式模型 / 30
- 2.5 包含块 / 31
- 2.6 控制框 / 38
- 2.7 格式化上下文BFC、IFC / 40
- 2.7.1 从overflow清除浮动看BFC(块格式化上下文) / 40
- 2.7.2 块级格式化上下文BFC / 45
- 2.7.3 折叠外边距 / 54
- 2.7.4 行内格式化上下文IFC / 58
- 2.7.5 行高的计算 / 61
第3章 CSS单位究竟来自何方 / 67
- 3.1 百分比究竟为谁 / 67
- 3.2 探索auto密码 / 82
- 3.3 设计响应式网页rem / 93
- 3.4 vw、vh、vmin、vmax基于视口单位 / 97
- 3.5 什么是ch / 102
- 3.6 min、max的巧妙运用 / 104
- 3.7 一个none引出的大学问 / 106
第4章 那些年我们一起定位过的元素 / 108
- 4.1 定位的特点 / 108
- 4.1.1 定位之absolute篇 / 109
- 4.1.2 定位之relative篇 / 113
- 4.1.3 当定位遇到定位 / 117
- 4.1.4 定位之fixed篇 / 121
- 4.1.5 偶遇定位bug,才知定位的真理 / 122
- 4.1.6 定位之static篇 / 129
- 4.2 透彻研究定位隐藏的秘密 / 130
- 4.3 总结 / 140
第5章 元素的七十二变——元素转换 / 142
- 5.1 display介绍 / 142
- 5.2 大块头——block / 142
- 5.3 我们一起站一排——inline / 143
- 5.4 inline和block的结合体——inline-block / 149
- 5.5 行内和块的烦恼 / 152
- 5.6 dispaly的一些其他属性 / 155
- 5.7 总结 / 159
第6章 浮动趣事 / 160
- 6.1 浮动简介 / 160
- 6.2 浮动的特点 / 161
- 6.3 浮动的秘密 / 167
- 6.4 实现任意形状的文字环绕 / 173
- 6.5 总结 / 188
第7章 再不学这些选择器就老了 / 189
- 7.1 那些被遗忘的选择器 / 189
- 7.1.1 相邻兄弟选择器 / 189
- 7.1.2 利用hover实现一个下拉菜单 / 192
- 7.1.3 利用active做一个集能量 / 194
- 7.1.4 用first-letter选中第一个字 / 195
- 7.1.5 用first-line选择首行文字 / 197
- 7.2 模拟父级选择器 / 199
- 7.3 强大的新选择器 / 200
第8章 CSS图标制作 / 210
- 8.1 隐藏在边框中的秘密 / 210
- 8.2 边框的烦恼 / 212
- 8.3 边框的孪生兄弟——outline / 215
- 8.4 纯CSS图标制作 / 220
第9章 你今天换背景了吗 / 232
- 9.1 对背景属性的深入探索 / 232
- 9.2 新增的背景功能 / 237
- 9.2.1 改变背景原点——background-origin / 237
- 9.2.2 背景裁剪——background-clip / 239
- 9.2.3 设置背景图片大小——background-size / 243
- 9.3 总结 / 245
第10章 让文字更美一些 / 246
- 10.1 制作非主流文字 / 247
- 10.2 新增的文字对齐属性 / 250
- 10.2.1 文字两端对齐 / 250
- 10.2.2 末尾文本对齐 / 252
- 10.2.3 文本书写模式 / 257
- 10.3 关于文字的一些其他属性 / 259
- 10.3.1 将超出宽度的文字隐藏 / 259
- 10.3.2 字母转换大小写 / 262
- 10.4 总结 / 263
第11章 内容生成技术——用CSS来计数 / 264
- 11.1 伪元素 / 264
- 11.2 CSS计数器 / 265
- 11.3 content的其他用途 / 272
- 11.4 总结 / 273
第12章 解决让人头疼的布局 / 274
- 12.1 制作可自适应的布局 / 274
- 12.1.1 左侧固定、右侧自适应的布局 / 274
- 12.1.2 右侧固定、左侧自适应的布局 / 276
- 12.1.3 多列文字垂直居中 / 278
- 12.2 利用伸缩盒模型进行布局 / 283
- 12.2.1 伸缩盒模型基础 / 285
- 12.2.2 伸缩盒模型进阶 / 296
- 12.2.3 伸缩盒模型实战 / 299
第13章 飞越CSS / 303
- 13.1 CSS最佳实践 / 303
- 13.2 纯CSS的世界 / 307
- 13.2.1 利用checked选择器实现tab切换 / 308
- 13.2.2 利用:target选择器实现遮罩层效果 / 310
- 13.2.3 scaleY配合animation制作loading / 311
- 13.2.4 利用hover实现手风琴效果 / 313
- 13.2.5 利用checked选择器制作星星评分 / 314
- 13.2.6 使用flex伸缩盒模型实现瀑布流布局 / 316
- 13.3 结束语 / 318
试读
购买可到京东或者当当
《CSS核心技术详解》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- JEECG 3.7.2版本发布,企业级JAVA快速开发平台
JEECG 3.7.2版本发布 - 微云快速开发平台 JEECG是一款基于代码生成器的J2EE快速开发平台,开源界"小普元"超越传统商业企业级开发平台.引领新的开发模式(Onli ...
- c++中的overload、overwrite、override
作为初学者,本文只从语法和简单的使用角度对overload.overwrite.override进行了区分,不曾涉及原理,记录下来以供查阅. 1.verload(重载) 1.1 基本要求: c++中的 ...
- sublimeserver启动本地服务器(sublime text)
今天又get到了一个新知识点,就是在sublime text上也可以模拟一个本地服务器的环境,前提是要先安装sublimeserver这个插件.这个插件的安装办法有两种. 1.我们可以直接在subli ...
- UE4 内容示例网络同步Learn
一, 1.1 Actor的复制 Actor中的Replicates ,为true时,服务器会把该Actor同步,显示在客户端中. 1.2 Switch Has Authority判断是客户端还是服务器 ...
- java中的分支结构 switch case的使用
switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte.short.int.char.string(jdk1.7后加入)还有枚举:需要强调的是:long是不能用在swi ...
- 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障
非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短 ...
- 织梦DEDECMS更换目录后页面内的图片和缩略图无法显示解决方法
http://www.win8f.com/seoyouhua/6609.html 很多人碰到织梦更换目录后内容图片和缩略图无法显示的问题,在此,慧鸿网络特地搜集整理了一篇关于织梦出现缩略图和内容无法显 ...
- JavaScript常见封装方法
1.最简单的,使用变量,然后用匿名函数包裹,不封装 2.对象字面量简单封装(不完整的模块模式,因为无法达到变量.方法私有效果.不过确实有分离和组织代码的能力,也就算一种简略的模块模式的实现方式) va ...
- MYSQL Nested Join Optimization
table_factor的语法和标准sql比较,后者只接受table_reference,每个逗号项都等于一个inner Join,e.g. SELECT * FROM t1 LEFT JOIN (t ...
- Nodejs+Grunt配置SASS项目自动编译
Nodejs+Grunt配置SASS项目自动编译 早前听说Nodejs和Grunt很强大,特别是用来构建自动化的前端开发,更是强大无比.但一直碍于自己掌握的技术有限,不敢深入,也未曾深入下去.最近在开 ...