首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firefox中溢出的嵌套flex容器

Firefox中溢出的嵌套flex容器
EN

Stack Overflow用户
提问于 2015-08-17 06:42:43
回答 2查看 1.6K关注 0票数 2

我正在开发一个使用UI-路由器和许多嵌套视图的web应用程序。我们的主要视图使用Flex占据屏幕上的所有可用空间(包括高度和宽度)。我这么说是为了找出为什么我们有这么多嵌套的flex容器。

TL;DR;

JSFiddle显示了这个问题

在IE和Chrome上,下面的JSFiddle就像你所期望的那样工作。所有外部div都适合于页面,而最内部的div有一个滚动条来显示溢出的内容。

在Firefox上,滚动条位于主体上,或者是外部div中的一个,容器根本无法工作。

我需要所有浏览器的一致行为,有什么想法吗?

更长的解释:

我们的应用程序在Chrome和IE10+上运行得很好,但在火狐上,flex容器似乎也不像我们所需要的那样工作。我们的意图是让最低的弹性容器有溢出自动,其余的只是适合屏幕没有滚动条。

我试图确保我们使用的是所有跨浏览器的flex前缀,所以当我们声明一个flex容器(使用更少的混合器)时,结果如下:

代码语言:javascript
运行
AI代码解释
复制
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
width: 100%; /* For old syntax, otherwise collapses. */

当我们向flex声明某些内容时,这是输出:

代码语言:javascript
运行
AI代码解释
复制
-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-flex: 1; /* OLD - Firefox 19- */
-webkit-flex: 1; /* Chrome */
-ms-flex: 1; /* IE 10 */
flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */    

这使得许多嵌套的flex容器在IE和Chrome上运行得很漂亮,但是Firefox做的事情很奇怪。在IE/Chrome上,最内部的容器包含溢出,并在需要的地方放置滚动条,而firefox要么根本不包含它,要么将滚动条放在最外层的容器上。看上去火狐一点也不尊重柔韧。

我需要所有浏览器的一致行为,有什么想法吗?这需要一个纯粹的css解决方案,因为我对这个项目太深入了,无法改变HTML结构。

JSFiddle显示了这个问题

更新

我尝试了下面的实现,但不幸的是,它没有起作用。我相信不同之处在于,在我的顶级容器中有一个侧边栏,这使得示例的其余部分略有不同。我很抱歉最初没有包括这个细节,因为它显然很重要。

这里有两个额外的花招,我认为更好地表达了这些场景。

使用flex: 1;

用于flex 1的JSFiddle

您会注意到,这在IE11和Chrome中非常有用,但是可以在火狐上使用。

使用flex: auto;

JS Fiddle用于flex汽车

这在任何事情上都行不通..。

EN

回答 2

Stack Overflow用户

发布于 2015-08-17 06:59:40

把你所有的flex:1都换成flex:auto,我很确定这就是你想要的。

css:

