【发布时间】:2011-12-03 16:50:01
【问题描述】:
我可以根据浏览器的高度更改加载哪个 CSS 文件吗?
例如,如果浏览器小于 600px,则使用 index_sm.css,否则使用 index_lg.css。
【问题讨论】:
-
您是否要查看用户是否在移动设备上?
-
不,我的页面底部有一个页脚,它位于绝对底部 0,但如果屏幕太小,它会与页面内容重叠,所以当屏幕较小时,我将页脚从顶部
我可以根据浏览器的高度更改加载哪个 CSS 文件吗?
例如,如果浏览器小于 600px,则使用 index_sm.css,否则使用 index_lg.css。
【问题讨论】:
在您的 <head> 标签中,输入以下内容:
<script type="text/javascript">
if (window.innerHeight <= 600) {
loadcss('index_sm.css');
} else {
loadcss('index_lg.css');
}
function loadcss(file) {
var el = document.createElement('link');
el.setAttribute('rel', 'stylesheet');
el.setAttribute('type', 'text/css');
el.setAttribute('href', file);
document.getElementsByTagName('head')[0].appendChild(el);
}
</script>
【讨论】:
document.body.offsetHeight(或document.documentElement.offsetHeight)作为IE。
这是我能想到的最佳答案,我终于在一个非常有用的网站上偶然发现了这个。
function adjustStyle(width) {
width = parseInt(width);
if (width < 701) {
$("#size-stylesheet").attr("href", "css/narrow.css");
} else if ((width >= 701) && (width < 900)) {
$("#size-stylesheet").attr("href", "css/medium.css");
} else {
$("#size-stylesheet").attr("href", "css/wide.css");
}
}
$(function() {
adjustStyle($(this).width());
$(window).resize(function() {
adjustStyle($(this).width());
});
});
网站是:http://css-tricks.com/6206-resolution-specific-stylesheets/
jQuery 会即时更改浏览器的 css,因此如果您调整浏览器的大小,css 也会发生变化。它也适用于所有浏览器。
【讨论】:
在supporting browsers 中,您可以使用media queries(特别是height media feature)。
【讨论】:
max-height 或 min-height
正如昆汀所说,您可以使用媒体查询。但是,我认为您已经拥有 n 个 css 文件,并且想要即时选择其中一个。只需在文档头中使用类似的内容即可。
<script language="text/javascript">
if (screen.width == 640) {
document.write('<link rel="stylesheet" type="text/css" href="640.css">');
}
else if (screen.width == 800) {
document.write('<link rel="stylesheet" type="text/css" href="800.css">');
}
</script>
【讨论】: