CSS佈局
一、左右佈局
1、float實現左右佈局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="index01.css">
<title>居中佈局的幾個實現方案</title>
</head>
<body>
<div class="left"></div>
<div class="right">DEMO</div>
</body>
</html>
標籤結構很簡單,就是一個父元素裡面套了一個子元素
想要實現左右佈局,只需要把<div class="left"></div>
設定成向左浮動,右邊向右浮動
.left{
float: left;
}
.right{
float: right;
}
或者把left和right設定成inline-block
.left{
display: inline-block
}
.right{
display: inline-block
}
二、居中佈局
1、html
結構
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="index01.css">
<title>居中佈局的幾個實現方案</title>
</head>
<body>
<div class="parent">
<div class="child">DEMO</div>
</div>
</body>
</html>
標籤結構很簡單,就是一個父元素裡面套了一個子元素
2.用text-align
和inline-block
實現
- 首先
text-align
只針對inline
元素有效,因此,可以在父元素設定text-align:center
,然後改變子元素display:block
為inline-block
. -
index01.css
的程式碼為:
.parent{
height: 200px;
background-color: gray;
text-align: center;
}
.child{
background-color: yellowgreen;
height: 200px;
width: 200px;
display: inline-block;
}
3.用display:table
和margin:0 auto
實現
- 首先定寬的塊級元素可以設定
margin:0 auto
實現水平居中 -
display:table
這個元素的作用就像<table>
元素. 它定義了一個塊級盒子. -
index02.css的程式碼為;
.parent{ height: 200px; background-color: gray; } /*display:table 在表現形式上很像是block元素 寬度跟著內容走。 */ .child{ display: table; margin: 0 auto; background-color: greenyellow; height: 200px; width: 200px; text-align: center; line-height: 200px; }
4.用position:absolute
和left: 50%
以及transform: translateX(-50%)
實現
- 首先對父元素設定
position: relative
- 對子元素設定絕對定位,相對於父元素定位
- 用
left:50%
則可以根據左邊進行定位 - 根據
transform
,則可以根據自身的寬度偏移 -
index03.css的程式碼為:
.parent{ height: 200px; background-color: gray; position: relative; } .child{ position: absolute; left: 50%; transform: translateX(-50%); height: 200px; background-color: greenyellow; }
5.用flex
+justify-content
實現
- 對父元素設定
display:flex
,則第一級子元素是flex-item
- 對子元素設定
justify-content: center;
就可以實現居中
/////////
- 也可以對子元素設定
margin:0 auto
實現居中 -
index04.css的程式碼為:
.parent{ height: 200px; background-color: gray; display: flex; justify-content: center; } .child{ height: 200px; background-color: greenyellow; /* margin: 0 auto; */ }
三、左中右佈局
左中右佈局參考一的左右佈局,可將三個元素都設定成float:left
或者將三個元素都設定成dispaly:inline-block
四、垂直居中
-
height
和line-height
設定垂直居中 -
display:flex和
align-items: center` - 行級元素設定vertial-align: middle