代码语言:javascript
运行
AI代码解释
复制
html, body
{
    height: 100%;
    padding: 0;
    margin: 0;
}
.outer-container {
    box-sizing: border-box;
    border: 4px solid #00f;
    display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox; /* TWEENER - IE 10 */
    display: -webkit-flex; /* NEW - Chrome */
    display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
    width: 100%; /* For old syntax, otherwise collapses. */
    height: 100%;
}
.container {
    box-sizing: border-box;
    border: 4px solid #0ff;
    display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox; /* TWEENER - IE 10 */
    display: -webkit-flex; /* NEW - Chrome */
    display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
    width: 100%; /* For old syntax, otherwise collapses. */
    -webkit-box-flex: auto; /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: auto; /* OLD - Firefox 19- */
    -webkit-flex: auto; /* Chrome */
    -ms-flex: auto; /* IE 10 */
    flex: auto; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
.inner-container {
    box-sizing: border-box;
    border: 4px solid #f0f;
    -webkit-box-flex: auto; /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: auto; /* OLD - Firefox 19- */
    -webkit-flex: auto; /* Chrome */
    -ms-flex: auto; /* IE 10 */
    flex: auto; /* NEW, Spec - Opera 12.1, Firefox 20+ */    
    overflow-y: hidden;
    overflow-x: auto;
}
.overflow {
    box-sizing: border-box;
    border: 4px solid #f00;
    height: 100px;
    width: 900px;
}

小提琴:https://jsfiddle.net/rL0r8nez/5/

票数 0
EN

Stack Overflow用户

发布于 2017-03-01 10:33:26

如果使用.container {max-width: 100%;}在示例中设置了flex: 1;,那么就可以在火狐中获得内部滚动条。

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

https://stackoverflow.com/questions/32053271

复制
相关文章
silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight
{x:Null}:用于设置某属性值为Null,比如<Rectangle Fill="{x:Null}" />,其实就相当于<Rectangle />,个人感觉这个纯属MS的多余设计 另外要注意一个问题: <Rectangle x:Name="rect" Stroke="Black" Width="90" Height="90" MouseLeftButtonUp="Rectangle_MouseLeftButtonUp" StrokeThickness="10" /> 运行时,如果点击矩形中间区域,会发现
菩提树下的杨过
2018/01/23
7130
【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
在 MIDI 中 , 踏板控制信号是 控制信号 中的 cc64 号控制器 , 表示踏板控制器 ;
韩曙亮
2023/03/30
9060
【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
第3章 排列清单控制标记
排列清单控制标记可以创建一般的列表、编号列表或加着重号列表,以及定义列表。还可以在一种列表中嵌套另外一种列表。对于概况因特网上的内容,列表特别重要。
py3study
2020/01/14
2870
silverlight:如何在后端代码中控制Behaviors
今天遇到一个需求,要求能对可拖动的对象提供二种模式:允许拖动、禁止拖动。 之前的拖动为了省事,直接用了:Blend自带的MouseDragElementBehavior,于是就需要在cs代码中控制这个东东了。 折腾了一下,还算简单: xaml代码 <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2
菩提树下的杨过
2018/01/24
5860
OpenCV基于标记控制的分水岭分割算法演示
图像分水岭分割是基于图像形态学的语义分割算法,常见的算法实现主要基于标记的分水岭分割方法,图示如下:
OpenCV学堂
2019/06/19
2.5K0
OpenCV基于标记控制的分水岭分割算法演示
Silverlight QQ
腾讯在MIX09上展示的Web版QQ 后来关了一阵 最近好像又打开了 有兴趣的可以试试
全栈程序员站长
2022/09/09
2.1K0
Silverlight中的帧
Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。 但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。 Silverlight的sdk文档中,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象的 maxframerate 参数进行配置。maxframerate 参数的默认值为 60。current
菩提树下的杨过
2018/01/23
1K0
Silverlight 中的 CoreCLR
Silverlight 2  包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR. Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。 CoreCLR 是 Silverlight 使用的虚拟机。它类似于为 .NET Framework 2.0 及更高版本提供强大功能的 CLR,也包含相似的类型加载和垃圾收集 (GC) 系统。 CoreCLR
张善友
2018/01/31
5160
丰富的silverlight控件
demo地址: http://demo.componentone.com/Silverlight/ControlExplorer/ 另外一个 微软示例站点. http://www.codeplex
用户1172164
2018/01/16
8380
丰富的silverlight控件
silverlight的独立存储
这个东西有点象Flash的Cookie,可以用来在客户端存储一些数据,我在官方文档上读到这个功能的第一反应就是:用它来做IM的客户端聊天记录存储太棒了,呵呵 这里把官方文档上的示例精减整理了一下,贴在这里纪念 先引用 using System.IO.IsolatedStorage; using System.IO; 下面的代码展示了,如何在存储区创建目录/文件,以及如何写入文件,读取文件 1try { using (var store = Isolate
菩提树下的杨过
2018/01/24
9180
更新Silverlight ctp到Silverlight beta 1.0
下面是我更新Silverlight ctp到Silverlight beta 1.0的一个纪录,希望对各位同学有帮助。 1、卸载Silverlight ctp 和sdk以及VS template 2、
张善友
2018/01/31
7220
Silverlight初级教程-建立silverlight项目
Silverlight初级教程 建立silverlight项目 首先在这里说明下,我是一个flasher同时我也做Asp.net编程,在这里我会以开发flash的思路来介绍如何开发silverlight。 建立silverlight项目一般可以用两个工具建立。blend和VS 2008。这两个工具建立的项目是可以通用的。不管用那一个建立的都能用另一个完美的打开。 用blend建立项目 用blend建立项目时有4个选项。第一是建立WPF程序的,第二个是建立WPF控件库的,第三个是建立silverligh
用户1172164
2018/02/28
8810
silverlight:telerik RadControls for Silverlight 主题使用心得
默认情况下: telerik RadControls控件使用的是Office Black 主题,就算在App.xaml.cs里写上
全栈程序员站长
2022/09/15
4160
silverlight:telerik RadControls for Silverlight 主题使用心得
Silverlight概要
原文: http://silverlight.net/GetStarted/overview.aspx Silverlight 运行时 目前,Silverlight有两个运行时可以让用户体验到Silverlight内容 Silverlight 1.0 Silverlight 2.0 beta 1 两个运行时都支持丰富的媒体功能,并可以提供快速、低成本和高品质的音频和视频,支持主要浏览器 包括Firefox,Safari 和Internet Explorer ,支持windows和Mac操作系统。设计者(d
张善友
2018/01/31
9450
Silverlight Cairngorm
Cairngorm这个词做过flex开发的朋友应该不会陌生,Cairngorm是Flex开发中的一个MVC框架,由Adobe官方提供支持。现在Silverlight也有了Cairngorm这个框架的实现。 项目地址:http://www.codeplex.com/SilverlightCairngorm 演示地址:http://www.hanray.com/sites/SilverlightCairngormThreadSafe/SilverlightCairngormDemoTestPage.html 做
用户1172164
2018/03/01
6280
microsoft silverlight
Microsoft Silverlight是一个跨浏览器的、跨平台的 插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。Silverlight提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。Silverlight可以对运行在 Mac或 Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。
全栈程序员站长
2022/11/02
1.3K0
microsoft silverlight
SilverLight ColorTool
public class ColorTool     {         /// <summary>         /// 从ARGB转换         /// </summary>         /// <param name="color"></param>         /// <returns></returns>         public static SolidColorBrush FromArgb(string color)         {             int[]
MJ.Zhou
2022/05/07
3970
silverlight中用代码动态控制Storyboard(动画)属性的三种方法
先准备一个基本的xaml页面 1<navigation:Page 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008
菩提树下的杨过
2018/01/23
5440
TheFWA上的silverlight酷站
FWA全称Favourite Website Awards,是一个世界著名的互动多媒体网站收录平台,于2000年5月建立,目的是展示世界上最优秀、最前沿的网络媒体艺术设计作品。FWA一直被列为世界上最顶级、最具有精英意义的评价网络媒体交互艺术创作的权威机构,其收录的作品也不断成为备受追捧的创意科技标杆。  
用户1172164
2018/07/31
3590
TheFWA上的silverlight酷站
Silverlight CreateObjectEx 参考
做 Silverlight 开发难免要动态在页面中创建 Silverlight 控件, 需要用到 Silverlight.js 文件中的 CreateObject 或 CreateObjectEx 函数, 一下是 Silverlight.js 文件中的 CreateObjectEx 函数支持的所有参数及其描述, 仅供参考:
beginor
2020/08/10
4820

相似问题

Silverlight MediaElement云

21

WinForms .NET 2.0+的标记云控制

20

参考Silverlight 4控制来自Silverlight 3

15

Azure云存储中的Silverlight XAP

11

Silverlight 4:图表控制

49
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档