flex:1只能是在水平的时候瓜分空间么
来源:3-2 项目作业
陈立天
2020-09-13 23:01:42
垂直瓜分不了剩余空间吗?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0,maximum-scale=1.0,minimum-scale=1">
<title>订单</title>
<script src="../lib/jquery.js"></script>
<!-- 适配方案 -->
<script type="text/javascript">
(function($) {
'use strict'
var docEl = document.documentElement;
// 解决dpr一边框像素问题
var dpr = window.devicePixelRatio || 1,
viewPortEl = document.querySelector('meta[name="viewport"]'),
maxWidth = 540,
minWidth = 320;
dpr = dpr >= 3 ? 3:(dpr >= 2 ? 2 :1);
docEl.setAttribute('data-dpr',dpr);
docEl.setAttribute('max-width', maxWidth);
docEl.setAttribute('min-width', minWidth);
var scale = 1/ dpr,
content = 'width=device-width, initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' +scale+',user-scalable=no';
if(viewPortEl){
viewPortEl.setAttribute('content',content);
}else{
viewPortEl = createElement('meta');
viewPortEl.setAttribute('name','viewport');
viewPortEl.setAttribute('content',content);
document.head.appendChild(viewPortEl);
}
// 设置Rem的单位
function setRemUnit(){
// 获取rem基准值
var viewWidth = docEl.clientWidth;
if(viewWidth && (viewWidth / dpr > maxWidth)) {
viewWidth = maxWidth * dpr;
}else if(viewWidth && (viewWidth / dpr < minWidth)){
viewWidth = minWidth * dpr;
}
var rem =viewWidth / 10;
docEl.style.fontSize= rem + 'px';
}
setRemUnit();
// 页面发生变化执行setRemUnit方法计算html根元素的font-size
window.addEventListener('resize',setRemUnit);
window.addEventListener('pageshow',setRemUnit);
})(jQuery);
</script>
<link rel="stylesheet" href="../lib/base.css">
<link rel="stylesheet" href="../commom/bottomBar/bottomBar.css">
<link rel="stylesheet" href="./my.css">
</head>
<body>
<div class="my">
<div class="header">
<img src="http://i.waimai.meituan.com/static/img/default-avatar.png" alt="头像" class="avatar">
<p class="nickname">美团小骑手</p>
</div>
<div class="content">
<ul class="items">
<li class="address">收货地址管理</li>
<li class="money">商家代金券</li>
</ul>
<ul class="items">
<li class="email">意见反馈</li>
<li class="question">常见问题</li>
</ul>
<p class="tel"></p>
<p class="time"></p>
</div>
</div>
<div class="bottom-bar">
<!-- js-loading -->
</div>
<script src="../lib/jquery.js"></script>
<script src="../commom/bottomBar/bottomBar.js"></script>
</body>
</html>.my{
display: flex;
flex-direction: column;
}
.header{
width: 100%;
height: 4.266667rem;
background-image: url(./img/header.png);
background-size: cover;
overflow: hidden;
}
.avatar{
width: 1.92rem;
height: 1.92rem;
border: 0.08rem solid rgba(255,255,255,0.4);
border-radius: 50%;
margin: 0 auto;
margin-top: 0.666667rem;
display: block;
}
.nickname{
color: #333;
font-size: 0.426667rem;
text-align: center;
margin-top: 0.4rem;
}
.content{
height: 13.52rem;
}1回答
同学你好,是的,flex:1;默认是在水平方向上平分剩余空间。同学的代码放在源码中显示的效果与同学截图不一致,无法准确的调试。如下:

这里给同学举一个例子来参考:如果想要在垂直方向中实现平分剩余空间的话,可以设置flex-direction:column;属性,转换主轴。

效果:

如果我的回答帮到了你,欢迎采纳,祝学习愉快~
相似问题