说起CSS盒子模型,很多人都会觉得不就是margin padding border width height那点事儿吗,对,就说说这点事。 CSS盒子模型的作用:决定盒子有多大,即能有多大的空间给元素用来展示,对象的边界,留白,对象的大小,还有就是去其他元素的相对位置。 注意事项:如果一个盒子的宽度设置为100&,就不要在设置margins padding 和 borders 否则会撑破盒子的,是布局失控。margin会自动合并,解决方法(BFC)。
inline和block的区别 inline元素的大小只是和内容有关,设置高宽都没有作用,除非设置成 inline-bock。 Block 级对象会自然地水平充满其父容器,因此没有必要为之设置 100% 宽度属性 Block 级对象的起始摆放位置是其父容器的左上边界,并顺排在其前面的兄弟 Block 对象的下方(除非设置 float 或绝对位置) Inline 级对象会忽略其宽度和高度设置 Inline 级对象会随着文字排版,并受排版属性的影响(如 white-space, font-size, letter-spacing) Inline 级对象可以使用 vertical-align 属性控制其垂直对齐,block 级对象不可以 Inline 级对象的下方会保留一些自然的空间,以适应字母 g 一类的会向下探出的笔画 一个设置为 float 的 inline 对象将变成 block 对象
以下是使用 float 和 clear 属性的一些重要准则:
一个 float 对象,将从其置身的 block 级非 float 内容流中跳出,换句话说,如果你要将一个 box 向左边 float,它后面的 block 级非 float 对象会显示到下方,inline 级内容会在旁边包围 要让一段内容从一侧包围一个 float 对象,这段内容必须要么是 inline 级的,要么也设置为相同方向的 float 一个 float 对象,如果没有设置宽度,则会自动缩成其包含的内容的宽度,因此最好为 float 对象明确设置宽度 如果一个 block 对象包含 float 子对象,会出现本文中阐述的问题。 一个设置了 clear 属性的对象,将不会包围其前面的 float 对象 一个既设置了 clear 又设置了 float 属性的对象,只有 clear:left 属性生效,clear:right 不起作用