[英]How can I capture :after content in IE8?
我申请一个:after
伪元素主体显示我的媒体查询断点的名字,像这样:
body::after {
content: 'medium';
display: none;
}
这样做的原因可以在这里找到: http : //adactio.com/journal/5429/
我想得到的内容值:after
在IE8中使用javascript :after
。
这是我为其他浏览器做的方式:
var breakpoint = window.getComputedStyle(document.body, ':after').getPropertyValue('content');
但IE8不支持getComputedStyle()
,我知道它支持currentStyle
,但经过一些尝试后我无法正确使用它。
这是我尝试没有成功的事情:
var breakpoint = document.body.currentStyle.getPropertyValue('content');
有人知道怎么做吗?
编辑:在BoltClock的笔记之后我现在已经将我的css改为此(一个半冒号):
body:after {
content: 'medium';
display: none;
}
在使用两个之前,内容甚至没有出现在IE8中,所以它没有任何回报。 不幸的是我仍然无法让IE8返回内容。
我在尝试这个:
if (style = document.body.currentStyle) {
for (var prop in style) {
if (prop === 'content') {
alert(prop);
}
}
}
我什么也没得到,但如果我将'content'
改为'backgroundColor'
之类'backgroundColor'
其他属性,它会发出警告。 所以我想虽然msdn将内容列为currentStyle
的可用属性之一http://msdn.microsoft.com/en-us/library/ie/ms535231%28v=vs.85%29.aspx但它确实如此实际上并没有归还它,除非我做错了什么。
经过大量的尝试,我得出的结论是,这是不可能的。 但幸运的是,我找到了一个js脚本,它正在实现我所追求的目标。
https://github.com/JoshBarr/js-media-queries
除了使用Jeremy Keith将断点标签放在正文中的技术之后:他们将断点标签放在html元素的font-family中。 这支持ie8和某些情况下android无法返回内容之后的内容。
从IE7到IE11,您可以“创建自己的CSS属性”,并使用currentStyle对象访问它们
然后一个解决方案是创建一个“假内容属性”
body:after
{
content: 'medium';
-ms-content: 'medium';
}
为方便起见,我把它称为“-ms-content”,现在你的IE的JavaScript代码应该是:
document.body.currentStyle["-ms-content"] // RETURNS => 'medium'
您必须使用括号访问“您自己的属性”:currentStyle [{String}]否则您将获得一个空字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.