动态

详情 返回 返回

[CSS] flex佈局+white-space: nowrap寬度異常 - 动态 详情

在flex佈局中,定義一行三列並列的3個div,其中2個div寬度寫定,第3個div隨着父容器寬度由flex自適應。這是個很常見的佈局,平常使用沒有啥問題。

現在在第3個div中放置一段長的純文本(文本內容單行放置寬度大於第3個div的寬度),且設置white-space: nowrap,此時就會出現第3個div的寬度被文本撐開,變為單行文本的寬度,而不受flex佈局的約束。且由於第3個div的寬度過寬,3個並列子元素會溢出父容器。

下面的圖中中間灰色部分的div是”第3個div”。
image.png

要解決這個問題(讓第3個div的寬度受到flex佈局中父元素的約束,而不是被文本元素撐開),需要在第3個div上添加”min-width: 0”。
image.png

添加”min-width: 0”之後,未寫定寬度的第3個div的寬度會由父元素寬度減去第1個div和第2個div的寬度自適應得到。

如果佈局中有多層flex嵌套,出現了由white-space: nowrap產生的寬度異常,那麼需要將所有的不受flex佈局父元素約束的子元素(即沒有顯式的寫定寬度的”第3個div”)都加上min-width: 0;

完結。

同步更新到自己的語雀:
https://www.yuque.com/dirackeeko/blog/sn1ebuf611gxc6f1

user avatar zourongle 头像 jiavan 头像 huanjinliu 头像 asmallwhitecat 头像 wubomu 头像 tinygeeker 头像 howiecong 头像 jingzhexiaoyu 头像 guixudepubu 头像 lingleidejiandao 头像 huaihuaidedianti 头像 chenxiaoxi_619df8932f34a 头像
点赞 21 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.