【发布时间】:2020-03-14 16:13:24
【问题描述】:
我正在尝试创建一个圆圈作为 ::after 伪元素,它会根据其内容自动调整大小。
.container {
display: flex;
flex-direction: row;
}
#dividerHost2 #left {
flex: 1 1 auto;
background-color: yellowgreen;
height: 200px;
}
#dividerHost2 #right {
flex: 1 1 auto;
background-color: dodgerblue;
}
#dividerHost2 .divider {
background-color: white;
margin: 0px;
width: 6px;
font-weight: 800;
}
.divider.vertical {
--divider-color: transparent;
display: inline-flex;
width: 1px;
border-left: 1px solid rgb(var(--divider-color));
margin: 0px 2px 0px 2px;
overflow: show;
}
.divider.vertical.title::after {
flex: 0 0 auto;
align-self: center;
border-radius: 50%;
content: "OR";
padding: 9px 8px 11px 8px;
background-color: white;
color: black;
transform: translateX(-44%);
z-index: 10;
}
<div id="dividerHost2" class="container">
<div id="left" class="container" style="flex-direction: row;"></div>
<div id="divider3" class="divider vertical title"></div>
<div id="right" class="container" style="flex-direction: row;"></div>
</div>
到目前为止,这给出了一个相当不错的结果:
JSFiddle https://jsfiddle.net/jsnbtmh3/
但是,如果文本较长,圆圈会变成椭圆:
如何让圆圈根据内容自动调整大小?
【问题讨论】:
-
您发布的代码 sn-p 与您分享的屏幕截图不同。
-
滥用
--vars没有特别的收获。简单地使用data-title="OR"而不是在 CSS 中:content: attr(data-title); -
这里的误用是什么?两种变体似乎都需要类似的努力,而且我没有看到任何不使用变量的建议。
标签: css