在移动端,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保持内容不超出容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

html子布局不超出父布局,详解flex布局中保持内容不超出容器的解决办法相关推荐

  1. 在html5中flex布局详解,Flex布局详解(一)

    在讲解Flex布局之前,我们首先可以回顾一下我们平时在做行向布局或者纵向布局时候我们页面的布局主要用到哪些布局方法或者思路. 1.normal flow (正常流,也叫文档流)--内联元素从左往右排列 ...

  2. 移动开发—详解flex布局之携程网首页案例制作

    移动开发-详解flex布局之携程网首页案例制作 学习内容 一.flex的布局原理 二.flex布局父项常见的属性 三.flex布局子项常见的属性 四.携程网首页案例制作 一.flex的布局原理 总结f ...

  3. [转]详解Flex布局(语法+教程)

    Flex 布局教程:语法篇 作者: 阮一峰 原文:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 网页布局(layout)是 CSS ...

  4. 详解flex布局(flexbox)完整指南

    一.背景 Flexbox Layout(Flexible Box) 模块(截至2017 年 10 月的 W3C 候选推荐标准)旨在提供一种更有效的方式来布置.对齐和分配容器中项目之间的空间,即使它们的 ...

  5. flutter页面布局HTML,Flutter开发实战初级(2)页面布局详解

    初级根底系列 Flutter开发实战初级(1)ListView详解 Flutter开发实战初级(2)布局详解 项目实战系列 Flutter开发实战 高仿微信(1)主页 Flutter开发实战 高仿微信 ...

  6. flutter listview 滚动到底部_Flutter系列之Flex布局详解

    PS:长期坚持是一件很难的事. Flutter 是 Google 推出的跨平台 UI 框架,可以快速地在 Android 和 IOS 上构建高质量的应用程序,其主要特点是 Flutter 具有快速开发 ...

  7. Android UI详解之布局管理器(一)

    Android UI详解之布局管理器 一.布局管理器 ①顶级父类View ②子类GroupView ③AbsoluteLayout.FrameLayout.LinearLayout.GridLayou ...

  8. Android开发重点难点1:RelativeLayout(相对布局)详解

    前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出"重点难 ...

  9. android中帧布局效果,布局之FrameLayout(帧布局)详解

    New UI-布局之FrameLayout(帧布局)详解 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!本节引言:FrameLayout(帧布局)可以说是六大布局中最为简单的一 ...

最新文章

  1. abap选择屏幕上的button
  2. 是把计算机分析和恢复力实测,土木工程测试试题.docx
  3. Flash与数学:球体曲面 (2)
  4. easyui验证:validatebox
  5. vscode中如何创新建php文件,vscode如何创建代码模板
  6. numpy-ufunc函数
  7. CSDN 蒋涛对话英特尔中国区董事长王锐:我愿是当代的一个开发者
  8. 精确到门牌号的地图_IP地址精准查询工具:能精确到门牌号
  9. 冒泡排序C语言实现(源代码)
  10. GIT文档同步MinDoc - MinDoc模拟登陆
  11. javaFx(7)文本阅读器
  12. 大数据四大阵营之OLTP阵营(上)
  13. python tkinter滚动条不起作用_python – 水平滚动条在Tkinter中不起作用
  14. Hello hello world♥
  15. UPlayer播放器问题相关
  16. Bootstrap 组件:面板组件(panel)
  17. 高并发场景下秒杀系统的设计思路
  18. python爬虫学习(六)kfc门店地址
  19. [Demo示例]爬取豆瓣FM个人收藏歌曲“红心列表”
  20. 基于MSF框架下的kiwi模块制作黄金票据

热门文章

  1. short,int,long ,long long ,_int64类型的范围详解
  2. workspace-project-target关系与解耦工程结构总结
  3. 低照度监控前景广阔 企业展开激烈角逐
  4. 深入浅出javascript(二)函数和this对象
  5. centos6.5 搭建NFS 服务
  6. Alcatraz插件安装问题
  7. 报表设计器条形码支持类型
  8. QTP3种错误处理机制
  9. 你了解VLSM多少(1)
  10. Base64编解码(C++版)