1. 包裹性: 张大大在css世界里对 shrink-to-fit 理解后的一种称谓。


包裹性除了包裹外,还有自适应性

自适应性指的是元素尺寸由内部元素决定,但永远小于“包含块”容器的尺寸(除非容器尺寸小于元素的“首选最小宽度”)。因此,对于一个元素,如果其display属性值是inline-block,那么即使其里面的内容再多,只要是正常文本,宽度也不会超过容器。


button 是 css中极具代表的 inline-block 元素(最大宽度240像素),

2. 首选最小宽度:指的是元素最适合的最小宽度

  • 东亚文字(如中文)小宽度为每个汉字的宽度
  • 西方文字小宽度由特定的连续的英文字符单元 决定。并不是所有的英文字符都会组成连续单元, 一般会终止于空格(普通空格)、短横线、问号以 及其他非英文字符等。

小例子:

<body>
  <span class="ao"></span>
  <span class="tu"></span>
</body>
<style>
.ao,
.tu {
  display: inline-block;
  width: 0;/*  宽度为0时,因为图片和文字的权重远大于布局,所以展现的宽度是“首选最小宽度”*/
  font-size: 14px;
  line-height: 18px;
  margin: 35px;
  color: #fff;
}
.ao:before,
.tu:before {
  outline: 2px solid #cd0000;
  font-family: Consolas, Monaco, monospace;
}
.ao:before {
  content: "love你love";
}
.tu {
  direction: rtl;
}
.tu:before {
  content: "我love你";
}
</style>

这样会不会明显点