弹性盒

设置在容器上(父元素上)

(1)display:flex; 父元素设置成弹性盒。
规定子项目在父元素主轴方向一行显示,不会换行。侧轴方向会默认拉伸。

(2)设置主轴方向 flex-direction
属性值: row 默认为水平向右
column 垂直向下
row-reverse 水平向左
column-reverse垂直向上

(3)flex-wrap 伸缩换行
属性值:nowrap默认不换行
wrap换行

(4)flex-flow:flex-direction||flex-wrap; 伸缩流主轴方向及换行

(5)设置子项目在容器主轴方向的对齐方式
justify-content 属性值:
flex-start 默认在主轴方向起点位置对齐
flex-end 在主轴方向终点位置对齐
center 中间
space-between 将空白区域平分在子项目之间
space-around 将空白区域环绕在子项目两边

(6)设置子项目在其所在行的侧轴对齐方式 align-items(单行)
属性值: stretch 默认拉伸
flex-start 子项目在其所在行的起始位置摆放
flex-end 子项目在其所在行的结束位置摆放
center 中间
baseline 子项目在其所在行以基线对齐

设置在子项目上

(1) flex:number; 设置子项目在父元素主轴方向的比份
(2) 设置单个子项目在其所在行的侧轴对齐方式align-self(元素自己)
值参考align-self的属性值

案例

index.css
html,body{width: 100%;height: 100%;}
.box{
	height: 100%;
	display: flex;
	flex-direction: column;
}
.header{
	height: 88px;
	background: pink;
	display: flex;
	justify-content: center;
	align-items: center;
}
.header a{
	display: block;
	width: 141px;
	height: 58px;
	color: #fff;
	background: #ccc;
	line-height: 58px;
	text-align: center;
}
.header a:nth-child(1){
	border-radius: 24px 0 0 24px;
}
.header a:nth-child(2){
	border-radius: 0 24px 24px 0;
}
.nav{
	height: 70px;
	background: #58bc58;
}
.main{
	flex: 1;
	overflow-x: hidden;
	overflow-y: auto; 
}
.main ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between; 
}
.main ul li{
	width: 48%;
	height: 380px;
}
.main ul li img{
	width: 100%;
	height: 80%;
}
.main ul li a span{
	font-size: 24px;
	color: #000;
}

.footer{
	height: 80px;
	background: #789;
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" id="vp"/>
  <link rel="stylesheet" type="text/css" href="css/base.css">
  <link rel="stylesheet" type="text/css" href="css/index.css">
  <title>oui-app</title>
  <script type="text/javascript">
    // 把尺寸放大N倍(N是window.devicePixelRatio)
    var wd = document.documentElement.clientWidth*window.devicePixelRatio/10;
    //物理像素*设备像素比=真实像素
    document.getElementsByTagName("html")[0].style.fontSize = wd + "px";
    // 把屏幕的倍率缩小到N分之一(N是window.devicePixelRatio)
    var scale = 1/window.devicePixelRatio;
    var mstr = 'initial-scale='+ scale +', maximum-scale='+ scale +', minimum-scale='+ scale +', user-scalable=no';
    document.getElementById("vp").content = mstr;
  </script>
</head>
<body>
  <div class="box">
    <header class="header">
      <a href="javascript:;">Kasami</a><a href="javascript:;">Katsuki</a>
    </header>
    <nav class="nav"></nav>
    <main class="main">
      <ul>
      	<li>
      		<a href="javascript:;">
      			<img src="img/katsuki.jpg">
      			<span>katsuki desu</span>
      		</a>
      	</li>
      	<li>
      		<a href="javascript:;">
      			<img src="img/katsuki.jpg">
      			<span>katsuki desu</span>
      		</a>
      	</li>
      </ul>
    </main>
    <footer class="footer"></footer>
  </div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值