使用 flexbox 占用的文本比需要的多 space

Text occupying more space than needed using flexbox

我正在尝试在固定宽度容器中的多行文本旁边绘制一个正方形作为颜色图例。但是,我 运行 遇到这样一个问题,即即使文本和正方形应该适合容器,正方形也会被挤压成一个矩形,因为文本元素占据的水平 space 比它多应该。有没有一种方法可以(最好没有硬编码的幻数)确保 p 元素只采用显示文本所需的水平 space?

相关 MWE:

html:

<div class="div">
  <div class="square">
  </div>
  <p class="text">
    Lorumipsum  dolorsitamet
  </p>
</div>

css:

.div {
    width: 140px;
    display: flex;
    align-items: center;
    outline: 1px solid blue;
}

.square {
    width: 25px;
    height: 25px;
    background-color: red;
}

.text {
    margin-left: 2px;
    outline: 1px solid red;
}

Fiddle: http://jsfiddle.net/6jxtp8k5/59/

使用 min-widthmin-height 而不是使用 widthheight。这将确保正方形始终具有特定的宽度和高度。

.square {
    min-width: 25px;
    min-height: 25px;
    background-color: red;
}