【发布时间】:2016-12-11 19:48:42
【问题描述】:
我有一系列 tag 类的 span 元素(来自 bootstrap v4),它们彼此相邻,它们之间没有任何空格,因为它们来自 JSX 元素的 reacj.js 数组:
<span class="tag tag-primary">text</span><span class="tag tag-primary">text</span><!-- ... -->
这是来自引导程序的 CSS:
.tag {
display: inline-block;
padding: 0.25em 0.4em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: 0.25rem;
}
这些元素可以在一个表格单元格中包含多行。我可以用一些 javascript (https://stackoverflow.com/a/23619085/3446439) 在中间添加一个空格字符,或者添加一个带有空格字符的包装元素(在 JSX 中只有一个根元素)。这两个选项都不能让我满意,我认为在 CSS 中应该很简单。
我尝试了以下方法,如果它有效,那将是理想的,但它不适用于内联块元素 (https://jsfiddle.net/qjbgzzLr/):
span.tag + span.tag::before {
content: " ";
}
目前,我在span.tag + span.tag 上添加了margin-left,但这并不理想,因为每行中的第一个元素在其左侧都有一个边距。
有没有办法通过 CSS only 实现这一点?
【问题讨论】:
-
看起来伪元素解决方案对我有用 - jsfiddle.net/vassuvw4
-
伪元素解决方案不适用于 bootstrap jsfiddle.net/qjbgzzLr 将编辑问题
-
所以您的文本周围确实有那些蓝色框,您希望它们之间有一个空格?
-
是的,我希望它们之间有一个空格,但前提是它们在同一行文本中相邻。
-
发现伪元素不起作用,因为它是
inline-block
标签: css css-selectors pseudo-element css-content