一、盒子模型(Box Model)
1.margin 属性(外边距)
margin-top:100px;
margin-bottom:100px;
margin-right:50px;
margin-left:50px;
margin:10px 5px 15px 20px;
margin:10px 5px 15px;
margin:10px 5px;
margin:10px;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
div
{
background-color:yellow;
}
.margin
{
margin:100px 50px;
}
</style>
</head>
<body>
<div class="margin">这是一个指定边距大小的段落。</div>
</body>
</html>
2.Border(边框)
(1)border-width边框宽度
- thin 定义细的边框。
- medium 默认。定义中等的边框。
- thick 定义粗的边框。
- length 允许您自定义边框的宽度。
- inherit 规定应该从父元素继承边框宽度。
border-width:thin medium thick 10px;
border-width:thin medium thick;
border-width:thin medium;
border-width:thin;
(2) border-style边框样式
none: 默认无边框
dotted: 定义一个点线边框
dashed: 定义一个虚线边框
solid: 定义实线边框
double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
groove: 定义3D沟槽边框。效果取决于边框的颜色值
ridge: 定义3D脊边框。效果取决于边框的颜色值
inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
outset: 定义一个3D突出边框。 效果取决于边框的颜色值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
p.none {border-style:none;}
</style>
</head>
<body>
<p class="none">测试边框</p>
</body>
</html>
也可以单独设置每边的值
例 border-top-style:dotted;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:solid;
等同于
border-style:dotted solid;
border-style属性可以有1-4个值:
border-style:dotted solid double dashed;
(3)border-color边框颜色
border-color单独使用是不起作用的,必须得先使用border-style来设置边框样式
border-style:solid;
border-color:red;
简写
border:5px solid red;
3.padding属性
padding-top:25px;
padding-bottom:25px;
padding-right:50px;
padding-left:50px;
padding:25px 50px 75px 100px;
padding:25px 50px 75px;
padding:25px 50px;
padding:25px;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
.one,.two,.three{
border:1px solid #999;
}
.two{
margin-top:50px;
margin-left:50px;
margin-bottom:50px;
margin-right:50px;
padding-top:50px;
padding-left:50px;
padding-bottom:50px;
padding-right:50px
}
</style>
</head>
<body>
<div class='one'>
<div class='two'>
<text class='three'>555</text>
</div>
</div>
</body>
</html>
(4)Content(内容)
盒子的内容,显示文本和图像。
content 属性与 :before 及 :after 伪元素配合使用,来插入生成内容。
<!DOCTYPE html>
<html>
<head>
<style>
a:after {content: " (" attr(href) ")";}
</style>
</head>
<body>
<p><a href="//www.runoob.com">菜鸟教程</a> - 免费的编程学习网站。</p>
<p><b>注意:</b>仅当 !DOCTYPE已经定义 IE8支持 content属性</p>
</body>
</html>
二、弹性盒子(Flex Box)
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性容器内包含了一个或多个弹性子元素。
1. display
指定 HTML 元素盒子类型。
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
width: 400px;
height: 250px;
background-color: lightgrey;
}
.flex-item {
background-color: cornflowerblue;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="flex-item">flex item 1</div>
<div class="flex-item">flex item 2</div>
<div class="flex-item">flex item 3</div>
</div>
</body>
</html>
2. flex-direction
指定了弹性容器中子元素的排列方式
flex-direction的值有:
- row:横向从左到右排列(左对齐),默认的排列方式。
- row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。
- column:纵向排列。
- column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。
flex-direction: row | row-reverse | column | column-reverse
3. justify-content
内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。
justify-content: flex-start | flex-end | center | space-between | space-around
4.align-items 属性
align-items 设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。
align-items: flex-start | flex-end | center | baseline | stretch
5.flex-wrap 属性
flex-wrap 属性用于指定弹性盒子的子元素换行方式。
flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;
- nowrap - 默认, 弹性容器为单行。该情况下弹性子项可能会溢出容器。
- wrap - 弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行
- wrap-reverse -反转 wrap 排列。
6.align-content 属性
align-content 属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。
align-content: flex-start | flex-end | center | space-between | space-around | stretch
- stretch - 默认。各行将会伸展以占用剩余的空间。
- flex-start - 各行向弹性盒容器的起始位置堆叠。
- flex-end - 各行向弹性盒容器的结束位置堆叠。
- center -各行向弹性盒容器的中间位置堆叠。
- space-between -各行在弹性盒容器中平均分布。
- space-around - 各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。