《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 安装并启动 ...
随机推荐
- .23-浅析webpack源码之事件流compilation(1)
正式开始跑编译,依次解析,首先是: compiler.apply( new JsonpTemplatePlugin(options.output), // start new FunctionModu ...
- 阻止安卓实体返回键后退的网页js实现
提供两种解决方法吧,都是网上来的,侵权删,毕竟我等只是搞后端的-- 第一种方法: // 阻止安卓实体键后退 // 页面载入时使用pushState插入一条历史记录 history.pushState( ...
- sql for xml 输出结果带单引号出现转成&apos的解决方案
select '''' + ID +''',' from 表 for xml path('') 此SQL语句,输出结果如‘1’,’2‘,’3‘, 但是在因xml会出现path转译的问题将‘转成&am ...
- PHP中的GetType和SetType
大部分的可变函数都是用来测试一个函数的类型的.PHP中有两个最常见的函数,分别是gettype()和settype().这两个函数具有如下所示的函数原型,通过他们可以获得要传递的参数和返回的结果. s ...
- yourphp目录结构
Yourphp企业网站管理系统是一款完全开源免费的PHP+MYSQL系统.核心采用了Thinkphp框架等众多开源软件,同时核心功能也作为开源软件发布的网站后台管理系统. 二.目录说明 /Cache ...
- 基于FPGA的HDMI高清显示接口驱动
HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合影像传输的专用型数字化接口,可同时传送音频和 ...
- MYSQL优化派生表(子查询)在From语句中的
Mysql 在5.6.3中,优化器更有效率地处理派生表(在from语句中的子查询): 优化器推迟物化子查询在from语句中的子查询,知道子查询的内容在查询正真执行需要时,才开始物化.这一举措提高了性能 ...
- 如何更改MyEclipse中XML文件的字体?
windows>Preferences>General>Appearance>Colors and Fonts>Basic>Text Font
- python3 第十章 - 如何进行进制转化
在计算机的世界里,2进制是主流,而在人类的自然世界中,10进制是主流,那么在这之间必然就会存在进制转化的问题.本章我们就来谈谈进制转化,也希望通过本章加深您对前些章所学知识的理解. 原理:先说说关于位 ...
- Windows核心编程&内存管理
1. 每个进程都有自己的虚拟地址空间,对于32位机器而言,这个地址空间的大小为4GB(2^32 / 1024^3),这个虚拟地址空间只不过是一个内存地址空间, 为了能够正常读/写数据,我们还需要把物理 ...