所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。
内边距(padding): 内容与边框之间的距离
外边距(margin): 盒子与盒子之间的距离
边框border
1、border-width: 设置边框宽度
2、border-style: 设置边框样式
none 没有边框
solid 实线
dotted 点线
dashed 虚线
3、border-color: 设置边框颜色
4、borde具体属性设置:
border-top-color:green;
5、border属性联写
改变具体边框属性联写:
border-top:2px dotted red;
改变所有边框属性联写:
border:1px solid green;
6、去掉边框写法:
border: 0 none;
7、边框合并:
border-collapse:collapse;
8、点击文字设置输入框光标焦点方式
<label for="name">姓名:</label>
<input type="text" class="namecls" id="name">
内边距(padding)
padding-top:上内边距
padding-right:右内边距
padding-bottom:下内边距
padding-left:左内边距
页面中盒子大小计算问题
border可以影响盒子大小。
padding可以影响盒子大小
margin不会影响盒子大小。页面中盒子宽度=设置的宽度值+左右边框+左右内边距。
注意:以后在页面中设置盒子大小的时候,如果遇到padding和border要给盒子宽度和高度减去对应的值。
padding影响盒子大小特殊地方
-
如果一个块级元素中包含另外一个块级元素(子元素没有宽度),给子元素设置padding值,不会影响子盒子大小。
-
子元素继承父元素的盒子,padding不会影响子盒子大小
外边距margin
外边距用法与padding一样,但是外边距对盒子宽度没有影响。
外边距特点
1、垂直外边距合并(外边距以最大值为准),只发生在块级元素之间。
2、外边距塌陷解决方案:
第一种:给父盒子添加border值,但是影响父盒子的宽度。
第二种:给父盒子设置 overflow: hidden; (推荐这种)
注意: overflow:hidden 触发 bfc (格式化上下文),将页面中的元素设置为独立的元素。
行内元素关于padding与margin问题
1.需要使用背景图的时候必须用padding。
2.会出现外边距合并或者margin塌陷的时候用padding。
3.行内元素上下只能设置padding,不能设置margin。(行内高16px)
4.看border,如果是a连接,看能不能让字体变色,或者显示小手。
隐藏盒子问题
1.overflow:hidden; 隐藏盒子超出的部分。
2.display: none; 隐藏盒子,而且不占位置。(用的最多)
3.visibility: hidden; 隐藏盒子,而且占位置。
4.opacity: 0; 隐藏盒子,而且占位置。
5.Position/top/left/…-999px 隐藏盒子,而且占位置。