html - 使用 :after element 的内联文本加载栏

标签 html css

我想构建一个内联加载栏,使用 span,然后在 :after 元素上分层,内容完全相同,但在其上方有不同的颜色/背景色。

JSFiddle

HTML

<span id="target" data-text="Lorem Ipsum Dolor">Lorem Ipsum Dolor</span>

CSS

#target {
    margin: 25px;
    font-size: 22px;
    color: #111;
    position: relative;
}

#target:after {
    content: attr(data-text);
    color: orange; background-color: rgba(50,50,50,0.3);
    position: absolute;
    overflow: hidden;
    width: 0;
    left: 0;
    top: 0;
    height: 28px;
    transition: width 5s linear;
}

#target.loading:after {
    width: 100%;
}

这个演示是抽象的,但它的目的是指出一个奇怪的问题:第一个单词的效果按预期工作,用新颜色平滑地填充它,但随后停止工作,而是跳到下两个单词。我添加了一个背景颜色来展示它实际上按预期继续。然而,与文本不同。

最佳答案

问题是 :after 想要自动换行,而您看不到其余的单词,因为溢出已关闭。 (也就是说,如果高度更大,最后两个词会出现在下一行。)

解决方案:通过添加属性来防止自动换行

white-space:nowrap;

参见 updated fiddle

关于html - 使用 :after element 的内联文本加载栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090407/

相关文章:

Firefox 3.6 忽略 CSS3 边框半径

html css 对齐文本,使文本始终位于图像的右侧而不是图像下方

javascript - 如何成为@media 的第一名?

html - 试图将我的图标字体放在我的链接上方,以获得与我的图标图像相同的效果

html - 空格和边距不一致

html - 根据剩余空间隐藏 div 表的内容

javascript - 使用 Javascript/JQuery 以最大宽度居中 <div>

php - 如何使用 PDO 从 href 链接获取单行,收到 fatal error : Call to a member function prepare() on a non-object?

html - 如何在移动网络中居中 Bootstrap 导航栏菜单?

JavaScript 实现不起作用 (Chart.js)