flex布局下,css设置文本不换行时,省略号不显示的解决办法

时间:2022-09-17 16:35:06

大致是有一个 main 容器是 flex 布局,左边一个 logo 固定宽高,右边 content 动态宽度。

<div class="main">
<img alt="" class="logo" src="pic.jpg">
<div class="content">
<h4 class="name">a name</h4>
<p class="info">a info</p>
<p class="notice">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>

.notice 会非常长,一些设备下需要隐藏显示,即不换行,并留下省略符 ... 作标记。

.main {
display: flex;
}
.logo {
width: 100px;
height: 100px;
margin: 10px;
}
.content {
flex: 1;
}
.content > * {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

这里会发现 text-overflow: ellipsis 不生效,省略符根本没有出现。

尝试取消父元素 .content 的 flex: 1 ,无效。

尝试取消 .main 容器的 display: flex ,省略号出现。

因此猜测是 flex 布局的问题,进一步猜测省略符需要对父元素限定宽度。

尝试对父元素 .content 设置 width: 100% 无效,设置 width: 0 可行。即:

.content {
flex: 1;
width: 0;
}

更新:

如果不设置宽度, .content 可以被子节点无限撑开;因此 .notice 总有足够的宽度在一行内显示所有文本,也就不能触发截断省略的效果。

测试还有一种方法可以达到效果:

  1. 给 .content 设置 overflow: hidden

以下方法无效:

  1. 给 html, body 设置 max-width ,元素似乎能强行撑开页宽;
  2. 给 body 设置 overflow ,页宽不能被撑开了,但元素宽度还在,即元素本身还是溢出;
  3. 给 html, body 同时设置 max-widthoverflow ,页宽限定在 max-width 内,元素本身还是溢出;
  4. 给 .main 容器设置 overflow: hidden ,同理 .main 是不溢出了, .notice 本身还是溢出;
  5. 给 .notice 元素设置 widthmax-width ,虽然宽度受限,但在特定宽度下省略符 ... 显示不全,有时只显示两个点 .. 。

以上仅在 chrome 58.0.3029.81 下测试,系统为 Ubuntu 16.04.2 LTS 。

本文基于flex布局下,css设置文本不换行时,省略号不显示的解决办法知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议发布,欢迎引用、转载或演绎,但是必须保留本文的署名BlackStorm以及本文链接http://www.cnblogs.com/BlackStorm/p/6793170.html,且未经许可不能用于商业目的。如有疑问或授权协商请与我联系

flex布局下,css设置文本不换行时,省略号不显示的解决办法的更多相关文章

  1. flex 布局下,css 设置文本不换行时,省略号不显示的解决办法

    大致是有一个 main 容器是 flex 布局,左边一个 logo 固定宽高,右边 content 动态宽度. <div class="main"> <img a ...

  2. virtualBox 虚拟机下nginx设置不缓存静态文件不起作用解决办法

    最近开发的时候,调整js时会一直使用缓存文件,无法显示改动!nginx配置静态文件add_header Cache-Control no-cache;也不起作用,很苦恼! nginx配置代码:even ...

  3. flex布局下el-table横向滚动条失效

    如下图,是一种常见的页面结构,我们可以有很多方法实现,inline-block,float,flex等等 但是,最近项目中遇到一个怪事,左边是侧边栏导航,右边是一个数据展示table,el-table ...

  4. eclipse&lowbar;neon 的Spket 目录下只有一个Task Tags&comma;没有其他的选项&comma;导致没有办法添加提示文件&excl; 添加sdk文件之后还是没有办法显示的解决办法

    问题解决办法: 将 spket-1.6.23的安装包里面的features  plugins 单独复制到D:\eclipse_neon\dropins 目录下,重启一下eclipse即可正常显示! 添 ...

  5. QT5&period;1在Windows下 出现QApplication&colon; No such file or directory 问题的解决办法

    QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法 分类: 编程语言学习 软件使用 QT编程学习2013-03-07 ...

  6. Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

    window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍. 解决办法:rlwrap ...

  7. div宽度设置width&colon;100&percnt;后再设置padding或margin超出父元素的解决办法

    div宽度设置width:100%后再设置padding或margin超出父元素的解决办法 一.总结 一句话总结:直接加上box-sizing:border-box;即可解决上述问题. 1.box-s ...

  8. 如何设置文本不换行省略号显示等CSS常用文本属性

    如何让多余的文本省略号显示首先要说几个属性的作用: whitespace:nowrap 中文行末不断行显示 overflow: 控制超出文本的显示方式:hidden 超出范围文本隐藏:scroll 始 ...

  9. 怎么从传统的盒子思想转为Flex 布局(css)

    前端进化很快,总是有新的技术出来,开始可能有些人用惯了盒子模型的思想 依赖 display属性 + position属性 + float属性.这三大件.它对于那些特殊布局非常不方便 我们就来看看Fle ...

随机推荐

  1. php-redis扩展安装

    1 phpredis 在php中访问redis需要安装 https://github.com/phpredis/phpredis 基本上安装上面的readme既可以完成安装,需要注意的是在编译安装的时 ...

  2. 值得 Web 开发人员收藏的16款 HTML5 工具

    HTML5 正在迅速改变创建和管理网站的方式.HTML5 在不同的领域让网页设计更强大的.快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5 开发各种网站和应用程序. ...

  3. ZendStudio 解决svn导出项目乱码问题

    从svn导出项目往往会出现乱码,可以右击项目,点击properties(或者选中项目alt+enter键进入)直接修改项目编码为utf-8,但是html文件还是乱码. 下面的方法可以解决: windo ...

  4. adpatch options&equals;hotpatch

    --no need to shutdown application and no need to enable maintenance mode adpatch options=hotpatch fi ...

  5. web相关

    1. html 和 htm 的区别 如果一个网站有index.html和index.htm 默认情况下优先访问.html htm是为了兼容之前dos系统的命名规范. 2. http1.0短连接 htt ...

  6. Centos6&period;4 为用户添加sudo功能

    sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...

  7. 解密-神秘的 RunLoop

    引言 一直以来RunLoop就是个神秘的领域,好多2.3年的开发者都不能准确的表述它的作用,说它神秘,其实RunLoop并没有大家想象中的那么神秘,那么不好理解,本文就带大家好好剖析一下”神秘的Run ...

  8. 路由器密码破解工具 Hydra 7&period;5

    之前只在 Browser 中保存了路由管理密码,无奈升级时管理的密码丢失了,又不想重新设置,所以尝试破解登录密码. 使用破解工具 Hydra 7.5. # hydra -l username -x : ...

  9. hdu 2768

    求最大留下的观众,观众之间存在不能同时满足的关系,就是矛盾关系, 矛盾关系建边,建边是双向的所以最大匹配要/2 还有一种建图的方法:把观众分成两个集合,一个是投留下猫的,一个是投留下狗的 每个集合间没 ...

  10. set -x &sol;set &plus;x&lpar;linux&rpar;

    Linux 脚本中生成日志 set -x Posted on 2012-07-25 09:44 紫冰龙 阅读(3946) 评论(0) 编辑 收藏 set -x 与 set +x 在liunx脚本中可用 ...