您现在的位置是:网站首页> 编程资料编程资料
详解flex布局中保持内容不超出容器的解决办法详解flex布局的元素如何分配容器的剩余空间flex布局被子元素撑开如何保持内容不超出容器的方法css使用flexbox布局容器内多元素水平居中
                    
                
                2021-09-03
                933人已围观
            
简介 这篇文章主要介绍了详解flex布局中保持内容不超出容器的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在移动端,flex 布局很好用,它能够根据设备宽度来自动调整容器的宽度,用起来很方便,已经越来越离不开它,但是最近在做项目的时候发现一个问题。
就是在一个设置了 flex:1 的容器中,如果文字很长,这时候文字就会超出容器,而不是呆在设置好的动态剩余的空间中。由于实际项目的比较复杂,不好拿出来说,这里就把问题简化描述如下:
大致是有一个main容器是flex布局,左边一个logo固定宽高,右边content动态宽度。
a name
a info
This is notice content.
 .main { display: flex; } .logo { width: 100px; height: 100px; margin: 10px; } .content { flex: 1; } .content > * { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notice可能会非常长,一些设备下需要隐藏显示,即不换行,并留下省略符…作标记。
这里会发现text-overflow: ellipsis不生效,省略符根本没有出现。而且因为设置了 nowrap 会发现文字会将 content 撑开,导致内容超出了屏幕。所以必须要解决这个问题。
尝试取消父元素.content的flex: 1,无效。
 尝试取消.main容器的display: flex,省略号出现。
因此猜测是flex布局的问题,进一步猜测省略符需要对父元素限定宽度。
尝试对父元素.content设置width: 100%无效,但是设置width: 0可行。即:
 .content { flex: 1; width: 0; } 如果不设置宽度,.content可以被子节点无限撑开;因此.notice总有足够的宽度在一行内显示所有文本,也就不能触发截断省略的效果。测试还有一种方法可以达到效果:
 .content { flex: 1; overflow: hidden; } 上面的二种方法都可以达到我们需要的效果,即给 content 设置了 flex 为 1 的时候,它会动态的获得父容器的剩余宽度,且不会被自己的子元素把内容撑开。
经过测试,以下的方法是无效的:
给html, body设置max-width,元素似乎能强行撑开页宽;
 给body设置overflow,页宽不能被撑开了,但元素宽度还在,即元素本身还是溢出;
 给html, body同时设置max-width和overflow,页宽限定在max-width内,元素本身还是溢出;
 给.main容器设置overflow: hidden,同理.main是不溢出了,.notice本身还是溢出;
 给.notice元素设置width或max-width,虽然宽度受限,但在特定宽度下省略符…显示不全,有时只显示两个点..
到此这篇关于详解flex布局中保持内容不超出容器的解决办法的文章就介绍到这了,更多相关flex保持内容不超出容器内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- css3实现背景模糊的三种方式(小结)CSS设置背景模糊的实现方法CSS设置背景图片模糊内容不模糊的解决方法
 - CSS盒子隐藏/显示后再最上层的实现代码CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
 - css中转换为行内样式的解决方案(css-inline)css之display属性之inline-block布局实现详解详解css中inline-block的最小宽度值详解CSS 去掉inline-block元素间隙的几种方法 css几种解决inline-block间隙的方案(整理)详解CSS中的display:flex||inline-flex属性css解决display:inline-block;产生的缝隙(间隙)的方法css display inline block 兼容性问题写法
 - CSS实现波动水球效果的示例代码CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
 - css使用@media响应式适配各种屏幕的方法示例详解使用CSS3的@media来编写响应式的页面 css3的@media属性实现页面响应式布局示例代码
 - CSS设置div背景图的实现代码使用CSS cross-fade()实现背景图像半透明效果的示例代码完美解决webpack打包css背景图片路径问题CSS3为背景图设置遮罩并解决遮罩样式继承问题CSS背景图片设置的6个有趣的技巧CSS3 实现响应鼠标移动背景图片漂移效果的用户介绍卡片源码使用css写带纹理渐变背景图的示例代码
 - CSS将img图片填满父容器div自适应容器大小的实现方法CSS实现宽高等比自适应容器的方法css实现图片自适应容器的示例代码css实现图片自适应容器的几种方式(小结)
 - 一文掌握CSS 属性display:flow-root声明css之display属性之inline-block布局实现详解CSS中display flex整理(布局利器) 浅析css中使用border属性与display属性的方法CSS3中的display:grid,网格布局介绍
 - CSS实现3D书本效果的示例代码纯CSS3实现3D旋转书本效果基于HTML5/CSS3实现的书本翻页3D动画特效源码 鼠标滑过书本自动翻页
 - 修复一个因为scrollbar占据空间导致的bug问题CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解纯css修改浏览器scrollbar滚动条样式示例CSS教程:scrollbar的属性知识及样式分类介绍
 

                                
                                                        
                                
                                                        
                                
                                                        
    