使用两个样式表实现移动兼容性

时间:2016-02-29 作者:John Allie

我正在从头开始构建一个主题,我希望它对特定宽度以下的屏幕使用不同的样式表,以实现移动兼容性。我在header中使用了这个方法。php调用适当的样式表:

<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/small.css" type="text/css" media="(max-width: 900px)" />
<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/style.css" type="text/css" media="(min-width: 900px)" />
WordPress成功使用该样式。css文件,但当浏览器窗口缩小到足以调用“小”样式表时,一切都变得混乱:元素放错了位置,东西消失了,等等。

我知道问题不在于样式表本身,因为当应用于WordPress主题的静态HTML捕获时,它们工作得很好。据我所知,WordPress试图同时调用这两个电子表格,但它们相互冲突。

我猜这不是实现替代样式表的预期方式。。。?

1 个回复
SO网友:John Allie

在我自己的进一步调查之后,我确定问题在于,无论出于何种原因,两个样式表都是同时被调用的,而不是独立地被调用,并且相互冲突的指令导致了呈现错误。我没有像上面那样在HTML中引用样式表,而是重写了CSS,将移动大小规则合并到同一个文件中:

@media only screen and (max-device-width: 700px) {
    <rules for smaller screens go here>
}
以这种方式编写规则需要他们与现有规则合作,但兼容性更强,从我所看到的情况来看,更符合当前的最佳实践。(如果您听到其他消息,请随时大声说出来。)