【问题标题】:Detect compatibility of the new Html5 tag <mark>检测新 Html5 标签 <mark> 的兼容性
【发布时间】:2014-08-03 15:21:38
【问题描述】:

如何检测新标签的兼容性。我正在使用这样的方法(使用 jQuery):

var $mark = $('<mark>');
$mark.appendTo('html');
var bg = $mark.css('background');
if (/rgb\(255\, 255\, 0\)/.test(bg)) return true;
else return false;

但问题是它在 firefox nightly 中返回 false,即使它是受支持的。 我检查了标记元素,发现其他浏览器(chrome、safari)会自动为这个标签添加一个样式,其中包括背景颜色和颜色。

不幸的是,Firefox 没有像 chrome 和 safari 那样为标签添加样式。但是标签也有黄色背景。

所以我很困惑它怎么可能是黄色的,尽管没有添加其他样式。 有没有人有可靠的方法来检测它在浏览器中的兼容性? 谢谢。

【问题讨论】:

  • 有趣。很明显,我的第一个想法是 Firefox 拒绝配合你在错误的位置插入标记,但即使纠正了错误,它仍然显示为 false。我得做更多检查。

标签: css html dom tags


【解决方案1】:

您的例程的问题是 Firefox 不能在这种情况下使用像 background 这样的速记属性。

解决方案:使用backgroundColor

var $mark = $('<mark>');
$mark.appendTo('body');
var bg = $mark.css('backgroundColor');
if (/rgb\(255\, 255\, 0\)/.test(bg)) return true;
else return false;

这适用于 Firefox 和 Chrome。

JSFiddle

但请注意,&lt;mark&gt; 并未正式定义为具有黄色背景色。目前所有浏览器都这样显示它的事实并不意味着它可以保证在未来继续工作。

【讨论】:

  • 为我工作。你是对的,浏览器可能会改变显示。它只是工作。但是为什么它显示为黄色而没有添加任何额外的样式。
猜你喜欢
  • 2014-09-27
  • 2012-08-18
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
相关资源
最近更新 更多