块元素与内联元素区别
一般情况做布局用块元素 div。在一行上就用<span>
块元素又名块级元素(block element)和其对应的是内联元素(inline element),都是html规范中的概念
block元素的特点
1.总是在新行上开始
2.高度,行高以及外边距和内边距都可控制
3.宽度缺省是它的容器的100%,除非设定一个宽度
4.它可以容纳内联元素和其他块元素
div就是一个块元素
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<hr>-水平分隔线
address-地址
blockquote-块引用
center-居中对齐块
dir-目录列表
filedset-form控制组
inline内联元素的特点
1.和其他元素都在一行上
2.高,行高以及外边距和内边距不可改变
3.宽度就是它的文字或图片的宽度,不可改变
4.内联元素只能容纳文本或者其他内联元素
spa是行元素
CSS的盒子模型
盒子模型是CSS的基石之一i,它指定元素如何显示以及(在某种程度上)如何相互交互
页面上的每个元素都被浏览器看成是一个矩形的盒子,这个盒子由元素的内容、填充、边框和边界组成。
网页就是由许多个盒子通过不同的排列方式(上下排列、并列排列、嵌套排列)堆积而成。
网页布局主要是div+css布局
网页是由多个小盒子组成,其中设置盒子的大小,位置,边框,填充,间距。
每个HTML元素都可以看作是一个装了东西的盒子
盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border)
而盒子边框外和其它盒子之间还有边界(magin)
默认情况下盒子的边框是无,背景色是透明,所以我们在默认情况下看不到盒子。
赋值 可以单独设置一个元素 也可以组合起来编写。上右下左可以分开写也可以整体写。
margin 上右下左
border
padding 上右下左
content
元素盒子大小的计算
一个元素实际宽度=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界
例 #a1{width:200px;height:200px;background-color:green;padding:20px;border:10px red solid;margin:20px;}
CSS盒子嵌套
如果盒子里面嵌套有盒子,且两个盒子都有边框,那么两个盒子边框之间的距离等于外面盒子的填充值+里面盒子的边界值
盒子模型的margin和padding属性比较简单,只能设置宽度值,最多分别对上、右、下、左设置宽度值,而border则可以设置宽度、颜色
和样式。
分别是border-width(宽度)、border-color(颜色)和border-style(样式)其中border-style属性可以将边框设置为实线(solid)、虚线(dashed)、
点划线(dotted)、双线(double)等效果
盒子模型的特性
边界值margin可为负,填充padding不可为负
边框border默认值为0,即不显示
行内元素,如a,定义上下边界不影响行高
边框是实的,我们可以看到实实在在的边框,而填充和边界是虚的,我们只能看到他们对元素的影响
盒子模型中只能设置两类颜色,即边框颜色和背景颜色
盒子模型可以设置三类距离,即边界距离margin,填充距离padding和边框值border
如果网站有空白 说明填充和间距不为0 需要手工去除:body{margin:0px;padding:0px;}
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>盒子模型</title> <style> #a1 { width: 200px; height: 200px; background-color: green; border: 10px black solid; padding-top: 80px; margin: 20px; text-align: center; } #a2 { width: 200px; height: 200px; background-color:red; border: 10px green dashed; } #a3 { width: 300px; height: 300px; background-color: gray; padding: 30px; border: 10px black solid; } #a4 { width: 200px; height: 200px; background-color:brown; border: 5px red solid; padding: 20px; margin: 20px; } </style> </head> <body> <div id="a1">盒子1</div> <div id="a2">盒子2</div> <div id="a3"> <div id="a4">盒子3</div> </div> </body> </html>