1.盒子布局
属性 | 描述 |
border-top | 设置上边框 |
border-bottom | 设置下边框 |
border-left | 设置左边框 |
border-right | 设置右边框 |
值 | 描述 |
none | 表示没有边框 |
solid | 表示边框是实线 |
dotted | 表示边框是点状的,但在多数浏览器中显示为实线 |
dashed | 表示边框是虚线,在多数浏览器中也显示为实线 |
hidden | 也表示无边框,但在表内是用于处理边框之间的冲突 |
属性 | 描述 |
padding | 内边距(内容到边框的距离) |
margin | 外边距(边框到页面的距离) |
padding和margin设置的顺序为:上右下左(逆时针)
<!DOCTYPE html>
<html lang="en">
<head>
<title>布局</title>
<style>
div{
width: 100px;
height: 100px;
color: red;
padding: 20px 30px 40px 50px;
margin: 50px 40px 30px 20px;
border-bottom: 1px dotted black;
border-top: 1px dashed blue;
border-left: 1px solid purple;
border-right: 1px none ;
}
</style>
</head>
<body>
<div>这是一个div盒子</div>
</body>
</html>
2.元素的分类
块级元素(如div p hn hr) | 独占一行且自动换行,可设置行高和行宽 |
行内元素(如a,span) | 不能自动换行,也不能设置宽度和高度(设置也不可用) |
display属性可以实线块级元素和行内元素的转换
值 | |
none | 此元素不会被显示 |
block | 此元素将显示为块级元素,此元素前后会带有换行符。 |
inline | 默认。此元素会被显示为内联元素,元素前后没有换行符 |
隐藏元素除了display:none,还有width:0 height:0
<!DOCTYPE html>
<html lang="en">
<head>
<title>布局</title>
<style>
.one{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: red;
}
.two{
width: 100px;
height: 100px;
border: 1px solid black;
display: none;
}
.three{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: blue;
}
</style>
</head>
<body>
<div class="one">这是第一个div盒子</div>
<div class="two">这是第二个div盒子</div>
<div class="three">这是第三个div盒子</div>
</body>
</html>
3.浮动布局
通过float使元素浮动
值 | 描述 |
left | 使元素左浮(会影响后面的元素) |
right | 使元素右浮 |
none | 不浮动 |
<!DOCTYPE html>
<html lang="en">
<head>
<title>布局</title>
<style>
.one{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: red;
float: right;
}
.two{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: pink;
float: none;
}
.three{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: blue;
float: right;
}
</style>
</head>
<body>
<div class="one">这是第一个div盒子</div>
<div class="two">这是第二个div盒子</div>
<div class="three">这是第三个div盒子</div>
</body>
</html>
想要消除浮动,则使用clear属性
值 | 描述 |
none | 允许两边都浮动,为默认值 |
left | 不允许左边浮动 |
right | 不允许右边浮动 |
both | 在左右两侧均不允许浮动 |
<!DOCTYPE html>
<html lang="en">
<head>
<title>布局</title>
<style>
.one{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: red;
float: left;
}
.two{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: pink;
float: none;
clear: left;
}
.three{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: blue;
float: right;
}
</style>
</head>
<body>
<div class="one">这是第一个div盒子</div>
<div class="two">这是第二个div盒子</div>
<div class="three">这是第三个div盒子</div>
</body>
</html>
4.定位布局
通过position属性对元素进行定位
值 | 描述 |
absolute | 绝对定位:通过left,top,buttom,right属性进行规定 |
relative | 相对定位:相对于自己正常的位置进行定位 |
static | 默认值,没有定位,元素出现在正常的位置上 |
<!DOCTYPE html>
<html lang="en">
<head>
<title>布局</title>
<style>
#main{
width: 300px;
height: 300px;
border: 1px solid red;
}
.one{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: red;
}
.two{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: pink;
position:absolute;
top: 110px;
left: 110px;
}
.three{
width: 100px;
height: 100px;
border: 1px solid black;
background-color: blue;
position: relative;
left: 202px;
top: 101px;
}
</style>
</head>
<body>
<div id="main">
<div class="one">这是第一个div盒子</div>
<div class="two">这是第二个div盒子</div>
<div class="three">这是第三个div盒子</div>
</div>
</body>
</html>
5.其他属性
㈠overfolw:当内容溢出元素框时发生的事情
值 | 描述 |
visible | 默认值,内容不会被修剪会呈现在边框外 |
hidden | 内容会被修剪,且被修建的内容不可见 |
scroll | 内容会被修剪,但浏览器会显示滚动条以便查看其余内容 |
auto | 如果内容会被修剪,则浏览器会显示滚动条以便查看其余内容 |
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<style>
div{
width: 500px;
height: 500px;
overflow: auto;
}
</style>
</head>
<body>
<div>
<img src="../images/轮播1.png" alt="">
</div>
</body>
</html>
㈡zoom:放大或缩小元素
值 | 描述 |
normal | 默认值,无变化(相当于number输入1.0或100%) |
number | 可输入无符号的浮点数或半分比(1.0相当于100%) |
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<style>
div{
width: 500px;
height: 500px;
/* zoom: normal; */zoom: 0.5;
}
</style>
</head>
<body>
<div>
<img src="../images/中国新闻网.png" alt="">
</div>
</body>
</html>
6.弹性盒子
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
弹性容器内包含了一个或多个弹性子元素。
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex; /* display: inline-flex */
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.1 flex-driection
该属性用于规定弹性项目的排列方式或者方向,如果元素不是弹性项目则无效
值 | 描述 |
row | 默认值。作为一行,水平的显示弹性项目 |
row-reverse | 等同行,但方向相反 |
column | 作为列。垂直的显示弹性项目 |
column-reverse | 等同列,但方向相反 |
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
flex-direction: column-reverse;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.2 flex-warp
该属性用于弹性项目是否换行
值 | 描述 |
nowrap | 默认值,不会换行 |
warp | 需要时会换行 |
warp-reverse | 在需要换行时以反方向换行 |
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
flex-wrap: wrap-reverse;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.3 flex-flow
flex-driection和flex-warp的简写,输入的值就是flex-driection和flex-warp相应的值
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
flex-flow:row-reverse wrap-reverse ;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.4 align-items
该属性为弹性容器内的项目在纵轴对齐方式
值 | 描述 |
strecth | 默认。项目拉伸以适应容器 |
center | 居中 |
flex-start | 位于容器开头 |
flex-end | 位于容器末端 |
baseline | 项目被定位到容器基线 |
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
align-items: center;
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.5 justify-content
横轴对齐方式
值 | 描述 |
flex-start | 位于容器开头(默认值) |
flex-end | 位于容器结尾 |
center | 位于容器中央 |
space-between | 行与行之间有空隙 |
space-around | 行之前,行之间,行之后都有间隙 |
<html lang="en">
<head>
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
justify-content:space-between;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
6.5 align-content
属性修改 flex-wrap 属性的行为。它与 align-items 相似,但是它不对齐弹性项目,而是对齐弹性线。
值 | 描述 |
stretch | 默认值。行拉伸以占据剩余空间。 |
center | 朝着弹性容器的中央对行打包。 |
flex-start | 朝着弹性容器的开头对行打包。 |
flex-end | 朝着弹性容器的结尾对行打包。 |
space-between | 行均匀分布在弹性容器中。 |
space-around | 行均匀分布在弹性容器中,两端各占一半。 |
<html lang="en">
<head>
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
display: flex;
flex-wrap: wrap;
align-content: space-around;
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
}
</style>
</head>
<body>
<div>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
7.1 转换
transform属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
2D转换
值 | 描述 |
---|---|
none | 定义不进行转换。 |
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。
(参数顺序:
scaleX ,skewY,skewX,scaleY,translateX,translateY)
|
translate(x,y) | 定义 2D 转换。(x为距左边框的距离,y为距上边框的距离)相当于移动该项目 |
translateX(x) | 定义转换,只是用 X 轴的值。 |
translateY(y) | 定义转换,只是用 Y 轴的值。 |
scale(x,y) | 定义 2D 缩放转换。(x,y分别为横轴和竖轴的缩放比例) |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
rotate(angle) | 定义 2D 旋转,在参数中规定角度。 |
skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 |
skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 |
skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 |
<html lang="en">
<head>
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
transform: ;
transform:rotate(30deg);
}
</style>
</head>
<body>
<div>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
<html lang="en">
<head>
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
transform: ;
/* transform:rotate(30deg); */
transform: scale(0.5,2.0);
}
</style>
</head>
<body>
<div>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
<html lang="en">
<head>
<title>弹性盒子</title>
<style>
.flex-contain{
width: 400px;
height: 400px;
background-color: rgb(27, 181, 71);
}
.flex-item{
width: 100px;
height: 100px;
background-color: red;
border: 1px solid black;
transform: ;
/* transform:rotate(30deg); */
/* transform: scale(0.5,2.0); */
transform: skew(30deg,30deg);
}
</style>
</head>
<body>
<div>
<div class="flex-contain">
<div class="flex-item">flex item1</div>
<div class="flex-item">flex item2</div>
<div class="flex-item">flex item3</div>
</div>
</body>
</html>
3D转换
与2D转换相似,就是多了z轴
值 | 描述 |
---|---|
none | 定义不进行转换。 |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 |
translate3d(x,y,z) | 定义 3D 转换。 |
translateX(x) | 定义转换,只是用 X 轴的值。 |
translateY(y) | 定义转换,只是用 Y 轴的值。 |
translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 |
rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 |
rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 |
perspective(n) | 为 3D 转换元素定义透视视图。 |