前端从零开始(69)flex-direction 排列方向

flex-direction 排列方向

弹性和模型中内部的子元素的排列方向可以通过这个属性修改,那么我们就一起看下它的使用吧。

1. 官方定义

flex-direction 属性规定项目的排列方向。

2. 慕课解释

flex-direction 用来调整主轴的方向,我们知道主轴默认是水平方向且从左到右,而我们可以通过这个属性设置主轴的方向,即项目是水平方向从左到右还是垂直方向从上到下或者从下到上排列。

3. 语法

div{
flex-direction: row|row-reverse|column|column-reverse|initial|inherit;
}
<div class="demo">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.demo{
display:flex; // 让容器变成弹性盒
flex-direction:row-reverse; 改变项目的排列方向
}

4. 兼容性

IE Edge Firefox Chrome Safari Opera ios android
10+ 12+ 28+ 4+ 6.1+ 12.1+ 7+ 4.4

5. 实例

  1. 让子元素从上到下垂直方向排列
.demo{
display:flex;
flex-direction:column;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
border-bottom:1px solid #fff;
}

效果图

前端从零开始(69)flex-direction 排列方向
图片描述

从上到下排列效果图

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo{
display:flex;
flex-direction:column;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
border-bottom:1px solid #fff;
}
</style>
</head>
<body>
<div class="demo">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
  1. 让子元素从下到上反向排列
.demo{
display:flex;
flex-direction:column-reverse;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
border-bottom:1px solid #fff;
}

效果图

前端从零开始(69)flex-direction 排列方向
图片描述

从上到下反向排列效果图

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo{
display:flex;
flex-direction:column-reverse;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
border-bottom:1px solid #fff;
}
</style>
</head>
<body>
<div class="demo">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
  1. 让子元素从左到右排列
.demo{
display:flex;
flex-direction:row;
}
.item{
background:#ccc;
height:100px;
width: 100px;
border-right:1px solid #fff;
}

效果图

前端从零开始(69)flex-direction 排列方向
图片描述

从左到右排列效果图

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo{
display:flex;
flex-direction:row;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
width: 100px;
border-right:1px solid #fff;
}
</style>
</head>
<body>
<div class="demo">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>
  1. 让子元素从左到右反向排列
.demo{
display:flex;
flex-direction:row-reverse;
}
.item{
background:#ccc;
height:100px;
width: 100px;
border-right:1px solid #fff;
}

效果图

前端从零开始(69)flex-direction 排列方向
图片描述

从左到右反向排列效果图

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.demo{
display:flex;
flex-direction:row-reverse;
text-align: center;
line-height: 100px;
}
.item{
background:#ccc;
height:100px;
width: 100px;
border-right:1px solid #fff;
}
</style>
</head>
<body>
<div class="demo">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
</body>
</html>

6. 经验分享

通过 flex 可以做一个上下固定,中间自适应的布局,它常常用于登录页那类的布局设置。

<div class="demo">
<div class="head">头部</div>
<div class="content">内容</div>
<div class="foot">尾部</div>
</div>
html,body{
padding:0;
margin:0;
height: 100%;
color:#fff;
}
.demo{
height: 100%;
display: flex;
flex-direction: column;
}
.head,.foot{

flex:0 1 100px;
background: #000;
}
.content{
flex: 1;
background: red;
}

案例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>demo</title>
<style>
html,body{
padding:0;
margin:0;
height: 100%;
color:#fff;
}
.demo{
height: 100%;
display: flex;
flex-direction: column;
}
.head,.foot{

flex:0 1 100px;
background: #000;
}
.content{
flex: 1;
background: red;
}
</style>
</head>
<body>
<div class="demo">
<div class="head">头部</div>
<div class="content">内容</div>
<div class="foot">尾部</div>
</div>
</body>
</html>

说明:这个布局就是两端固定,中间自适应的典型写法,而如果设置 flex-direction:row就变成了左右固定,中间自适应的横向布局。而他们正是组成页面的基础。

7. 小结

  1. 一定要在弹性盒模型下使用。
  2. 可以通过样式直接设置排列顺序,节省浏览器性能。

微信公众号

扫码关注


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18890.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!