[英]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.