4

我在获取真实设备的屏幕尺寸时遇到问题。看看jsfiddle:http: //jsfiddle.net/glenswift/CpBkU/

调整输出框架的大小会导致 h1 文本发生变化。我知道 h1 不同部分的像素大小,所以它可以在桌面上正常工作。但是在具有大 dpi 和小屏幕的设备上,我的解决方案不起作用,文本超出屏幕。

我不知道如何解决这个问题。我见过类似的问题(1 , 2),但它们对我没有帮助。

我的代码:

function setPositions(){
    var W = $(window).width(),
        h1 = '';
    if (W < 210) {
        h1 = 'Hello';
    } else if (W < 270) {
        h1 = 'Hello World';
    } else {
        h1 = 'Hello World Text'
    }
    $('h1').empty().text(h1);
}
$(document).ready(function(){
    setPositions();
});
$(window).resize(function(){
    setPositions();
});

十分感谢。

4

4 回答 4

5

关于媒体查询的另一件事http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/

这真的是一篇很棒的文章,让我大开眼界:)

请享用!

于 2013-05-01T20:15:29.380 回答
4

确保在元标记中使用“视口”。它用于响应式网页设计。IE<meta name="viewport" content="width=device-width" />

参考:http ://webdesignerwall.com/tutorials/viewport-meta-tag-for-non-responsive-design

于 2013-04-29T09:42:36.827 回答
3

出于兴趣,我尝试了一种 CSS 方法。我没有视网膜显示设备来仔细检查,但看看它的外观:http: //jsfiddle.net/panchroma/Z678z/

我知道这在您的特定情况下可能不实用,但是由于您处理的是文本而不是图像,因此 CSS 确实有一些优势。

HTML

<h1 class="small">Hello</h1>
<h1 class="med">Hello World</h1>
<h1 class="lge">Hello World Text!</h1>  

CSS

 @media (max-width: 210px){
 .small{
 display:inherit;
 }

 .med, .lge{
display:none;
}  
}

etc  

根据视口,h1 文本从 hello 变为 hello world,再变为 hello world 文本

于 2013-03-24T20:05:30.180 回答
2

要知道屏幕大小,您应该使用元标记<meta name="viewport" content="width=device-width" />

您可以使用媒体查询来根据屏幕尺寸宽度调整内容,而不是使用 setPositions 函数。

于 2013-05-01T23:22:29.123 回答