Html Internet Explorer 7中的em dash

Html Internet Explorer 7中的em dash,html,css,internet-explorer,internet-explorer-7,em,Html,Css,Internet Explorer,Internet Explorer 7,Em,有人知道如何让em破折号出现在IE7中吗 我曾尝试使用IE9.js文件,但似乎不起作用 有人有什么想法吗?为什么你不能把它打印出来 在HTML中: — or — 在CSS中: content:"\2014" 在CSS中: // Support IE7, which doesn't support :before pseudo selectors *zoom: expression( function(t) { t.runtimeStyle[

有人知道如何让em破折号出现在IE7中吗

我曾尝试使用
IE9.js
文件,但似乎不起作用


有人有什么想法吗?

为什么你不能把它打印出来

在HTML中:

— or —
在CSS中:

content:"\2014"
在CSS中:

// Support IE7, which doesn't support :before pseudo selectors
*zoom: expression(
  function(t) {
    t.runtimeStyle['zoom'] = '1';
    t.innerHTML = "— " + t.innerHTML;
  }(this)
);

对于8以上版本的IE,通过JavaScript生成真实元素,并使其包含与
:before
/
:after
生成的伪元素内容等效的真实内容:

var example=document.getElementById('example'),
span=document.createElement('span');
span.innerHTML='—'
例如,appendChild(span);
然后将
span
元素附加到与您的
:before
/
:after
生成的伪元素相同的样式


顺便说一下,考虑放弃支持IE7版本的IEE版本。事实上,是时候考虑放弃对IE8的支持了。p> 我必须让它通过css导入工作。div#algemene_informatie h2:在{content:'-'之后,我刚刚编辑了我的答案,它回答了你的问题:)IE7不支持生成的内容。好吧,Modernizer只检测功能,但不多填充它们(唯一的例外是内置的HTML5).Polyfilling生成的内容需要对样式表进行全面的脚本解析。这种解析不仅速度慢,而且会导致与这种解析器可能与浏览器的本机CSS解析器不一致相关的非平凡问题。最好放弃对IE7的支持,至少在像gen这样不重要的方面或者像我在回答中所描述的那样,使用一个快速而直接的JS解决方案,包括生成真实元素。考虑到IE表达式功能是非标准/无效的,这是有意义的。我不能只使用Modernizr来定制生成的内容吗?如果是,我必须如何调整css选择器?Modernizr w启用时,不会自动对生成的内容提供多填充支持…它只会告诉您支持是否存在。IE9.js多填充功能,但如果您不想添加IE9.js,此CSS将起作用。@MaratTanalin,是的,它是非标准/无效的,仅在IE7中计算(属性名称前的
*
阻止其他浏览器对属性进行评估)。是的,这是一个黑客行为,但这是一个在CSS中只需要6行代码的黑客行为,而不是将整个库添加为多边形填充。以目前的形式,这个问题没有意义。IE 7中的em dash没有特别的问题。从评论来看,您真正的问题可能是生成的内容或其他方面。请编辑该问题为了反映真正的问题,+1放弃IE7支持,尽管我为大公司工作的大多数项目仍然有“IE7支持”的规定。令人讨厌的是,但我认为这是因为很多公司仍然运行XP,而一些it部门一直很懒:-p这不是世界上最糟糕的要求…至少不是IE6:-p