flex 属性

一、flex-direction(元素排列方向)

1、flex-direction:row;//从左到右排列

2、flex-direction:column;//从上往下排列

二、flex-wrap(内容一行容不下的时候才有效)

1、flex-wrap:nowrap //超出不换行,很奇怪里面的宽度会变成100%

2、flex-wrap:wrap //超出按父级的高度平分)

三、justify-content //水平对齐方式

1、justify-content:flex-start; (水平左对齐)

2、justify-content:flex-end; (水平右对齐)

3、justify-content:center; (居中对齐)

4、justify-content:space-between; (两端对齐)

5、justify-content:space-around; (两端对齐,并且两端有间距)

四、align-items (垂直对齐方式)

1、align-items:flex-start; (上对齐,和默认差不多)

1、align-items:flex-end; (下对齐)

1、align-items:center;(居中对齐)

以上是对flex的简单介绍。下面有个小例子,

大家经常用到的,某个div里面水平垂直居中,

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #box{
                display: flex;
                display: -webkit-flex;
                border: 1px solid #0000FF;
                height: 200px;
                width: 400px;
                align-items:center;
                justify-content:center;
            }
            .item{
                width: 50px;
                height: 40px;
                border: 1px solid #00C1B3;
            }
        </style>
    </head>
    <body>
        <div id="box">
            <div class="item">1</div>
            <div class="item">2</div>
            <div class="item">3</div>
            <div class="item">4</div>
            <div class="item">5</div>
        </div>
    </body>
</html>

个人练习::

<!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>
			.box {
				height: 600px;
				background: #ccc;
				display: flex;
				-webkit-display: flex;
				flex-direction: row; /* 定义子元素排列方向:从左到右(默认) row column  */
				flex-wrap: wrap; /*元素撑满是否换行:默认是不换行 nowrap */
				justify-content: space-around; /*定义子元素在主轴的对齐方式:两端对齐/居中对齐*/
				align-items: center; /*定义子元素在辅轴的对齐方式:居中对齐*/
			}
			.sub {
				width: 100px;
				height: 100px;
				background-color: red;
				font-size: 20px;
				text-align: center;
				line-height: 200px;
				border: 10px solid blue;
				box-sizing: border-box;
			}
		</style>
	</head>
	<body>
		<div class="box">
			<div class="sub">1</div>
			<div class="sub">2</div>
			<div class="sub">3</div>
			<div class="sub" style="order: -1; flex-grow: 1; align-self: end;">4</div>
			<!-- 
        order 定义子元素在容器中的排列顺序,数值越小,排列越靠前。 
        flex-grow 通过一个数值来定义子元素的放大比例 
        align-self  定义子元素在交叉轴上,自己的对齐方式
      -->
		</div>
	</body>
</html>

应用场景总结

1、手机底部tab导航

2、手机上的九宫格图片

posted @ 2020-02-19 16:44  麦子同学  阅读(173)  评论(0编辑  收藏  举报