flex 布局文字过长不换行

问题描述

当我使用 flex 布局做两栏布局的时候,左侧宽度固定,右侧宽度使用 flex: 1,文字溢出,如图

明显文字溢出了

代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body style="width: 1000px;">
  <div style="display: flex;">
    <div style="width: 60px;">what:</div>
    <div style="flex: 1">
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
    </div>
  </div>
</body>
</html>

问题解析

右侧内容为没有空格的纯英文,浏览器会把它当成是一个单词,所以不换行并溢出

解决方案

  1. 给右侧加 css 使其无论如何都拆分单词
word-break: break-all;
  1. 不是没有空格的纯英文,就一点事都没有了(当然,这根本不是什么解决方案)
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body style="width: 1000px;">
  <div style="display: flex;">
    <div style="width: 60px;">what:</div>
    <div style="flex: 1">如果我是中文我是不是就万事大吉了 ???如果我是中文我是不是就万事大吉了 ???如果我是中文我是不是就万事大吉了 ???如果我是中文我是不是就万事大吉了 ???如果我是中文我是不是就万事大吉了 ???</div>
  </div>
</body>
</html>
中文

总结

使用 flex 做两栏布局时,在溢出的一栏使用如下 css 使文本内容强行在任意字符间断行就 ok 了

word-break: break-all;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,353评论 2 66
  • CSS样式规则 使用HTML时,需要遵从一定的规范。CSS亦如此,要想熟练地使用CSS对网页进行修饰,首先需要了解...
    wrootlflvl阅读 1,929评论 0 2
  • 课程目标: 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握C...
    桃花兰岛主阅读 561评论 0 1
  • # css: > 1. 学会使用CSS选择器 > 2. 熟记CSS样式和外观属性 > 3. 熟练掌握CSS各种选择...
    欣简书阅读 156评论 0 0
  • 盒子模型(CSS重点) 其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都是细节。要求这三部分,...
    xlystar阅读 1,874评论 0 1