是否可以通过属性:值而不是选择器/属性来搜索 CSS?或者这需要通过服务器脚本解析吗?
如果可能的话,我会计划创建一个脚本,如果选择器有,它会自动添加 IE7 hack:display: inline-block
因为我厌倦了写作*display: inline; zoom: 1;
如果将样式直接添加到元素中,则可以进行如下过滤:
代码1
$("[style*='inline-block']");
但是如果使用css计算样式,上面的代码将不会获取元素,这种情况下您可以使用以下内容。
代码2
$('*').filter(function() {
return $(this).css('display') == 'inline-block';
});
所以如果我有以下html。
<div style="display: inline-block"></div>
<div class="someClass"></div>
Code1
只得到第一个。
Code2
两者兼得。
如果元素样式为 inline-block,则此代码应允许您处理某些内容。
$("body *").each(function (i) {
if ($(this).css('display') == "inline-block") {
//inline block - do what you need to do
this.style.color = "blue";
alert($(this).css('display'));
}
});
有关工作示例,请参见 jsfiddle http://jsfiddle.net/nevtn/
这将是您需要的整个脚本:
$(document).ready(function(){
if ($.browser.msie && parseInt($.browser.version, 10) === 7) {
$("body *").each(function (i) {
if ($(this).css('display') == "inline-block") {
//inline block - do what you need to do
$(this).css({'display':'inline', 'zoom':'1'});
}
});
}
});
example demo (faked IE7) http://jsfiddle.net/nevtn/5/