原文:
Flexbox and Truncated Text
译文:Flexbox 遇上换行文本
当你遇到这样的情况:在一个 flex 子元素中有一个单行文本,你不想让文本自动换行,用省略号断行(或者隐藏其余的部分)。但意想不到的是,布局截断了并强制整个 flex 父元素变宽。利用 flexbox 可以让布局变得更容易!
有一种标准的解决方案,只需要使用 non-flexbox 属性值就可以完成。
我们想要的效果是这样的
这个动画展示了一个变窄后的子元素。
你会遇到的问题是这样的
这个动画展示了没换行的文本阻止了变窄。
子元素的问题
让人不解的是如果文本直接在 flex 子元素内,就会很好:HTML 代码:
<divclass="flex-parent"> <divclass="flex-child">Textto truncatehere. </div> <divclass="flex-child">Otherstuff. </div></div>
CSS 代码:
/* 文本直接在子元素中,在这里换行 */.flex-child white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
当遇到子元素,就会出问题:
HTML 代码:
<divclass="flex-parent"> <divclass="flex-child"><h2 id="Textto-truncatehere">Textto truncatehere.</h2> </div> <divclass="flex-child">Otherstuff. </div></div>
CSS 代码:
/* 标题文本的时候,可以截断文本 */.flex-child > h2 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
解决方案:在 flex 子元素上设置 min-width: 0
或者把 min-width 改成其他具体数值。不这样的话包含其他文本元素的 flex 子元素就不会让这些文本元素的”隐含宽度”变窄了。
当我第一次碰到这样的情况的时候,我在 AJ Foster 那边找到了解决方法,他写道:
根据一项 规范草案 ,上面文本不应该当 flex 容器减小时,完全折叠。因为子标题已经有了 100% 的宽度, min-width: auto 会计算 flexbox 会使得容器比我想的要大。
我发现 Chrome、Opera 和 Firefox 都有这个特性。而 Safari 会收缩、截断,即使没有设置 min-width (可能是违背了规范)。
Demo
Codepen 上的 Demo 地址: http://codepen.io/chriscoyier/pen/zqedEr
- 生效的:文本框直接在 flex 子元素中;
- 无效的:文本框在 h2 内的 flex 子元素中;
- 生效的:文本框在 h2 ,但 flex 子元素设置了 min-width 。

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何设计菜单中的虚线分割效果?在设计菜单时,菜名和价格的左右对齐通常不难实现,但中间的虚线或点如何...

网页代码编辑器中的HTML元素分析许多在线代码编辑器允许用户输入HTML、CSS和JavaScript代码。最近,有人提出了一...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。