实现效果
实现代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>p {margin: 0;padding: 0;}.text-wrap {float: right;width: 15px;height: 15px;shape-outside: content-box;background-color: rebeccapurple;border: 2px solid black;border-radius: 2px;margin-top: 20px;padding-left: 5px;/* padding: 20px; */}.ellipsis {display: -webkit-box;-webkit-line-clamp: 2; /* 显示的行数 */-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;line-height: 20px;}.box {width: 400px;}</style></head><body><div class="box ellipsis"><div class="text-wrap"></div><p>这是要环绕的文本内容。这是要环绕的文本内容。这是要环绕的文本内容。这是要环绕的文本内容。这是要环绕的文本内容。这是要环绕的文本内容。这是要环绕的文本内容。</p></div></body>
</html>
实现思路
shape-outside
shape-outside 的 CSS 属性定义了一个可以是非矩形的形状,相邻的内联内容应围绕该形状进行包装。默认情况下,内联内容包围其边距框; shape-outside 提供了一种自定义此包装的方法,可以将文本包装在复杂对象周围而不是简单的框中。
值:content-box
定义一个由内容区域的外边缘封闭形成的形状(译者:表述的不太好,就是被 padding 包裹的区域,在 chrome 控制台中的盒子模型图中的蓝色区域。)。每一个角的弧度取 0 或 border-radius - border-width - padding 中的较大值。
其它的值:circle、ellipse、inset、polygon、url、auto 这次用不到。