131_弹性盒简介(Flex)

CSS Flexbox

flex(弹性盒、伸缩盒):
  • 是CSS中的又一种布局手段,它主要用来代替浮动来完成页面的布局
  • flex可以使元素具有弹性,让元素可以跟随页面大小的改变而改变
弹性容器:
  • 要使用弹性盒,必须先将一个元素设置为弹性容器
  • 我们通过 display 来设置弹性容器
  • display: flex 设置为块级弹性容器
  • display: inline-flex 设置为行内弹性容器
弹性元素:
  • 弹性容器的子元素是弹性元素(弹性项)
  • 弹性元素可以同时是弹性容器
flex-direction 指定容器中弹性元素的排列方式:

主轴:弹性元素的排列方向称为主轴
侧轴:与主轴垂直方向的称为侧轴

可选值:

row 默认值,弹性元素在容器中水平排列(自左向右)
主轴 自左向右

row-reverse 弹性元素在容器中反向水平排列(自右向左)
主轴 自右向左

column 弹性元素纵向排列(自上向下)
主轴 自上向下

column-reverse 弹性元素反向纵向排列(自下向上)
主轴 自下向上

弹性元素的属性:

flex-grow 指定弹性元素的伸展系数

  • 该值必须是数字,默认值是 0,所以默认不生效
  • 父元素有多余空间时,会按照比例将多余空间分配给弹性元素,数值越大分配的越多

flex-shrink 指定弹性元素的收缩系数

  • 该值必须是数字,默认值是 1,所以默认生效
  • 当父元素中的空间不足以容纳所有的子元素时,会按算法对弹性元素进行收缩,收缩主要有两个条件:缩减系数、元素大小。举例:一个块很小,但是缩减系数大,另一个块很大,但是缩减系数小,按道理应该是缩减系数越大则缩得越小,但是这里的缩减算法是考虑了两个条件,所以基本上是块越大缩减得越多。

收缩的情况:

<!DOCTYPE html>
<html lang="zh">
	<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>
			* {
				margin: 0;
				padding: 0;
				list-style: none;
			}

			ul {
				width: 400px;
				border: 10px red solid;
				/* 将ul设置为弹性容器 */
				display: flex;
				/* 弹性元素在容器中水平排列 */
				flex-direction: row;
			}

			li {
				width: 200px;
				height: 100px;
				font-size: 50px;
				text-align: center;
				line-height: 100px;
				/* flex-grow: 0; */
				/* flex-shrink: 1; */
			}

			li:nth-child(1) {
				background-color: #bfa;
				/* flex-grow: 1; */
				flex-shrink: 1;
			}

			li:nth-child(2) {
				background-color: pink;
				/* flex-grow: 2; */
				flex-shrink: 2;
			}

			li:nth-child(3) {
				background-color: orange;
				/* flex-grow: 3; */
				flex-shrink: 3;
			}
		</style>
	</head>
	<body>
		<ul>
			<li>1</li>
			<li>2</li>
			<li>3</li>
		</ul>
	</body>
</html>

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值