虽然basic use of CSS IE conditionals 是off-topic 对于WPSE,WordPress确实包含了一种基于CSS IE条件的有条件排队样式表的方法。
首先,您需要使用正确的条件:
<!--[if lt IE 9]> ie.css <![endif]-->
其次,你应该
enqueue this stylesheet properly, 在里面
functions.php
, 通过连接到的回调
wp_enqueue_scripts
:
<?php
function wpse48581_enqueue_ie_css() {
// Register stylesheet
wp_register_style( \'wpse45851-ie\', get_template_directory_uri() . \'/css/ie.css\' );
// Apply IE conditionals
$GLOBALS[\'wp_styles\']->add_data( \'wpse45851-ie\', \'conditional\', \'lt IE 9\' );
// Enqueue stylesheet
wp_enqueue_style( \'wpse45851-ie\' );
}
add_action( \'wp_enqueue_scripts\', \'wpse48581_enqueue_ie_css\' );
?>
根据此评论编辑:
但我只想在ie上使用ie.css,而不是IE9和样式。IE9和非IE浏览器的css
这实际上是定义IE支持的样式表的非标准方式,因为它完全绕过了cascading CSS的一部分。然而,这是完全可能的。只需使用上述方法排队style.css
此外,使用适当的条件。例如,这可能不是最好的方法,但它会起作用:
<?php
function wpse48581_enqueue_ie_css() {
// Register and enqueue lt IE9 stylesheet
wp_register_style( \'wpse45851-ie\', get_template_directory_uri() . \'/css/ie.css\' );
$GLOBALS[\'wp_styles\']->add_data( \'wpse45851-ie\', \'conditional\', \'lt IE 9\' );
wp_enqueue_style( \'wpse45851-ie\' );
// Register and enqueue IE9 stylesheet
wp_register_style( \'wpse45851-ie9\', get_template_directory_uri() . \'/style.css\' );
$GLOBALS[\'wp_styles\']->add_data( \'wpse45851-ie9\', \'conditional\', \'IE 9\' );
wp_enqueue_style( \'wpse45851-ie9\' );
// Register and enqueue default stylesheet
// Note that we use the SAME style.css as above
wp_register_style( \'wpse45851-default\', get_template_directory_uri() . \'/style.css\' );
$GLOBALS[\'wp_styles\']->add_data( \'wpse45851-default\', \'conditional\', \'!IE\' );
wp_enqueue_style( \'wpse45851-default\' );
}
add_action( \'wp_enqueue_scripts\', \'wpse48581_enqueue_ie_css\' );
?>
Caveat: 这将起作用,但我
strongly recommend 重新考虑IE特定风格声明的方法。如果您总是使用默认样式表,然后在必要时利用级联来覆盖默认样式表,那么您的生活就会轻松得多。