三年重构老司机二刷《CSS Secrets》觉得有些东西还是应该记录下来,本文内容来自书籍《CSS Secrets》中文名叫《CSS揭秘》,做笔记的过程中我会根据自己的过往经验加上自己的理解和看法,用通俗的表达对一些知识点进行解释。本书的对象是有一定CSS开发经验的人,如果你是新手,阅读起来可能有点吃力,同时,笔记也是针对我个人的查漏补缺,有些知识点并不会记录进去。


文章目录

  • 结构与布局
  • 过渡与动画
  • 读后感

结构与布局

  1. 自适应内部元素,让元素的大小由内部来决定而不是外部父元素,我们可以设置 float , inline-block 等属性值,但是这样对原来的布局造成了一些副作用,下面让我们来学习新属性 min-content 吧,figurefigcaptionHTML5 新增的标签,用来表示图文,针对元素的宽度值,有属性值 min-content|max-content|fit-content 可以设置元素的宽度根据内容来决定。
<p>Some text [...]</p>
<figure><img src="adamcatlace.jpg" /><figcaption>The great Sir Adam Catlace was named afterCountess Ada Lovelace, the first programmer.</figcaption>
</figure>
<p>More text [...].</p>
figure {max-width: 300px;max-width: min-content;margin: auto;
}
figure > img { max-width: inherit; }
  1. 精确控制表格列宽,在没有给表格或者设置 display: table; 的元素添加任何属性前,表格的特性是自适应的,这种模式被称作自动表格布局算法,这种模式有很多弊端,比如在浏览器渲染的时候,表格会根据内容一直处在计算的过程中,直到最终计算完,布局才稳定,同时,表格有可能溢出父元素布局大小,内容文字的截断省略也是无效的,即使设置了表格 width: 100%;。解决这种现象可以用到 table-layout: fixed; 属性,设置该属性之后,单元格会均分表格的宽度,其次宽度设置,以及 text-overflow: ellipsis; 都能发挥作用,如果需要精确控制某一列的宽度,可以给该列添加宽度属性设置,也可以通过添加 <colgroup width="40%"></colgroup> 为某列设置精准的宽度值。
  2. 根据兄弟元素的数量来设置样式,关于这个知识点,可以看我之前分享的文章,https://blog.csdn.net/u013778905/article/details/79309773
  3. 满幅的背景,定宽的内容,这里主要用到的是 calc css计算函数,通过计算,得到一个900px的内容区域。
footer {padding: 1em;padding: 1em calc(50% - 450px);background: #333;
}
  1. 水平垂直居中,可以查看我的这篇文章,对方案进行了梳理,《还不会CSS水平垂直居中?这里有12种方案》

过渡与动画

  1. 动画有很多种形式,可以阅读《Web动画形式》
  2. 关于逐帧动画,我之前做过整理和研究,可以看《帧动画的多种实现方式与性能对比》
  3. 我们可以通过这个动画属性来控制动画的执行与停止:animation-play-state: paused|running

读后感

两年前读这本书的时候,一是惊叹CSS3的神奇魅力,二是看懂理解和看完之后记得的东西不多。所以这次选择再读一遍,同时也有案例实现,在笔记中也提供了 codepen 地址,有了更多的实践基础之后,再次看很多地方都很容易理解了,背景、圆角、阴影等的灵活运用,给我接下来的工作提供了更多的思路,也让我体会了如何读好一本好书的经历。

这本书不适合初学者阅读,需要有一定的基础,同时这本书也不是一个很好的教程,只是作为知识巧妙应用的思路拓展,对于知识点的详细探索没有很多,大都是介绍CSS技巧,比如在动画方面,我写了几篇文章,刚好可以补充到这里。总之,这本书是一本好书,书选择了读者,读者也选择了书,感谢作者给我们带来这么多优质的分享。

最后,贴出该书的购买地址:http://www.ituring.com.cn/book/1695 。

END.

