弹性盒子详解

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弹性盒子详解相关的知识,希望对你有一定的参考价值。

弹性盒子:控制子元素的布局方式

1、display:flex 

   作用:让当前元素形成弹性盒,控制子元素布局!

   特点:

  1. 弹性盒子的子元素默认情况下,都是沿着主轴排列,默认情况下主轴为x轴。
  2. 弹性盒里面的子元素都能直接添加宽高。
  3. 让弹性盒里面一个子元素左右上下居中,直接给子元素添加margin: auto;

主轴排列:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section{
				display: felx;
				width: 500px;
				height: 375px;
				margin: 0 auto;
				background: #eee;
			}
			div{
				width: 40px;
				height: 40px;
				border-radius: 50%;
				background: red;
			}
		</style>
	</head>
	<body>
		<section>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
			<div></div>
		</section>
	</body>
</html>

 居中:margin: auto

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section{
				width: 500px;
				height: 375px;
				background: #eee;
				display: flex;
				margin: auto;
			}
			span{
				width: 40px;
				height: 40px;
				background: olive;
				margin: auto;
			}
		</style>
	</head>
	<body>
		<section>
			<span>1</span>
		</section>
	</body>
</html>

2、flex-diretion(改变主轴的排列方向)

   顺序制定了弹性盒子在父容器中的位置

  1. row默认再一行内排列
  2. row-reverse:翻转横向排列(右对齐,从后往前排,最后一项排在最前面)
  3. column:纵向排列
  4. column-reverse:反转纵向排列,从下往上排,最后一项排在最上面

效果:column

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section{
				width: 500px;
				height: 375px;
				background: #eee;
				display: flex;
				margin: auto;
				flex-direction: column;
			}
			span{
				width: 40px;
				height: 40px;
				background: olive;
				border-radius: 50%;
			}
		</style>
	</head>
	<body>
		<section>
			<span>1</span>
			<span>2</span>
			<span>3</span>
			<span>4</span>
			<span>5</span>
			<span>6</span>
			<span>7</span>
			<span>8</span>
		</section>
	</body>
</html>

3、justify-content(主轴对齐方式)

   说明:

        内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

  1. flex-start默认,顶端对齐
  2. flex-end末端对齐
  3. center居中对齐
  4. space-between俩段对齐,中间自动分配
  5. space-around自动分配距离

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section{
				width: 500px;
				height: 375px;
				background: #eee;
				display: flex;
				margin: auto;
				flex-direction: row;
				justify-content: space-around;
			}
			span{
				width: 40px;
				height: 40px;
				background: olive;
				border-radius: 50%;
				text-align: center;
			}
		</style>
	</head>
	<body>
		<section>
			<span>1</span>
			<span>2</span>
			<span>3</span>
			<span>4</span>
			<span>5</span>
			<span>6</span>
			<span>7</span>
			<span>8</span>
		</section>
	</body>
</html>

 4、侧轴的对齐方式

align-items

属性值:

1、Flex-start:弹性盒子元素的侧轴起始位置的边界紧靠住该行的侧轴起始边界。

2、Flex-end:弹性盒子元素的侧轴起始位置的边界紧靠朱该行的侧轴结束边界。

3、Center:弹性盒子元组再该行的侧轴上居中放置。

4、Baseline:如果弹性盒子元素的行内与侧轴为同一条,则该值与flex-start等效。其他情况下,该值将参与基线对齐。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			section{
				width: 500px;
				height: 375px;
				background: #eee;
				display: flex;
				margin: auto;
				flex-direction: row;
				justify-content: space-around;//主轴对齐方式
				align-items: baseline;//侧轴对齐方式
			}
			span{
				width: 60px;
				height: 60px;
				background: olive;
				border-radius: 50%;
				text-align: center;
			}
		</style>
	</head>
	<body>
		<section>
			<span>1</span>
			<span>2</span>
			<span>3</span>
			<span>4</span>
			<span>5</span>
			<span>6</span>
			<span>7</span>
			<span>8</span>
		</section>
	</body>
</html>

以上是关于弹性盒子详解的主要内容,如果未能解决你的问题,请参考以下文章

弹性盒子布局属性详解

弹性盒子详解

弹性盒布局display:flex详解

前端CSS3——Flex弹性布局详解

Css 弹性布局(Flex)详细介绍(Flex 属性详解场景分析)

最流行的布局方案 Flex 弹性盒布局详解