移动WEB开发之flex布局

一、flex布局体验

1、传统布局与flex布局

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div {
				display: flex;
				width: 80%;
				height: 300px;
				background-color: #0099FF;
				justify-content: space-around;
			}
			div span {
				/* width: 200px; */
				height: 150px;
				background-color: pink;
				margin-right: 5px;
				flex: 1;
			}
		</style>
	</head>
	<body>
		<div>
			<span>1</span>
			<span>1</span>
			<span>1</span>
		</div>
	</body>
</html>

效果如图
在这里插入图片描述

二、布局原理

在这里插入图片描述
在这里插入图片描述

三、flex布局父项常见属性

1、常见父项属性

在这里插入图片描述

2、flex-direction设置主轴的方向

1、主轴与侧轴

在这里插入图片描述

2、属性值

在这里插入图片描述

3、justify-content设置主轴上的子元素排列方式

在这里插入图片描述

			div {
				display: flex;
				width: 80%;
				height: 300px;
				background-color: #0099FF;
				/* justify-content: flex-start; */
				/* justify-content: flex-end; */
				/* justify-content: center; */
				/* justify-content: space-around; */
				justify-content: space-between;
			}
			div span {
				width: 150px;
				height: 100px;
				background-color: purple;
			}

4、flex-wrap元素是否换行

在这里插入图片描述

			div {
				display: flex;
				width: 50%;
				height: 300px;
				background-color: #0099FF;
				/* 默认不换行 */
				/* flex-wrap: nowrap; */
				flex-wrap: wrap;
			}
			div span {
				width: 200px;
				height: 100px;
				background-color: purple;
				margin-right: 10px;
			}

效果如图:
在这里插入图片描述

5、align-items设置子元素排列(单行)

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div {
				display: flex;
				width: 80%;
				height: 300px;
				background-color: #0099FF;
				justify-content: center;
				align-items: center;
			}
			div span {
				width: 150px;
				height: 100px;
				background-color: pink;
				margin: 10px;
			}
		</style>
	</head>
	<body>
		<div>
			<span>1</span>
			<span>2</span>
			<span>3</span>
		</div>
	</body>
</html>

效果如图:
在这里插入图片描述

6、align-content设置侧轴上子元素排列方式(多行)

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div {
				display: flex;
				width: 600px;
				height: 300px;
				background-color: #0099FF;
				flex-wrap: wrap;
				/* align-content: flex-start; */
				align-content: center;
			}
			div span {
				width: 150px;
				height: 100px;
				background-color: pink;
				margin: 10px;
			}
		</style>
	</head>
	<body>
		<div>
			<span>1</span>
			<span>2</span>
			<span>3</span>
			<span>4</span>
			<span>5</span>
			<span>6</span>
		</div>
	</body>
</html>

效果如图:
在这里插入图片描述

7、align-items和align-content的区别

在这里插入图片描述

8、flex-flow

在这里插入图片描述

四、子项flex属性使用

1、flex属性

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section {
				display: flex;
				width: 60%;
				height: 150px;
				background-color: pink;
				margin: 0 auto;
			}

			section div:nth-child(1) {
				width: 100px;
				height: 150px;
				background-color: red;
			}

			section div:nth-child(2) {
				flex: 1;
				background-color: green;
			}

			section div:nth-child(3) {
				width: 100px;
				height: 150px;
				background-color: blue;
			}

			p {
				display: flex;
				width: 60%;
				height: 150px;
				background-color: pink;
				margin: 100px auto;
			}

			p span {
				flex: 1;
			}

			p span:nth-child(2) {
				flex: 2;
				background-color: green;
			}
		</style>
	</head>
	<body>
		<section>
			<div></div>
			<div></div>
			<div></div>
		</section>
		<p>
			<span>1</span>
			<span>2</span>
			<span>3</span>
		</p>
	</body>
</html>

效果如图:
在这里插入图片描述

2、align-self控制子项自己在侧轴上的排列方式

在这里插入图片描述

3、order属性定义项目的排列顺序

在这里插入图片描述

<!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>Document</title>
    <style>
        div {
            display: flex;
            width: 80%;
            height: 300px;
            background-color: pink;
            /* 让三个子盒子沿着侧轴底侧对齐 */
            /* align-items: flex-end; */
            /* 我们想只让3号盒子下来底侧 */
        }
        
        div span {
            width: 150px;
            height: 100px;
            background-color: purple;
            margin-right: 5px;
        }
        
        div span:nth-child(2) {
            /* 默认是0   -1比0小所以在前面 */
            order: -1;
        }
        
        div span:nth-child(3) {
            align-self: flex-end;
        }
    </style>
</head>

<body>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
</body>

</html>

效果如图:
在这里插入图片描述

4、常见flex布局思路

在这里插入图片描述

5、背景线性渐变

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201209142804102.png?

注意:必须添加浏览器私有前缀-webkit-

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div {
				width: 600px;
				height: 200px;
				background: -webkit-linear-gradient(left,red,blue);
			}
		</style>
	</head>
	<body>
		<div></div>
	</body>
</html>

效果如图:
在这里插入图片描述

五、案例-携程移动端首页

效果如图
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值