用flex布局怎样做上下固定的效果?
Admin 2021-10-16 群英技术资讯 4025 次浏览
我们在浏览网站的时候,会看到一些页面的布局方式是上下固定中间滑动的效果,那么这个效果是怎样实现的呢?对此,这篇文章给大家分享用flex布局怎样实现上下固定的页面布局方式,实现效果及代码如下:

例如这样的一个页面,希望有个头图,有个底部的底栏,中部内容区域可滑动。
简单介绍一下如何实现
固定头部和尾部,中间部分可滑动,使用flex布局
1.设置html,body高度为100%
2.设置最外层div的布局方式为弹性布局display:flex;
3.设置最外层div的主轴方向为flex-direction: column;主轴为垂直方向,起点在上沿
row(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿。
4.设置最外层div的高度为100%
5.正常写头部样式
6.正常写尾部样式
7.中间样式为flex: 1;overflow: hidden或者overflow:auto;-webkit-overflow-scrolling: touch后者在ios手机中滑动会有问题,建议使用插件
html部分:
<div class="main-warp">
<div class="header">
<img src="imgurl" class="header-img" alt>
</div>
<div class="content">
<div class="content-scroll">
<div class="shop-box">
<img src="imgurl" alt>
</div>
<div class="shop-box">
<img src="imgurl" alt >
</div>
<div class="shop-box">
<img src="imgurl" alt >
</div>
<div class="shop-box">
<img src="imgurl" alt >
</div>
</div>
</div>
<div class="footer"></div>
</div>
js部分:
<script>
import BScroll from 'better-scroll'
export default {
data () {
return {
}
},
components: {
},
methods: {
},
computed: {
},
mounted () {
this.$nextTick(function () {
/* eslint-disable no-new */
let pageBottom = document.querySelector('.content')
new BScroll(pageBottom, { click: true })
})
},
created () {
}
}
</script>
样式部分:
<style lang="less" rel="stylesheet/less" type="text/less">
@r: 100;
// 固定头部和尾部,中间部分可滑动,使用flex布局
// html,
body {
background: url("//storage.jd.com/1901/04nianhuojie/02lingquanbg_02.png")
repeat-y;
background-size: 100%;
height: 100%;
}
.main-warp {
max-width: 750px;
min-height: 100%;
margin: 0 auto;
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
box-sizing: border-box;
.header {
height: 500rem / @r;
.header-img {
height: 500rem / @r;
}
}
.content {
flex: 1;
width: 100%;
overflow: hidden;
// overflow: auto;
// -webkit-overflow-scrolling: touch;
.shop-box {
margin: 50rem / @r 0;
img {
width: 106rem / @r;
}
}
}
.footer {
background: url("//storage.jd.com/1901/04nianhuojie/fixbtnbg_02.png") repeat;
background-size: 12rem / @r 11rem / @r;
height: 82rem / @r;
width: 100%;
bottom: 0;
color: #ffdeb8;
font-size: 34rem / @r;
line-height: 82rem / @r;
text-align: center;
font-weight: bolder;
max-width: 750px;
}
}
</style>
说明一下,在移动端,如果直接使用
overflow: auto;
-webkit-overflow-scrolling: touch;
的话 ,在ios上,如果手指滑动超出了盒子的区域,那么很容易再次滑动的时候,导致区域不能滑动的问题,那样子就好像是手指没有点到那个盒子一样,所以这里使用了BScroll插件,使用IScroll也是一样的。

他的最终效果就是把content的直接子元素加了transition效果。
在此记录该布局方式
注:注意 这种布局方式在ios9.3及其以下版本不兼容,flex布局在需要兼容低版本ios时还是需要慎用的哦
以上就是关于flex布局实现上下固定中间滑动布局方式的介绍啦,本文代码有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习flex布局的使用有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于css的相关知识,其中主要介绍了关于设置元素高度和宽度属性的相关问题,height和width属性用于设置元素的高度和宽度,height和width属性不包括内边距、边框或外边距。下面一起来看一下,希望对大家有帮助。
在css中,可以利用“margin-top”属性把表格往下移,该属性用于设置元素的上外边距,只需要给表格元素添加“margin-top:向下移动距离值;”样式,即可增加表格的上外边距,进而使表格元素向下移动。
项目过程中,开始使用了js的requestAnimationFrame方法实现进度条,但是在数据超级多的时候非常影响性能,如此改用css去实现,优化。 先贴代码: <!DOCTYPE html> <html lang=
这篇文章主要介绍了HTML行内元素与块级元素有哪些及区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
绝对定位(absolute)意思是:将被赋予此定位方法的对象从文档流中拖出,使用left,right,top, bottom等属性相对于其最接近的一个最有定位设置的父级对象进行绝对定位,如果对象的父级没
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008