面试宝典 | CSS 世界精选集
Posted 高级前端进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试宝典 | CSS 世界精选集相关的知识,希望对你有一定的参考价值。
我想你每天写css代码有时候也会觉得很痛苦:这个布局的css怎么这么难实现!我也经常会有这种感觉,一个看似简单的布局总是要琢磨半天才能实现,偶尔还会出现一些怪异的超出理解的现象。这是因为我们对css只是大概知道个形,并没有看透css的本质。在同事的推荐下我阅读了张鑫旭老师的《css世界》,才发现css跟想象中的不太一样。本文为《css世界》个人总结笔记,为缩减篇幅丢弃了张老师冗余的小幽默,丢掉了些含金量较低的章节内容,因为ie已经被淘汰出局,所以有关css兼容性的地方也全部忽略不记,同时对个人觉得不易理解的地方加上了一些自己的理解和验证,所以错误之处还望指正。顺便推荐个好用的在线代码编辑工具,国内镜像站点,方便各位对本文实例进行测试。另外本文会随着作者对css的更深入理解而逐步更新,希望到最后能够文如标题展现出真正的css世界。
小刚老师
基本概念
盒模型四大金刚
好基友 line-height 和 vertical-align
流的破坏
层叠规则
弹性布局
网格布局
文本控制
元素的显示与隐藏
基本概念
这些基本概念有些可能不易理解但却都很重要,如果看完还是很不理解的话需要自己谷歌或百度,网上关于这些概念的文章不少。
流
“流”又叫文档流,是css的一种基本定位和布局机制。流是html的一种抽象概念,暗喻这种排列布局方式好像水流一样自然自动。“流体布局”是html默认的布局机制,如你写的html不用css,默认自上而下(块级元素如div
)从左到右(内联元素如span
)堆砌的布局方式。
块级元素和内联元素
这个大家肯定都知道。
块级元素是指单独撑满一行的元素,如div、ul、li、table、p、h1
等元素。这些元素的display值默认是block、table、list-item
等。
内联元素又叫行内元素,指只占据它对应标签的边框所包含的空间的元素,这些元素如果父元素宽度足够则并排在一行显示的,如span、a、em、i、img、td
等。这些元素的display值默认是inline、inline-block、inline-table、table-cell
等。
实际开发中,我们经常把display
计算值为inline
inline-block
inline-table
table-cell
的元素叫做内联元素,而把display
计算值为block
的元素叫做块级元素。
width: auto 和 height: auto
width
、height
的默认值都是auto
。
对于块级元素,width: auto
的自动撑满一行。
对于内联元素,width: auto
则呈现出包裹性,即由子元素的宽度决定。
无论内联元素还是块级元素,height: auto
都是呈现包裹性,即高度由子级元素撑开。但是父元素设置height: auto
会导致子元素height: 100%
百分比失效。
流体布局之下,块级元素的宽度width: auto
是默认撑满父级元素的。这里的撑满并不同于width: 100%
的固定宽度,而是像水一样能够根据margin
不同而自适应的宽度。
css的属性非常有意思,正常流下,如果块级元素的width
是个固定值,margin
是auto
,则margin
会撑满剩下的空间;如果margin
是固定值,width
是auto
,则width
会撑满剩下的空间。这就是流体布局的根本所在。
外在盒子和内在盒子
外在盒子是决定元素排列方式的盒子,即决定盒子具有块级特性还是内联特性的盒子。外在盒子负责结构布局。
内在盒子是决定元素内部一些属性是否生效的盒子。内在盒子负责内容显示。
如 display: inline-table;
外在盒子就是inline
,内在盒子就是table
。外在盒子决定了元素要像内联元素一样并排在一排显示,内在盒子则决定了元素可以设置宽高、垂直方向的margin等属性。如下图
右侧的table和左侧的文字在一行排列(外在盒子inline的表现特征),同时有拥有自定义宽度111px(内在盒子table可以设置宽高)。
css权重和超越`!important`
曾经有道面试题把我难住了:
// 假设下面样式都作用于同一个节点元素`span`,判断下面哪个样式会生效
body#god div.dad span.son {width: 200px;}
body#god span#test {width: 250px;}
可怜当时做了三年前端的我竟然还不知道css有权重
以上是关于面试宝典 | CSS 世界精选集的主要内容,如果未能解决你的问题,请参考以下文章
神啦!最全“Java面试宝典+Java核心知识集”,一箭双雕杠秋招