《CSS Secrets》读书笔记(5)相关推荐

  1. 《Web GIS原理与应用开发》读书笔记(7)

    第七章 在客户端绘制矢量数据 以下均掺杂个人理解 书目:Web GIS 原理与应用开发 -- 刘光 曾敬文 曾庆丰 著 HTML5的出现为浏览器提供了一系列全新的功能.Canvas的问世提升了GIS在 ...

  2. 《Web GIS原理与应用开发》读书笔记(6)

    第六章 使用Web地图API访问地图服务 以下均掺杂个人理解 书目:Web GIS 原理与应用开发 -- 刘光 曾敬文 曾庆丰 著 6.1 Web地图API API:Application Progr ...

  3. 《Web GIS原理与应用开发》读书笔记(5)

    第五章 切片地图 以下均掺杂个人理解 书目:Web GIS 原理与应用开发 -- 刘光 曾敬文 曾庆丰 著 如果要提高Web地图的访问速度,使用地图切片的非常有效的方法. 地图切片就是在多个比例尺下配 ...

  4. 《Web GIS原理与应用开发》读书笔记(1)

    第一章 Web GIS 概述 以下均掺杂个人理解 书目:Web GIS 原理与应用开发 -- 刘光 曾敬文 曾庆丰 著 1.1 GIS的发展 20世纪60年代,世界上第一个地信系统:加拿大地理信息系统 ...

  5. 实战 | 尝鲜 Svelte 前端框架,开发读书笔记

    提到前端开发框架,我相信大家第一时间想到的就是 Vue.React 和 Angular 三大主流.毕竟它们各个都是 GitHub 上 10w+ star 的知名项目,每个前端工程师至少要学习其中一个框 ...

  6. 尝鲜 Svelte 前端框架,开发读书笔记

    作者鱼皮 来源 | 鱼皮客栈(id:coder_yupi) 提到前端开发框架,我相信大家第一时间想到的就是 Vue.React 和 Angular 三大主流.毕竟它们各个都是 GitHub 上 10w ...

  7. 《Web Load Testing For Dummie》读书笔记

    <Web Load Testing For Dummie>读书笔记: http://www.automationqa.com/uchome/space.php?uid=89&do= ...

  8. Java Web整合开发读书笔记

    下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载Eclipse: ...

  9. PHP6 Web 开发读书笔记

    软件下载: Apache: http://httpd.apache.org/download.cgi#apache22 MySQL: http://dev.mysql.com/downloads/in ...

  10. php和mysql web开发 笔记_PHP和MySQL Web开发读书笔记---创建Web数据库

    先写个题外话,老是要忘记,byte和bit的区别,1byte=8bit,即一个字节有8位 1.创建权限 GRANT命令 GRANT privileges [columns]          //pr ...

最新文章

  1. 解决关闭hdfs yarn spark hbase时no namenode to stop异常 no master to stop
  2. ab plc软件_回收三菱PLC模块西门子模块AB模块数控模块单片机回收【三菱plc吧】...
  3. Java Swagger的注释类是怎么被调用到的
  4. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6...
  5. Python、PyCharm、Django框架安装
  6. Linux 服务器安全加固 10条建议
  7. 实用!使用Mac内置功能一键转换繁体与简体中文
  8. 快速排序_two-powinters思想
  9. redis 缓存击穿及应对
  10. 数值计算详细笔记(二):非线性方程解法
  11. 如何给Arduino项目添加音乐播放功能
  12. iTextSharp 使用详解
  13. winhex数据恢复linux,winhex数据恢复完整图文教程
  14. 衡水互联网服务器网站,衡水联通dns的服务器地址
  15. 8052单片机英文缩写参考全称
  16. 计算机博弈之国际跳棋入门-规则篇
  17. 简单的静态页面实时更新方法
  18. 【云隐】windows下编译及使用libevent
  19. 如何保护个人信息安全?
  20. 2022年全球市场自行车零配件总体规模、主要企业、主要地区、产品和应用细分研究报告

热门文章

  1. CodeForces - 707B Bakery(贪心)
  2. Mac版VirtualBox 下载 安装教程
  3. GPUImage处理水印:文字,图片
  4. net, 哥已心灰意冷
  5. python图片批量重命名文件夹_python3_learn 实现文件夹内批量对图片重命名
  6. GraphR: Accelerating Graph Processing Using ReRAM(论文翻译 HPCA2018)
  7. Helm 模板函数与管道
  8. 【每日早报】2019/11/20
  9. WIN7系统的桌面突然不好使了,右键没反应,桌面上所有的图标点击都没反应explorer
  10. 个人获奖及双创竞赛项目经历