盒子模型
一、content
可为文字、图片、标签元素等
二、边框border
盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。
p{border:2px dotted #ccc;}
1、border-style(边框样式)常见样式有:
- dashed(虚线)
- dotted(点线)
- solid(实线)
2、border-color(边框颜色)中的颜色可设置为十六进制颜色(#888
)
3、border-width(边框宽度)中的宽度也可以设置为(但不是很常用),最常还是用象素(px):
- thin
- medium
- thick
4、 允许只为一个方向的边框设置样式:如
div{border-bottom:1px solid red;}
三、填充padding
元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。如下代码:
div{padding:20px 10px 15px 30px;}
顺序一定不要搞混。可以分开写上面代码:
div{
padding-top:20px;
padding-right:10px;
padding-bottom:15px;
padding-left:30px;
}
如果上、右、下、左的填充都为10px;可以这么写
div{padding:10px;}
如果上下填充一样为10px,左右一样为20px,可以这么写:
div{padding:10px 20px;}
四、边界margin
元素与其它元素之间的距离可以使用边界(margin)来设置。边界也是可分为上、右、下、左。如下代码:
div{margin:20px 10px 15px 30px;}
也可以分开写:
div{
margin-top:20px;
margin-right:10px;
margin-bottom:15px;
margin-left:30px;
}
如果上右下左的边界都为10px;可以这么写:
div{ margin:10px;}
如果上下边界一样为10px,左右一样为20px,可以这么写:
div{ margin:10px 20px;}
总结一下:padding和margin的区别,padding在边框里,margin在边框外。
五、 宽度和高度
一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。
总宽度
width=100px;是指从哪到哪
W3C和 IE下的width
Margin(外边距) - 清除边框外的区域,外边距是透明的。
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。
例如:
//盒子
margin:20px;
border:2px;
padding:5px;
width:100px;
height:50px;
W3C盒模型大小:
总宽度=width+2margin+2border+2padding=200+220+22+25=254px;
总高度=height+2margin+2border+2padding=50+220+22+25=104px;
IE 盒模型大小:
总宽度=width+2margin=100+220=140px;
总高度=height+2margin=50+220=90px;
只有250像素的空间。让我们设置总宽度为250像素的元素:
div {
width: 220px;
padding: 10px;
border: 5px solid gray;
margin: 0;
}
最终元素的总宽度计算公式是这样的:
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
元素的总高度最终计算公式是这样的:
总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距