实现一个元素水平和垂直居中
元素示例:
js
<div class="container">
<div class="centered-element">居中的内容</div>
</div>
flex布局
css
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh; /* 设置容器高度为视窗高度,可根据需要调整 */
}
.centered-element {
/* 可以根据需要添加样式 */
}
grid布局
教程:https://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html
css
.container {
display: grid;
place-items: center;
height: 100vh; /* 设置容器高度为视窗高度,可根据需要调整 */
}
.centered-element {
/* 可以根据需要添加样式 */
}
使用绝对定位
css
.container {
position: relative;
height: 100vh; /* 设置容器高度为视窗高度,可根据需要调整 */
}
.centered-element {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* 可以根据需要添加样式 */
}
实现左右固定,中间自身适应布局
flex布局
css
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
margin: 0;
display: flex;
}
.left-sidebar, .right-sidebar {
width: 200px;
height: 100vh;
background-color: #f1f1f1;
}
.main-content {
flex: 1;
padding: 20px;
}
</style>
</head>
<body>
<div class="left-sidebar">Left Sidebar</div>
<div class="main-content">Main Content</div>
<div class="right-sidebar">Right Sidebar</div>
</body>
</html>
grid布局
css
body {
margin: 0;
display: grid;
grid-template-columns: 200px 1fr 200px;
}
.left-sidebar, .right-sidebar {
height: 100vh;
background-color: #f1f1f1;
}
.main-content {
padding: 20px;
}
左侧固定 右侧自适应
flex布局
css
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
margin: 0;
display: flex;
}
.left-sidebar {
width: 200px;
height: 100vh;
background-color: #f1f1f1;
}
.main-content {
flex: 1;
padding: 20px;
}
</style>
</head>
<body>
<div class="left-sidebar">Left Sidebar</div>
<div class="main-content">Main Content</div>
</body>
</html>
grid布局
css
body {
margin: 0;
display: grid;
grid-template-columns: 200px 1fr;
}
.left-sidebar {
height: 100vh;
background-color: #f1f1f1;
}
.main-content {
padding: 20px;
}