1. 程式人生 > >CSS3布局之flex布局效果

CSS3布局之flex布局效果

方向 fff lang 距離 absolut 換行 row pla containe

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">

*{
margin: 0;
padding: 0;
}
.container{
width: 1000px;
margin:0 auto;
}
header{
text-align: center;
line-height: 60px;
}
section{
width: 1000px;
height: 300px;
margin:10px 0;
border:2px solid #ddd;
border-radius: 10px;
background: #fff;
position: relative;
}
section h3{
width: 1000px;
height: 300px;
text-align: center;
line-height: 200px;
color: orange;
background: rgba(0,0,0,0.1);
border-radius: 10px;
display: none;
position: absolute;
top:0;
left:0;
}
section:hover h3{
display: block;
}
.content{
/*margin:25px 0;*/
width: 200px;
height: 150px;
background-image: linear-gradient(#eee,#abc);
border:1px solid purple;
text-align: center;
font-family: "黑體";
color: blue;
font-size: 40px;
}

.item:nth-of-type(1) .content,
.item:nth-of-type(2) .content,
.item:nth-of-type(3) .content,
.item:nth-of-type(4) .content,
.item:nth-of-type(5) .content{
margin:25px auto;
}
.item:nth-of-type(1){
/*將當前元素的父元素設置為flex布局方式,會自動對子元素進行伸縮布局*/
display: flex;
}

.item:nth-of-type(2){
display: flex;
}
.item:nth-of-type(3){
display: flex;
/*column:表示將主軸方向改為列方向從上到下;*/
flex-direction: column;
}
.item:nth-of-type(4){
display: flex;
/* row-reverse:表示將主軸方向改為從右到左;*/
flex-direction: row-reverse;
}
.item:nth-of-type(5){
display: flex;
/* row-reverse:表示將主軸方向改為從下到上;*/
flex-direction: column-reverse;
}

.item:nth-of-type(6){
display: flex;
/*默認值:主軸上的內容在主軸開始方向進行布局;*/
justify-content: flex-start;
}
.item:nth-of-type(7){
display: flex;
/*默認值:主軸上的內容在主軸開始方向進行布局;*/
justify-content: flex-end;
}
.item:nth-of-type(8){
display: flex;
flex-direction: row-reverse;
}
.item:nth-of-type(9){
display: flex;
justify-content: center;
}

/*區別:
1.space-around 每個伸縮項兩邊的左右外邊距相等,伸縮項和伸縮容器的外邊距是兩個伸縮項之間的距離的一半
2.space-between 兩個伸縮項之間的距離相等,不考慮伸縮項與伸縮容器的邊距

;*/
.item:nth-of-type(10){
display: flex;
justify-content: space-around;
}
.item:nth-of-type(11){
display: flex;
justify-content: space-between;
}

.item.h500{
height: 600px;
display: flex;
}
.item.h500 h3{
height: 600px;
}
.item:nth-of-type(12){
/*內容分布在側軸的起始位置一段*/
align-items: flex-start;
}
.item:nth-of-type(13){
/*內容分布在側軸的末尾位置一段*/
align-items: flex-end;
}
.item:nth-of-type(14){
/*內容分布在側軸中心位置*/
align-items: center;
}
.item:nth-of-type(15){
/*內容分布與文本的基準線對齊*/
align-items: baseline;
}
.item:nth-of-type(16){
/*內容拉伸填充*/
align-items: stretch;
}
.item:nth-of-type(16) .content{
height: auto;
}

.item:nth-of-type(17){
flex-wrap: wrap;
}
.item:nth-of-type(18){
flex-wrap: nowrap;
}


/*換行後控制多行元素在側軸方向的布局*/
.item:nth-of-type(19){
/*側軸方向上所有的元素貼靠到側軸的起始方向*/
flex-wrap: wrap;
align-content: flex-start;
}
.item:nth-of-type(20){
/*側軸方向上所有的元素貼靠到側軸的末尾方向*/
flex-wrap: wrap;
align-content: flex-end;
}
.item:nth-of-type(21){
/*伸縮容器與盒子有外邊距*/
flex-wrap: wrap;
align-content: center;
}
.item:nth-of-type(22){
/*伸縮容器與盒子無外邊距*/
flex-wrap: wrap;
align-content: space-around;
}
.item:nth-of-type(23){
/*伸縮容器與盒子無外邊距*/
flex-wrap: wrap;
align-content: space-between;
}
.item:nth-of-type(24) .content{
height:auto;
}
.item:nth-of-type(24){
/*根據內容所占的行數進行拉伸,默認情況下每一行高度相同*/
flex-wrap: wrap;
align-content: stretch;
}


</style>
</head>
<body>

<div class="container">

<header>
<h2>伸縮布局</h2>
</header>
<section class="item">
<h3>三個盒子水平等分</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>

<header>
<h2>伸縮布局的主軸</h2>
</header>
<section class="item">
<h3>主軸方向(從左到右)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3>flex-direction: column;(從上到下布局貼靠上邊)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3>flex-direction: row-reverse;(從右到左布局貼靠右邊)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3>flex-direction: column-reverse;(從下到上布局貼靠下邊)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>

<header>
<h2>主軸方向的內容布局方式(單行從左到右)</h2>
</header>
<section class="item">
<h3> justify-content: flex-start;(布局貼靠左邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3> justify-content: flex-end;(布局貼靠右邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3> flex-direction: row-reverse;(從右到左布局貼靠右邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3> justify-content: center;(布局在中間) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3> justify-content: space-around;(等距分開與父容器有一半邊距)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item">
<h3> justify-content: space-between;(等距分開與父容器無邊距)</h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>

<header>
<h2>側軸方向的內容布局方式(單行從左到右)</h2>
</header>
<section class="item h500">
<h3> align-items: flex-start;(布局貼靠上邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item h500">
<h3> align-items: flex-end;(布局貼靠下邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item h500">
<h3> align-items: center;(布局在垂直中間) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>
<section class="item h500">
<h3> align-items: baseline;(布局與文字基準線對齊) </h3>
<div class="content">1</div>
<div class="content" style="line-height: 200px;">2</div>
<div class="content">3</div>
</section>
<section class="item h500">
<h3> align-items: stretch;(布局高度拉伸填充) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">3</div>
</section>

<header>
<h2>控制主軸元素換行</h2>
</header>
<section class="item h500">
<h3> flex-wrap: wrap;(換行) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> flex-wrap: nowrap;(不換行) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>

<header>
<h2>換行後側軸方向的布局(換行情況下,多行從左到右,從上到下)</h2>
</header>
<section class="item h500">
<h3> align-content: flex-start;(布局緊靠上邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> align-content: flex-end;(布局緊靠下邊) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> align-content: center;(布局垂直中間) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> align-content: space-around;(每行布局等距分開與父容器有一般邊距) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> align-content: space-between;(每行布局等距分開與父容器無邊距) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
<section class="item h500">
<h3> align-content: stretch;(每行拉升相同高度填滿父容器) </h3>
<div class="content">1</div>
<div class="content">2</div>
<div class="content">4</div>
<div class="content">5</div>
<div class="content">6</div>
<div class="content">7</div>
<div class="content">8</div>
<div class="content">9</div>
<div class="content">10</div>
<div class="content">11</div>
<div class="content">12</div>
<div class="content">13</div>
</section>
</div>
</body>
</html>

原地址:http://www.qdfuns.com/notes/45493/f49dddfc2716beb3d79b9a5e58bf0096.html

CSS3布局之flex布局效果