HTML
<progress max="100" value="80" data-value="5"></progress>
CSS
progress { margin: 50px; width:250px; border:0; }
CSS(尝试一)
progress:before, progress:after { content: attr(data-value); }
CSS(尝试2)
progress::-webkit-progress-bar:before,
progress::-webkit-progress-bar:after { content: attr(data-value); }
progress::-moz-progress-bar:before,
progress::-moz-progress-bar:after { content: attr(data-value); }
CSS(第三次尝试)
progress::-webkit-progress-value:before,
progress::-webkit-progress-value:after { content: attr(data-value); }
progress::-moz-progress-value:before,
progress::-moz-progress-value:after { content: attr(data-value); }
以上所有尝试均未成功。还尝试了使用不同的CSS代码块,用于:before
和:after
。
目标
在HTML5的<progress>
元素之前和之后注入CSS生成内容。这可能吗?
JsFiddle演示
http://jsfiddle.net/pankajparashar/MNL2C/
更新
当我使用以下CSS时,它可以工作。
progress::-webkit-progress-bar:before,
progress::-webkit-progress-bar:after { content: '123'; }
结论
显然,当我们在 CSS 中注入静态内容时,它可以正常工作。但是如果我们使用 data-*
中的内容,则无法正常工作。
object
或iframe
元素内的内容,progress
元素中的内容将不会被显示,因此我认为这是不可能的。 - BoltClockprogress
元素内部和外部生成的内容。 - BoltClockcontent:attr(data-value);
改成content: '213';
,它就可以工作了!所以问题出在使用CSS属性中的attr函数。 - Pankaj ParasharIMG
标签类似的问题吗(关于:before
和:after
)? - frozenkoi