【CSS】Flex 布局中 overflow 失效的问题探讨
背景
因开发需要,父级元素 div
有 flex: 1;
属性,需要子元素 p
的文字超出范围的以省略号显示,正常配置后发现 p
元素的内容将上级元素撑开,而未正确隐藏。
后查阅资料解决,记录备忘。
问题描述
简化代码如下
1 | <style> |
预期 p.content
元素内容超出的部分以省略号显示;实际文字未隐藏,而是将父级元素撑开,使父级元素宽度超过 100%。
解决方案
以上例为基础,列举可用方案如下:
- 父级
div.right
设置属性overflow: hidden;
; - 父级
div.right
设置属性min-width
为常量(非百分比),建议设为 0,推荐; - 父级
div.right
设置属性max-width
为常量(非百分比),不建议使用该方法,因为适配问题,难以计算合适的常量; - 父级
div.right
设置属性width
为常量(非百分比),建议设为 0;
问题解析
目前网上搜罗的资料没有合理的解释,仅提供了解决方案,而未说明该方法为什么可以解决此问题。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梧木栖凰!
评论