盒子模型
类比月饼:礼盒是最外层,里面的月饼(伍仁)是页面元素,比如一个div;"伍仁"本身是盒子的内容(可以是文字、图片、另一个标签元素),月饼和月饼盒之间的距离称为盒子模型的内边距padding,盒子与盒子之间的距离在样式表里叫外边距margin,盒子的边框在样式表里叫border,内填充、外边距、边框都有四个方向:padding-top,padding-right,padding-bottom,padding-left(顺序不能乱)。
如果把padding-top改小,整个月饼就会往上移,如图:
如果给这块月饼一个高度,那么它的实际高度=月饼高度+内填充高度+内边框高度+边界,如图:
边框:盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。
如下面代码为 div 来设置边框粗细为 2px、样式为实心的、颜色为红色的边框:
div{border:2px solid red;}
上面是 border 代码的缩写形式,可以分开写:
div{border-width:2px;border-style:solid;border-color:red;}
注意:
1、border-style(边框样式)常见样式有:
dashed(虚线)| dotted(点线)| solid(实线)。
border-color:#888;//前面的井号不要忘掉。
thin | medium | thick(但不是很常用),最常还是用象素(px)。
只在一个方向设置样式:
div{border-bottom:1px solid red;
border-top:1px solid red; border-right:1px solid red; border-left:1px solid red;
宽度和高度:
盒模型宽度和高度和我们平常所说的物体的宽度和高度理解是不一样的,css内定义的宽(width)和高(height),指的是填充以里的内容范围。
因此一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。
元素的高度也是同理。
比如:
css代码:
div{width:200px;padding:20px;border:1px solid red;margin:10px;
}
html代码:
<body><div>文本内容</div>
</body>
元素的实际长度为:10px+1px+20px+200px+20px+1px+10px=262px。在chrome浏览器下可查看元素盒模型,如下图:
填充:元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。如下代码:
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;}
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在边框外。
——————————————————————————————————————————————————————————————
以上内容参考自慕课网:http://www.imooc.com