2021-03-09
阅读:94
推荐教程 阮一峰flex布局教程
主要使用
代码如下
<!DOCTYPE html>
<html lang="zh">
<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>Document</title>
<style>
.content{
width: 500px;
height: 200px;
background: red;
display: flex;
justify-content: center;
align-items: center;
}
.box{
width: 200px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div class="content">
<div class="box">
</div>
</div>
</body>
</html>
显示效果
父元素设相对定位,子元素设绝对定位,距离上边 50%,左边 50%,并且设置 transform: translate(-50%,-50%);
代码如下
<!DOCTYPE html>
<html lang="zh">
<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>Document</title>
<style>
.content{
width: 500px;
height: 200px;
background: red;
position: relative;
}
.box{
width: 200px;
height: 100px;
background: blue;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="content">
<div class="box">
</div>
</div>
</body>
</html>
Grid 布局与flex布局有一定的相似性,都可以指定容器内多个项目的位置。但是,它们也存在重大区别。
Flex 布局是轴线布局,只能指定“项目”针对轴线的位置,可以看做是一维布局。Grid布局则是将容器划分成”行“和”列“,产生单元格,然后指定”项目所在“的单元格,可以看做是二维布局。Grid布局远比Flex布局强大。
摘自 阮一峰 Grid布局教程
代码如下
<!DOCTYPE html>
<html lang="zh">
<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>Document</title>
<style>
.content{
width: 500px;
height: 200px;
background: red;
display: grid;
}
.box{
width: 200px;
height: 100px;
background: blue;
align-self: center;
justify-self: center;
}
</style>
</head>
<body>
<div class="content">
<div class="box">
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<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>Document</title>
<style>
.content{
width: 500px;
height: 200px;
background: red;
text-align: center;
}
.content::before{
display: inline-block;
vertical-align: middle;
content: "";
height: 100%;
}
.box{
width: 200px;
height: 100px;
background: blue;
vertical-align: middle;
display: inline-block;
}
</style>
</head>
<body>
<div class="content">
<div class="box">
</div>
</div>
</body>
</html>