1、盒模型的概念(区分怪异和标准)
在一个文档中,每个元素都被表示为一个矩形的盒子。确定这些盒子的尺寸, 属性 --- 比如颜色,背景,边框方面和位置是。在 CSS 中
,使用标准盒模型描述这些矩形盒子中的每一个。
这个模型描述了元素所占空间的内容。每个盒子有四个边:外边距(margin), 边框(border), 内边距(padding)与内容区(content)。盒模型又分为怪异盒模型(IE标准)、标准盒模型(W3C标准),
在标准模式下(W3C标准),一个块的总宽度= width + margin(左右) + padding(左右) + border(左右);在怪异模式下( IE标准),一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值);
2、负margin的几个方向的作用;
负margin的基础用法:
margin-left为负:元素向左移动,并且原来的位置不保留(后边元素会紧跟上一起移动),元素向左移动,并不会挤到前边的兄弟元素,而是覆盖前边的兄弟元素; margin-right为负:元素视觉大小不发生变化,后边元素会跟上来,或者是撑不开父级宽度;假如元素width为100px 设置margin-right为-20px 元素实际大小是80px; margin-top为负:元素向上移动,并且原来的位置不会保留(下边元素会紧跟上一起移动),元素向上移动,并不会挤到上边的兄弟元素,而是覆盖上边的兄弟元素; margin-bottom为负:元素视觉大小不发生变化,但是元素实际所占用的空间变小,下边元素会跟上来,或者是撑不开父级高度;假如元素height为100px 设置margin-bottom为-20px 元素实际大小是80px;
3、CSS画一个三角形;
使用CSS盒模型中的border(边框)实现三角形图形(如下图);
原理:元素的border是由三角形组合而成(如图):所以,当height和width都为0的时候,边框就由四个三角形组合而成;将其中任意三个方向的边框属性设置为transparent透明,即可实现三角形;
4、margin的垂直auto为什么不行;
因为宽度计算默认涉及包含块(可粗略理解为父级元素),而高度计算默认涉及内部元素。要居中,必须相对父级计算,而非内部元素。width可以继承父级的宽度,但是height的高度是不能继承的需要看里面content的高度
5、浮动对行元素和块元素的影响?
对块元素的影响:不再独占一行,可以设置宽高属性,构成了BFC,父级不再塌陷;依然可以进行margin和padding设置;
对行元素的影响:可以设置宽高属性,能够进行margin的padding的设置;