<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
display: flex;/*开启弹性盒模型*/
width: 800px;
height: 500px;
margin: 50px auto;
box-shadow: 0 0 30px 0 green inset;
}
.box1{
width: 120px;
height: 100px;
box-shadow: 0 0 30px 0 blue inset;
}
</style>
</head>
<body>
<div class="box">
<div class="box1">1</div>
<div class="box1">2</div>
<div class="box1">3</div>
<div class="box1">4</div>
<div class="box1">5</div>
<div class="box1">6</div>
<div class="box1">7</div>
<div class="box1">8</div>
</div>
<!--
不会造成父级塌陷
display:flex; display:inline-flex定义弹性盒模型类型
flex 容器会开启块级弹性盒模型
inline-flex 容器会开启行内弹性盒模型
在flex布局模式下,弹性子元素的float,clear和vertical-align属性将失效
在弹性盒模型中
所有元素都会变成inline-block
支持width/height/margin
display:flex;
弹性盒模型=弹性容器+弹性子元素
弹性盒模型的特点
弹性子元素默认沿主轴(类似于x轴的水平线左为flex-start)从左到右排列
当弹性子元素宽度之和大于弹性容器宽度,会按比例分配弹性容器的宽度
交叉轴是顺时针90度之后的垂直线
flex-direction:设置弹性盒模型中主轴的方向
row(默认) 水平从左到右
row-reverse 水平从右到左
column 竖直从上到下
column-reverse 竖直从下到上
flex-wrap 设置弹性子元素超出弹性容器时是否换行
弹性子元素默认只能是显示一排的
nowrap(默认) 不换行
wrap 换行 并且第一行在上边
wrap-reverse 换行 并且第一行在下边
justify-content: 设置弹性子元素的主轴对齐方式
flex-start(默认) 弹性子元素对齐主轴起点
flex-end 弹性子元素对齐主轴重点
center 弹性子元素对齐主轴中点
space-around 弹性子元素两端对齐并且两端与弹性容器有间隙
space-between 弹性子元素两端对齐并且两端与弹性容器无间隙
stretch(默认) 如果弹性子元素未设置高度,将占满整个弹性容器的高度
align-items: 设置弹性子元素的交叉轴对齐方式
flex-start 弹性子元素对齐交叉轴起点
flex-eng 弹性子元素对齐交叉轴终点
center 弹性子元素对齐交叉轴中点
baseline 弹性子元素的基线相互对齐
stretch(默认) 如果弹性子元素未设置高度,将占满整个弹性容器的高度
换行元素剩余空间分配
align-content 设置整体弹性子元素的交叉轴对齐方式
flex-start 整体弹性子元素对齐交叉轴起点
flex-end 整体弹性子元素对齐交叉轴终点
center 整体弹性子元素对齐交叉轴中点
space-around 弹性子元素两端对齐并且两端与弹性容器有间隙
space-between 弹性子元素两端对齐并且两端与弹性容器无间隙
stretch(默认) 如果弹性子元素未设置高度,将占满整个弹性容器的高度
align-items和align-content区别
align-content 在交叉轴方向存在多行弹性子元素的情况 并且中间没有间距
align-content 是把多行弹性子元素做为一个整体对齐
align-items 把每一行都当做一个整体对齐
给元素的值
align-self 控制单个弹性子元素在交叉轴的对齐方式
flex-start 弹性单个子元素对齐交叉轴起点
flex-eng 弹性单个子元素对齐交叉轴终点
center 弹性单个子元素对齐交叉轴中点
baseline 弹性单个子元素的基线相互对齐
stretch(默认) 如果弹性单个子元素未设置高度,将占满整个弹性容器的高度
order 控制子元素在主轴方向的排列顺序
数值越小 就排在越前 默认order为0 可以是其他值可以为负
flex-grow 在主轴方向有剩余空间时,设置弹性子元素的放大比例(就是占满)
所有弹性子元素的flex-grow之和=主轴方向的剩余空间
默认是0 即默认不放大
flex-shrink 在主轴方向元素宽度大于容器宽度默认占满,这时候可以使用收缩
收缩到和容器宽度一样
flex-shrink:0; 不收缩
默认是1
在设置弹性子元素宽度时 flex-basis比width的优先级要高
特性
1能让子元素变成水平排布
2当子元素总宽度大于父级的时候,会自动按照比例计算宽度
(比如导航条直接给父级100%和flex子元素就不会超出)
3flex子元素 width默认是0 height默认100%
重点掌握
给父级的
display:flex
justify-content
flex-direction
给子级的
flex剩余空间分配
-->
</body>
</html>
Python3Turtle