Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >当视图调整大小时,如何强制嵌套的flexbox元素收缩和显示滚动条?

当视图调整大小时,如何强制嵌套的flexbox元素收缩和显示滚动条?
EN

Stack Overflow用户
提问于 2015-08-06 15:18:18
回答 1查看 6.8K关注 0票数 9

我正在使用flexbox构建一个布局,而且总体上相当简单。视图有三个部分:顶部有一个导航条,左边有一个侧边栏,还有一个内容区域可以填充剩余的空间。导航条有固定的高度,侧边栏有固定的宽度。

此外,侧边栏和内容区域应该单独滚动。如果边栏中的内容溢出,它应该创建一个特定于侧栏的滚动条。内容视图也是如此。重要的是,这意味着整个视图绝不能滚动:它应该保持静态(只有元素应该滚动)。

使用柔性盒构建此布局非常简单:

代码语言:javascript
代码运行次数:0
复制
html,
body {
  height: 100%;
  width: 100%;
}

body {
  margin: 0;
}

#root {
  display: flex;
  height: 100%;
}

#frame {
  display: flex;
  flex: 1;
  flex-direction: column;
}

#navigation-bar {
  background-color: #bab;
  display: flex;
  height: 70px;
  overflow: hidden;
}

#main {
  display: flex;
  flex: 1;
}

#left-bar {
  background-color: #aaa;
  overflow: auto;
  width: 250px;
}

#content {
  background-color: #ccc;
  flex: 1;
}
代码语言:javascript
代码运行次数:0
复制
<div id="root">
  <div id="frame">
    <div id="navigation-bar">
      <h1>Website Name</h1>
    </div>
    <div id="main">
      <div id="left-bar">
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
      </div>
      <div id="content">
      </div>
    </div>
  </div>
</div>

但是,请注意,侧栏不单独滚动。相反,整个视口展开并滚动。有趣的是,我想要实现的东西在没有嵌套的情况下正常工作--如果我删除导航条,侧边栏就会独立滚动。

如何防止柔性盒本身拉伸以包含其内容,以便显示特定于元素的滚动条,而不是视图的滚动条?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-06 16:00:43

添加以下内容:

代码语言:javascript
代码运行次数:0
复制
#main {
  min-height: 0;
  flex: 1 1 0;
}

代码语言:javascript
代码运行次数:0
复制
html,
body {
  height: 100%;
  width: 100%;
}
body {
  margin: 0;
}
#root {
  display: flex;
  height: 100%;
}
#frame {
  display: flex;
  flex: 1;
  flex-direction: column;
}
#navigation-bar {
  background-color: #bab;
  display: flex;
  height: 70px;
  overflow: hidden;
}
#main {
  display: flex;
  flex: 1 1 0;
  min-height: 0;
}
#left-bar {
  background-color: #aaa;
  overflow: auto;
  width: 250px;
}
#content {
  background-color: #ccc;
  flex: 1;
}
代码语言:javascript
代码运行次数:0
复制
<div id="root">
  <div id="frame">
    <div id="navigation-bar">
      <h1>Website Name</h1>
    </div>
    <div id="main">
      <div id="left-bar">
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
        <h1>Some content</h1>
      </div>
      <div id="content"></div>
    </div>
  </div>
</div>

您需要min-height: 0,因为正如在我怎样才能得到FF,33.x,Flexbox在FF中的行为,34.x?中解释的那样,Flexbox模块更改了min-height的初始值。

4.5 Flex项的隐含最小大小 为了为挠曲物品提供更合理的默认最小大小,该规范引入了一个新的自动值,作为CSS2.1中定义的最小宽度最小高度属性的初始值。

我还添加了flex: 1 1 0,因为flex: 1变成了flex: 1 1 0%,但是在列布局中,0%在Chrome上是个缺陷。但是0运行得很好。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31867316

