CSS--flex布局与定位
flex弹性盒子布局
1. 关键词 display:flex;
我们将设置flex布局的盒子称之为容器,将容器下面的儿子(仅儿子)称之为项目;当给儿子设置flex后,它就变成了容器!
父元素=容器,子元素=项目, (默认)水平方向=主轴, (默认)垂直方向=交叉轴
当 项目 的 宽高 接近于 容器 的 宽高 并有多个项目时,设置flex会将项目 挤压 至适应 容器 宽高
除了 宽 会被挤压,高 同样如此!
2. 所有属性属性值:
justify-content 主轴
justify-content:flex-end/end 在主轴上向右看齐
justify-content:center 在主轴上居中
justify-contnet:flex-start/start 在主轴上向左看齐
justify-content:space-around

justify-content:space-between
justify-content:space-evenly

align-content 交叉轴
align-content:flex-end/end 在交叉轴上向下看齐
align-content:center 在交叉轴上居中
align-contnet:flex-start/start 在交叉轴上向上看齐
align-content:space-around

align-content:space-between 效果与 justify-content:space-between 相同
align-content:space-evenly 效果与 justify-content:space-evenly 相同
align-items: center 再未设置换行的情况下,另项目整体居中

align-items: end 再未设置换行的情况下,另项目整体位居下
align-items: start 再未设置换行的情况下,另项目整体位居上(默认)
flex-wrap:wrap flex弹性盒子换行
注意:若要在交叉轴上操作需要换行 flex-wrap:wrap
下方图片,项目竖向排列后,align-content 的各项属性值才会生效

position 定位
相对定位 position:relative
相对于元素原位置的左上角定位
会占据原来的空间,不脱离文档流
只有定位可以使用的属性:top,left,right,bottom
如果没有top,left,right,bottom是看不出来定位的
绝对定位 position:absolute
让出原来的空间,脱离文档流
如果没有top,left,right,bottom,被定位的元素后面的元素,会往上移动
相对于页面的左上角定位的
相对于已经定位的父元素定位(子绝父相)(父相子绝)
固定定位 position:flexd
固定在原位置,滚动页面的时候元素不会随着页面滚动而移动
固定在窗口,调整位置也是调整元素在窗口上的位置
粘性定位 position:sticky
当页面滚动到设置粘性定位的元素时,元素会固定到设置的 窗口 位置,即使再往下滚动也不会移动
定位是有层级的,当定位的元素过多时,会让其中一个元素全部显示出来,这需要用到一个关键属性:
z-index: ; 这个属性的属性值是由数字构成
取值范围是 0 到无穷大
flex案例代码:
<!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>
.bigbox{
width: 800px;
height: 500px;
border: 10px solid #f00;
display: flex;
/* flex-wrap: wrap; */
/* 主轴:justify-content */
/* 交叉着:align-content */
/* justify-content: center; */
/* justify-content: flex-end; */
/* justify-content: flex-start; */
/* justify-content: space-around; */
/* justify-content: space-between; */
/* justify-content: space-evenly; */
/* align-content: center; */
/* align-content: flex-end; */
/* align-content: flex-start; */
/* align-content: space-around; */
/* align-content: space-between; */
/* align-content: space-evenly; */
/* align-items: center; */
/* align-items: end; */
/* align-items: start; */
}
.bigbox div{
width: 600px;
height:50px;
background-color: green;
color: #fff;
font-size: 30px;
}
</style>
</head>
<body>
<div class="bigbox">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</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>
body{
height: 3000px;
}
div{
width: 200px;
height: 200px;
font-size: 30px;
}
.one{
background-color: red;
}
.two{
background-color: green;
/*
相对定位 relative
相对元素原位置的左上角定位
会占据原来的空间
只有定位可以使用的属性:top,left,right,bottom
如果没有top,left,right,bottom是看不出来定位的
*/
/* position: relative; */
/* top: 30px; */
/* left: 30px; */
/*
绝对定位 absolute
让出原来的空间
如果没有top,left,right,bottom,被定位的元素后面的元素,会往上移动
相对于页面的左上角定位的
相对于已经定位的父元素定位(子绝父相)
*/
/* position: absolute; */
/* top: 0px; */
/* left: 0px; */
/*
固定定位
固定在原位置,滚动的时候元素不会随着页面滚动
固定在窗口,调整位置也是调整元素在窗口上的位置
*/
/* position: fixed; */
/* right: 0; */
/* bottom: 0; */
}
.three{
background-color: blue;
}
</style>
</head>
<body>
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</body>
</html>
本文作者:五季-子琛
本文链接:https://www.cnblogs.com/izichen/articles/17763744.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
本文链接:https://www.cnblogs.com/izichen/articles/17763744.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

浙公网安备 33010602011771号