关于CSS布局的核心概念的快速入门指南
来源:互联网 发布:网络信息安全措施 编辑:程序博客网 时间:2024/06/05 18:39
关于CSS布局的核心概念的快速入门指南
# CSS布局的核心流程
CSS布局的过程是‘’‘自顶向下’‘’的。即是说,最顶层的body元素对应最外面window的大小,父元素作为子元素的容器。当子元素超出父元素范围时,可以溢出、截断或者引入滚动视图。CSS布局无法实现类似于android里wrap-content的布局(即设置父view的size为恰好装下子view内容)。这里我想强调的一个核心在于‘’‘自顶向下’‘’的布局。
# inline与block
这是两个最核心的布局模型。block大家都知道,就是一个Box模型,padding/border/margin之类。inline有什么不同?这里tricky的地方在于,上下两行inline元素的margin将发生塌陷(collapse)。
# float
所谓的浮动就是将元素“提出”正常的文档流,然后开始像拼方块一样拼接。这里有个值得一说的地方,IE的早期实现float有bug,所以要加显式的“清除浮动”的hack。《精通CSS:高级Web标准解决方案(第2版)》那本书里有详细的介绍。
# position
接下来就到了“定位”的概念。首先是固定定位(position:fixed),即相对于窗口位置定位元素。然后是absolute和relative。定位同样使得元素脱离正常的文档流,同时结合z-index,使得后端开始真正地对接一个2D渲染模型。即“图层”的概念。此外,定位引入了stacking context的概念,即一个元素相对于某个父/祖先容器元素定位。定位和z-index实际上就可以实现任意可视化效果了,比如说,可以用1x1大小的div元素来画圆,制作动画效果?
到此为止,CSS布局的核心概念就讲得差不多了。其他细节并非主线。下面额外谈谈CSS3的一些扩展
# CSS3新的布局扩展
比如table layout、flexbox、grid layout、multi-column等等,实际上都不值得讲。有意思的地方在于CSS3 Exclusions/Shapes/Region,它摆脱了基于方块的布局模型思路,引入了不规则的区域,可使得inline元素(文本)围绕不规则区域、或者是在不规则区域内部进行布局。实际上这里主要就是要决定在什么位置换行而已。
* https://www.w3.org/TR/css-regions-1/
* https://www.w3.org/TR/css-shapes-1/
* http://www.w3.org/TR/css3-exclusions/
# CSS布局的核心流程
CSS布局的过程是‘’‘自顶向下’‘’的。即是说,最顶层的body元素对应最外面window的大小,父元素作为子元素的容器。当子元素超出父元素范围时,可以溢出、截断或者引入滚动视图。CSS布局无法实现类似于android里wrap-content的布局(即设置父view的size为恰好装下子view内容)。这里我想强调的一个核心在于‘’‘自顶向下’‘’的布局。
# inline与block
这是两个最核心的布局模型。block大家都知道,就是一个Box模型,padding/border/margin之类。inline有什么不同?这里tricky的地方在于,上下两行inline元素的margin将发生塌陷(collapse)。
# float
所谓的浮动就是将元素“提出”正常的文档流,然后开始像拼方块一样拼接。这里有个值得一说的地方,IE的早期实现float有bug,所以要加显式的“清除浮动”的hack。《精通CSS:高级Web标准解决方案(第2版)》那本书里有详细的介绍。
# position
接下来就到了“定位”的概念。首先是固定定位(position:fixed),即相对于窗口位置定位元素。然后是absolute和relative。定位同样使得元素脱离正常的文档流,同时结合z-index,使得后端开始真正地对接一个2D渲染模型。即“图层”的概念。此外,定位引入了stacking context的概念,即一个元素相对于某个父/祖先容器元素定位。定位和z-index实际上就可以实现任意可视化效果了,比如说,可以用1x1大小的div元素来画圆,制作动画效果?
到此为止,CSS布局的核心概念就讲得差不多了。其他细节并非主线。下面额外谈谈CSS3的一些扩展
# CSS3新的布局扩展
比如table layout、flexbox、grid layout、multi-column等等,实际上都不值得讲。有意思的地方在于CSS3 Exclusions/Shapes/Region,它摆脱了基于方块的布局模型思路,引入了不规则的区域,可使得inline元素(文本)围绕不规则区域、或者是在不规则区域内部进行布局。实际上这里主要就是要决定在什么位置换行而已。
* https://www.w3.org/TR/css-regions-1/
* https://www.w3.org/TR/css-shapes-1/
* http://www.w3.org/TR/css3-exclusions/
阅读全文
0 0
- 关于CSS布局的核心概念的快速入门指南
- CSS的四个核心概念
- [布局概念]关于CSS-BFC的深入理解
- css布局技术的概念
- CSS布局快速入门
- CSS布局快速入门
- 关于css的布局
- 关于css的布局
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- CSS 最核心的几个概念
- TypeError: object of type 'zip' has no len()、'zip' object is not subscriptable
- System.Lazy<T>延迟加载 在很多情况下,有些对象需要在使用时加载或根据逻辑动态加载。有些情况如果不延迟加载,可能会影响效率甚至抛出Timeout Exception。如网络操作、数据库操
- 18121 排排坐看电影
- 第34章 连续时间系统零状态响应的求解
- JS中常用的输入输出
- 关于CSS布局的核心概念的快速入门指南
- 2013计算机视觉代码合集四
- 面试题24二叉搜索树的后序遍历序列
- 精品拍卖系统技术解析 拍卖会大厅
- tensorflow使用
- Fiddler工作原理
- NYOJ 113 字符串替换
- Java 二维数组的使用
- js实现倒计时