从零开始学习html(十一)CSS盒模型——下
六、盒模型--边框(一)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>边框</title> 6 <style type="text/css"> 7 8 </style> 9 </head> 10 <body> 11 <h1>勇气</h1> 12 <p>三年级时,我还是一个胆小如鼠的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p> 13 <p>到了三年级下学期时,我们班上了一节公开课,老师提出了一个很简单的问题,班里很多同学都举手了,甚至成绩比我差很多的,也举手了,还说着:"我来,我来。"我环顾了四周,就我没有举手。</p> 14 </body> 15 </html>
盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。
如下面代码为 div 来设置边框粗细为 2px、样式为实心的、颜色为红色的边框:
div{ border:2px solid red; }
上面是 border 代码的缩写形式,可以分开写:
div{ border-width:2px; border-style:solid; border-color:red; }
注意:
1、border-style(边框样式)常见样式有:
dashed(虚线)| dotted(点线)| solid(实线)。
2、border-color(边框颜色)中的颜色可设置为十六进制颜色,如:
border-color:#888;//前面的井号不要忘掉。
3、border-width(边框宽度)中的宽度也可以设置为:
thin | medium | thick(但不是很常用),最常还是用象素(px)。
来试试,设 p 标签的边框样式
在编辑器的第 7 行,输入:
p{border:2px dotted #ccc;}
七、盒模型--边框(二)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 5 <title>边框</title> 6 <style type="text/css"> 7 li{ 8 9 } 10 </style> 11 </head> 12 <body> 13 <ul> 14 <li>别让不会说话害了你</li> 15 <li>二十七八岁就应该有的见识</li> 16 <li>别让不好意思害了你</li> 17 </ul> 18 </body> 19 </html>
现在有一个问题,如果有想为 p 标签单独设置下边框,而其它三边都不设置边框样式怎么办呢?
css 样式中允许只为一个方向的边框设置样式:
div{border-bottom:1px solid red;}
同样可以使用下面代码实现其它三边(上、右、左)边框的设置:
border-top:1px solid red; border-right:1px solid red; border-left:1px solid red;
任务
来试试,为 li 标签设置下边框样式
在编辑器的第 8 行,输入:
border-bottom:1px dotted #ccc;
八、盒模型--宽度和高度
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 5 <title>宽度和高度</title> 6 <style type="text/css"> 7 li{ 8 border-bottom:1px dotted #ccc; 9 10 } 11 </style> 12 </head> 13 <body> 14 <ul> 15 <li>别让不会说话害了你</li> 16 <li>二十七八岁就应该有的见识</li> 17 <li>别让不好意思害了你</li> 18 </ul> 19 </body> 20 </html>
盒模型宽度和高度和我们平常所说的物体的宽度和高度理解是不一样的,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浏览器下可查看元素盒模型,如下图:
任务
来试试,为列表每一项长度设置为200px
li是块状元素,块状元素有一个特点之一:在不设置宽度的情况下,显示为父容器的100%。
在编辑器的第9行,输入下列代码:
width:200px;height:30px;
九、盒模型--填充
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 5 <title>填充</title> 6 <style type="text/css"> 7 #box1{ 8 width:100px; 9 height:100px; 10 11 border:1px solid red; 12 } 13 </style> 14 </head> 15 <body> 16 <div id="box1">盒子1</div> 17 </body> 18 </html>
元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。如下代码:
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设置填充10px
在编辑器的第10行,输入:
padding:10px;
是内容到边框的距离,内容的大小是由width和hight决定的。
如果文字过多,会限定width往下写,盒子大小不变,文字超出。例子:
#box1{
background:green;
width:100px;
height:100px;
padding:10px;
border:1px solid red;
<body>
<div id="box1">盒子1盒子盒子盒子盒子盒子盒子盒子盒子盒盒子盒子盒盒子盒子盒盒子盒子盒盒子盒子盒子盒</div>
</body>
#box1{
width:100px;
height:100px;
padding:10px;
text-align:center;
line-height:100px;
border:1px solid red;
}
10、盒模型--边界
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>边距</title> 6 <style type="text/css"> 7 div{ 8 width:300px; 9 height:300px; 10 border:1px solid red; 11 } 12 13 </style> 14 </head> 15 <body> 16 <div id="box1">box1</div> 17 <div id="box2">box2</div> 18 </body> 19 </html>
元素与其它元素之间的距离可以使用边界(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在边框外。
任务
来试试:为id名称为box1的div元素加入30象素的下边距
在代码编辑器中第12行输入下列代码:
#box1{margin-bottom:30px;}