【发布时间】:2019-12-16 18:34:24
【问题描述】:
我想为一些文本设置动画,它位于更多文本的中间。一切正常,除了淡出的跨度在它看起来有点难看的地方留下了额外的空间。在动画的“淡出”部分设置display: none 或width: 0 没有帮助
编辑: 我觉得有义务在第一个答案之后指出:跨度的存在是出于其他样式的原因,只是为了简化示例而删除了额外的绒毛。此外,动画部分中没有空格,因此您可以更清楚地看到我不需要的空格以避免混淆。在现实生活中,一切都更加复杂和美观。
在我发布问题后,我在 HTML 中找到了一些关于该问题的详尽信息:How do I remove the space between inline-block elements? 或off-site。
不幸的是,我的问题是,我在 React 中。名义上它自己解决了这个问题,正如我在这里发现的那样:Remove space between inline-block elements in React
但我似乎发现了一些奇怪的错误,即该死的空白行为不一致(例如,参见 sn-p)。我想我得去 React 报告它。
const MyComponent = () => {
return (<div>
<span>Static text</span>
<span className="animation">Word</span>
<span>More static text</span>
<br />
<span>Static text</span>
<span className="animation">Several Words</span>
<span>More static text</span>
</div>
);
}
ReactDOM.render(<MyComponent />, document.getElementById('root'));
.animation {
animation: animation 7s linear infinite both;
}
@keyframes animation {
0%,
40%,
100% {
letter-spacing: initial;
display: initial;
opacity: 1;
}
50%,
90% {
letter-spacing: -0.5em;
display: none;
opacity: 0;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
【问题讨论】:
-
首先,我的跨度是内联的,而不是内联块 --> 两者是一样的
标签: css reactjs css-animations opacity letter-spacing