复制
相关文章
在 SwiftUI 中用 zIndex 调整视图显示顺序
本文将对 SwiftUI 的 zIndex 修饰符做以介绍,包括:使用方法、zIndex 的作用域、通过 zIndex 避免动画异常、为什么 zIndex 需要设置稳定的值以及在多种布局容器内使用 zIndex 等内容。
东坡肘子
2022/07/28
1.8K0
在 SwiftUI 中用 zIndex 调整视图显示顺序
CSS 中你需要知道 auto 的一切!
在CSS中,我们有auto值,它可以用于像margin,position,height,width等属性。在本文中,会先解释auto的工作方式以及如何最大程度地利用auto的技术细节,当然,会配合一些用例和示例。
前端小智@大迁世界
2020/05/12
5.5K0
CSS 中你需要知道 auto 的一切!
嵌套的 HTML 元素
<!DOCTYPE html> <html> <body> <p>这是第一个段落。</p> </body> </html>
用户8442333
2021/08/21
2K0
OpenCV中如何使用滚动条动态调整参数
OpenCV中有很多函数在图像处理时候都有一些参数可以有多个选择,这个时候开发者如果像快速试错,找到最佳的参数组合或者参数类型的时候。OpenCV中通过HighGUI的滚动条提供这样一种方便的调试方法,只是OpenCV官方教程里面滚动条的代码实现比较简单,甚至有些粗糙。本文讲会在官方教程的基础上进一步改进,获取的一个更加通用的版本代码。
OpenCV学堂
2020/08/07
2.2K0
OpenCV中如何使用滚动条动态调整参数
圆形收缩显示图像效果
<!doctype html> <html> <head> <style> div{width:300px;height:300px;border-radius:50%;overflow:hidden;position:relative;} div img{width:100%;height:100%;} div span{position:absolute;left:0;top:0;width:100%;height:100%; border-color:black; border-style:sol
用户1730674
2018/05/02
1.5K0
圆形收缩显示图像效果
PyQt5 技术篇-scrollArea不显示滚动条解决方法。Qt Designer不显示滚动条。滚动条的显示和隐藏。
首先给大家展示一下,必显示滚动条的方法。 PyQt5设置方法: self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
小蓝枣
2020/09/24
4.6K0
PyQt5 技术篇-scrollArea不显示滚动条解决方法。Qt Designer不显示滚动条。滚动条的显示和隐藏。
SwiftUI:视图的显示和隐藏动画
SwiftUI最强大的功能之一是能够自定义视图的显示和隐藏方式。以前,您已经了解了如何使用常规if条件有条件地包含视图,这意味着当条件更改时,我们可以从视图层次结构中插入或移除视图。
韦弦zhy
2020/04/16
4.6K0
防御式CSS是什么?这几点属性重点防御!
很多时候,我们希望有一种方法可以避免某种CSS问题或行为的发生。我们知道,网页内容是动态的,网页上的东西可以改变,从而增加了出现CSS问题或奇怪行为的可能性。
前端小智@大迁世界
2022/06/15
4.4K0
防御式CSS是什么?这几点属性重点防御!
伸缩布局(CSS3)
CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用。
星辰_大海
2020/09/30
4.4K0
HTML的元素嵌套规则
  address、blockquote、center、dir、div、dl、dt、dd、fieldset、form、h1~h6、hr、isindex、menu、noframes、noscript、ol、p、pre、table、ul
山河木马
2019/03/05
2.6K0
【React】【CSS】【案例】:Flex 弹性盒模型
Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。
WEBJ2EE
2020/04/24
2.8K0
【React】【CSS】【案例】:Flex 弹性盒模型
基础篇章:React Native 之 View 和 Text 的讲解
(友情提示:RN学习,从最基础的开始,大家不要嫌弃太基础,会的同学请自行略过,希望不要耽误已经会的同学的宝贵时间) 从今天开始我们进入基础组件也就是一些简单控件的学习,之前写的文章貌似太正式了,我正在考虑怎么样才能写的有意思,想想挺难的,算了,写一步算一步吧。今天我们就从最简答的View和Text控件讲起。 View View其实就是UI最基础的组件,跟我们android中的View不同,它更像我们android中的LinearLayout,RN中的View是一个支持Flexbox布局、样式、一些触摸处理和
非著名程序员
2018/02/09
2.6K0
基础篇章:React Native 之 View 和 Text 的讲解
Flexbox 练习和总结
练习地址: http://flexboxfroggy.com/ Welcome to Flexbox Froggy, a game where you help Froggy and friends by writing CSS code! Guide this frog to the lilypad on the right by using the justify-content property, which aligns items horizontally and accepts the foll
SmileSmith
2018/04/16
1.3K0
JQuery 隐藏和显示html元素
$(function(){ $("#bubmitBtn").click(function(){ //首先需要把提示标签全部隐藏掉 $("#nameInvalid").hide(); $("#emailInvalid").hide(); $("#pwdInvalid1").hide(); $("#pwdInvalid2").hide(); //检查用户名: 长度为6到12位, 只能输入数字和英文和下划线 //alert("--"); var $nameEle = $("#UcenterMember_account"); var reg = /^\w{6,12}$/; if(!reg.test($nameEle.val())) { $("#nameInvalid").text(" *用户名长度为6到12位, 只能输入数字和英文和下划线"); $("#nameInvalid").show(); //alert("用户名长度为6到12位, 只能输入数字和英文和下划线"); $nameEle[0].focus(); return false; } //邮箱格式必须正确, 可以不输入 var $emailEle = $("#UcenterMember_email"); reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if($emailEle.val()!="" && !reg.test($emailEle.val())) { $emailEle[0].focus(); $("#emailInvalid").text(" *邮箱格式不正确!"); $("#emailInvalid").show(); //alert("邮箱格式不正确!"); return false; } //检查密码: 长度为6位, 只能输入数字和英文 var $passwordEle = $("#UcenterMember_password1"); reg = /^[a-zA-Z0-9]{6,15}$/; if(!reg.test($passwordEle.val())) { $("#pwdInvalid1").text(" *密码的最低长度为6位, 只能输入数字和英文"); $("#pwdInvalid1").show(); //alert("密码的长度为6位, 只能输入数字和英文"); $passwordEle[0].focus(); return false; } //确认密码必须与密码相同 var $password2Ele= $("#UcenterMember_password2"); if($password2Ele.val()!=$passwordEle.val()) { $password2Ele[0].focus(); $("#pwdInvalid2").text(" *确认密码必须与密码相同"); $("#pwdInvalid2").show(); //alert("确认密码必须与密码相同"); } return true; }); });
wust小吴
2019/07/05
9.3K0
开源UI界面布局框架MyLayout1.9发布
MyLayout是一套功能全面的iOS开源UI界面布局框架。它囊括了前端所有流行的界面布局技术和解决方案,同时具有如下七大特点:
欧阳大哥2013
2019/12/02
1.8K0
移动端适配必须掌握的基本概念和适配方案
随着技术的发展,移动设备越来越流行,并且不同设备间屏幕尺寸和屏幕像素的差异,移动端开发面临着多分辨率适配的问题。
用户6167509
2020/07/23
1K0
调整屏幕显示亮度
使用SeekBar控件来控制 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_pa
听着music睡
2018/05/18
9100
【前端】移动端Web开发学习笔记【2】 & flex布局
使用媒体查询来适应不同的固定宽度,只会从一组css切换到另一组css, 没有平滑渐变。当没有命中媒体查询时,变现就变得不可控(滚动,换行)。 所以需要百分比布局。
zhaokang555
2023/10/17
2160
【前端】移动端Web开发学习笔记【2】 & flex布局
点击加载更多

相似问题

当窗口调整大小时,如何使div不收缩?

13

在Chrome中调整flexbox大小时避免滚动条?

10

Flexbox元素在调整窗口大小时重叠

23

CSS Flexbox:沿交叉轴收缩并显示滚动条

30

当窗口调整大小时,画布拒绝展开或收缩。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文