弹性盒子Flex Box滚动条原理,避免被撑开,永不失效

在HTML中,要实现区域内容的滚动,只需要设定好元素的宽度和高度,然后设置CSS属性overflow 为auto或者scroll:

在Flex box布局中,有时我们内容的宽度和高度是可变的,无法确定下来,这时候设置滚动条,可能会失效。只要记住几个关键要素,就可以解决这个问题。

1、清楚的知道当前元素的flex flow

如果要设置水平滚动条,那么父元素的flex-flow要设置为row,如果要设置纵向滚动条,那么父元素的flex-flow要设置为column。

2、flex设置为1

3、滚动方向的大小(宽度或者高度)设置为0,非滚动方向大小设置为100%或者一个你喜欢的宽度

这样设置,基本就可以愉快的滚动了。

有时嵌套层数太多,可能也会失效,这时候记住另外一个关键点:

4、设置父元素的大小

如果父元素大小不清晰,也会出现滚动条失效的问题,所以需要把父元素的大小设置明白。如果父元素也是可变大小的,那么要保证嵌套的flex-flow全部一直,然后宽度或者高度设置为0,这样就可以正常滚动。像我的这个例子:

5、如何横向和纵向全都跟随flex滚动,这个比较麻烦,一个方向用上述方法,另外一个方向用calc函数来计算吧。

我的github上有个例子:https://github.com/vularsoft/studio-ui

里面的html-demo.html文件是一个完全由flex box实现的布局,感兴趣的可以参考。

flex布局避免父盒子被撑开,滚轮失效问题相关推荐

  1. flex布局,弹性盒子,css使用及理解

    flex布局 以下内容主要分为四个部分: 常见概念 flex容器相关属性 flex元素相关属性 flex布局的应用 flex布局的兼容性处理 flex布局的相关概念 弹性盒模型 弹性盒模型(Flexi ...

  2. Flex布局常见父项属性(一)- flex-direction

    一.flex-direction用于设置主轴的方向 1.主轴和侧轴 在flex布局中分为主轴和侧轴两个方向,也可称为 行和列.x轴和y轴 其中默认主轴方向为x轴,水平向右 默认侧轴方向为y轴,水平向下 ...

  3. 关于今天在写 flex 布局,遇到 for 循环后的失效问题

    最开始我的 for 循环 和 flex 布局 写在 同一层,就出现了我想让他横着排列,结果却不生效 <view class="size" v-for="(item, ...

  4. 关于flex布局中,父元素高度auto,由一子元素撑开,另一子元素自适应高度问题

    .expressRecord-single-close {//父元素样式 width: 100%; height: auto; display: flex; justify-content: flex ...

  5. 利用flex布局在父元素和子元素宽高不明的情况下设置某一子元素剩余父元素的宽高

    如题,本人经常设置宽高都是这种,先通过js获取父元素的宽高,别的子元素的宽高.再通过js赋值 this.height = this.$refs.xxx.offsetHeight - this.$ref ...

  6. flex布局(弹性盒子一)

    目录 一.弹性盒子的开启 二.弹性盒子的不同样式 1.flex-direction:子项目的排列方向 2.flex-wrap:子项目多行 3. flex-flow 是flex-direction和fl ...

  7. flex布局(弹性盒子二)

    在上一篇博客中说到了弹性盒子的开启和弹性盒子的部分属性,这篇文章继续说弹性盒子的部分属性: 目录 弹性盒子的属性及属性值 1.justify-content  水平对齐 2.align-items:垂 ...

  8. 学习记录 flex布局(弹性盒子)flex-direction

    基于学习的软件: VSCodeUserSetup-x64-1.52.1.exe Flex翻译为"弹性",通过给元素设置display属性,属性值为flex或者inline-flex ...

  9. flex布局下,盒子被挤压时如何解决

    flex-shrink flex-shrink 属性指定了 flex 元素的收缩规则,默认值是1.在flex 元素的默认宽度之和大于容器的宽度时候,元素会发生收缩,其收缩的大小的依据是 flex-sh ...

最新文章

  1. ASP.NET Razor – C# 逻辑条件简介
  2. 容器必须设置宽度吗_消防泵必须设置自动巡检柜吗
  3. 微软正式发布Azure Storage上的静态网站
  4. 压力测试与提升服务器能力的几个方法
  5. 先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)
  6. Linux系统——架构浅析
  7. TurboIM专业集成即时通讯获新宠
  8. jquery each函数 break和continue功能
  9. P2820 局域网(最小生成树)
  10. 数据结构之第一章一些概念
  11. JDBC插入百万数据,不到5秒!
  12. 「leetcode」C++题解:四数之和 / 4Sum 三数之和的延伸,建议使用双指针法
  13. 区块链学堂——公有链、私有链、联盟链、侧链、互联链
  14. app测试用mysql数据库,数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试...
  15. Web端轻松实现音视频聊天通话
  16. ipa下载安装神器?苹果软件这么容易就被搞定了
  17. [openwrt] ubus实现进程间通信举例
  18. android debug SIGABRT (signal SIGABRT)
  19. 写给大一充实,大二不顺,大三迷茫的同学
  20. 学习Cocos的第二天-序列帧动画

热门文章

  1. html ckplayer.swf,让KindEditor支持MP4视频(使用ckplayer播放器)
  2. 2022年最赚钱地推项目-WiFi贴项目(月入10个W)
  3. 访问学者美国访学必须知道十大注意事项
  4. 常用linux 命令 -网络相关
  5. 基于MIission planner的VTOL垂直起降固定翼航线设计方法
  6. 对英国房屋价格建模并预测 ---《量化金融R语言初级教程》
  7. iOS 判断手机型号及系统版本(最新)持续更新
  8. HTML-HTML协议简单解析
  9. Linux系统目录简单说明
  10. 鲲鹏聚数,华为宣布联合高校发起GaussDB金种子发展计划