发布于 2026-01-06 0 阅读
0

将文本环绕在圆形形状内

将文本环绕在圆形形状内

访问css-tip.com了解更多 CSS 技巧

是的,我们将实现文本完美地环绕圆形。无需 JavaScript、SVG 或外部插件。只需几行 CSS 代码和一个基本的 HTML 结构。

我们走吧!

解释

<div class="box">
  <i></i> 
  Lorem ipsum ..
</div>
Enter fullscreen mode Exit fullscreen mode
div.box {
  --s:450px;  /*Size of the circle */
  --p:15px;  /* padding */

  height: var(--s);
  width:  var(--s);
  border-radius: 50%;
}
.box i,
.box::before {
  content: '';
  float: left;
  height:100%;
  width: 50%;
  shape-outside: radial-gradient(farthest-side at right, transparent calc(100% - var(--p)), #fff 0);
}
.box i {
  float: right;
  shape-outside: radial-gradient(farthest-side at left,  transparent calc(100% - var(--p)), #fff 0);
}

Enter fullscreen mode Exit fullscreen mode

[盒子]

一个基本div元素,用于width=height创建border-radius:50%一个视觉上的圆圈。我说“视觉上的”,是因为它并不能使文本环绕。

[i] & [box::before]

两个浮动元素覆盖整个 div 区域(每个元素占据整个高度和一半宽度),我们在shape-outside每个元素内部创建半圆。下图可以帮助更好地理解。

圆形图案内的文字

向左浮动的红色元素右侧会有一个半圆,蓝色元素则相反。我们使用变量调整圆的半径p,以模拟由创建的视觉box圆的内边距。

就是这样!

我们可以轻松地将这个技巧推广到不同的形状。我们只需要调整shape-outside形状并保持对称即可。

菱形示例

更多形状的相关文章

CSS挑战 - 自定义文本形状

Stack Overflow - CSS 旋转文本 n 度,但不旋转边界框?

Stack Overflow - 如何让文本环绕带有圆角边框的形状?

Stack Overflow - 在带有圆角的 blob 中包含文本


请我喝杯咖啡

或者

成为赞助人

文章来源:https://dev.to/afif/wrapping-text-inside-a-circular-shape-4k5h