《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 安装并启动 ...
随机推荐
- UEP-按钮控制及时间
按钮的判断 var record = ajaxgrid.getAllRecords(); if(record.length>0){ var isPack=record[0].get(" ...
- 在tomcat中布置项目的介绍(一)
一:为什么要在tomcat中单独布置项目 因为上线到服务器上需要项目的功能之间彼此独立,这个以后我会细说. 二:简单的步骤一个都不能少 conf文件里的配置文件需要配置好:logback.xml文件会 ...
- vi的常用命令
https://zhidao.baidu.com/question/332242228.html vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ v ...
- android 基础04-BroadCastReceiver
Android 系统中的广播(BroadCast) 是组件与组件进行的一种可跨线程的通信方式.类似于 广播者-订阅者(publish-subscribe) 的实现,当系统或者某个应用的状态发生改变时, ...
- Java泛型范例
class Point<T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T getVar ...
- 数据结构 哈希表(Hash Table)_哈希概述
哈希表支持一种最有效的检索方法:散列. 从根来上说,一个哈希表包含一个数组,通过特殊的索引值(键)来访问数组中的元素. 哈希表的主要思想是通过一个哈希函数,在所有可能的键与槽位之间建立一张映射表.哈希 ...
- win7 mysql 数据库轻松实现数据库定时备份
本地备份: 第一步: 安装一个mysql. 第二步: 在命令行中配置mysql 打开环境变量将mysql 安装路径配置到path中 第三部: cmd 中输入:mysqldump -uroot -p12 ...
- Intellij-@Override报错
1.设置 File >> Project Structure >> Project 中设置Project language level如下: 2. 设置 File > ...
- Web Magic设计思想
1.1 设计思想 1. 一个框架,一个领域 一个好的框架必然凝聚了领域知识.WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient.Jsoup等Java世界最成熟 ...
- java里程碑之泛型--擦除和转换
在严格的泛型代码里,带泛型声明的类总应该带着泛型参数.但是为了和古老的java代码保持一致,也就是说为了向下兼容,也允许在使用带泛型声明的类时不指定实际的类型参数.如果没有为这个泛型类指定实际的参数类 ...