Css 将平板电脑视口设置为1024px,移动到设备宽度

Css 将平板电脑视口设置为1024px,移动到设备宽度,css,viewport,Css,Viewport,我有一个桌面宽度>980px,移动宽度=768)?'980':'device-width'; $('head')。前置(''); }); 从我的测试来看,这是可行的。(这有点可笑,因为视口是在文档“加载”之后写入的;您可能会在屏幕上看到一点跳跃,然后是YMMV。) --编辑 现在我只是在脑子里写下这段代码,就像这样 <head> <script type="text/javascript"> var vpw = (screen.width>=768)?

我有一个桌面宽度>980px,移动宽度<768px的响应站点。我希望平板电脑可以在980px的视窗中查看站点,但移动设备可以在设备宽度上查看站点

具体而言,我希望:

width = device width
if width >= 768px
  viewport = 980px
else
  viewport = width

解决这个问题的最佳方法是什么?我不想检查服务器上的useragent。

您可以在head标记中使用此代码

<meta name="viewport" content="width=device-width, initial-scale=1"/>

然后将此样式用于移动设备

<link rel="stylesheet" media="print and (min-width: 767px)" href="http://…" />

相应地调整。本质上,此代码为“中间”设备(如平板电脑)提供上限和下限值

您可以通过执行以下操作来收紧该窗口,以强制桌面CSS或大部分CSS:

@media only screen and (min-width: 800px) and (max-width: 1024px) { ... }
除了这样做之外,您还必须“嗅探”设备,这与90年代(依我看,当时不是吗?),或者使用视口元数据。

您可以使用and来实现这一点。在HTML中:

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">

jshiddle

您可以使用Twitter引导脚手架CSS吗?他们有预先构建的媒体类,你可以稍微调整一下

我认为这一部分最适用于你所说的

/* Portrait tablet to landscape and desktop */
@media (min-width: 768px)  { ... }
此时,可以使用设置将流体跨距宽度设置为如下所示的值

Label Layout width Column width Gutter width Default 768px and above 42px 20px Phones to tablets 767px and below Fluid columns no fixed widths 标签布局宽度列宽檐槽宽度 默认768px及以上42px 20px 手机至平板电脑767px及以下液体柱无固定宽度
注意:由于您将使用固定列宽,因此div不会缩放到固定列宽之上

考虑到移动设备(不是平板电脑)的视口比768小得多,为什么不简单地更新媒体查询,以较小的尺寸应用更改?即:

@media only screen and (max-width: 480px) { ... }
这样,您的手机样式仅适用于最大宽度为480px的小型设备


您的桌面站点(现在是平板电脑)在这些分辨率以上仍然可见。

据我所知,您希望执行以下操作:

$(document).ready(function() {

    // lets push in a viewport 
    var vpw = (screen.width>=768)?'980':'device-width';
    $('head').prepend('<meta name="viewport" content="width='+vpw+'" />');

});
$(文档).ready(函数(){
//让我们在视口中推
var vpw=(屏幕宽度>=768)?'980':'device-width';
$('head')。前置('');
});
从我的测试来看,这是可行的。(这有点可笑,因为视口是在文档“加载”之后写入的;您可能会在屏幕上看到一点跳跃,然后是YMMV。)

--编辑 现在我只是在脑子里写下这段代码,就像这样

<head>
  <script type="text/javascript">
    var vpw = (screen.width>=768)?'980':'device-width';
    document.write('<meta name="viewport" content="width='+vpw+'" >');
  </script>
</head>

var vpw=(屏幕宽度>=768)?'980':'device-width';
文件。写(“”);
莫纳卡就是这么做的,所以我想没关系

每当客户想要一个响应迅速的移动版本时,我也会这样做,但要在任何更大的版本上保留默认的缩放比例,在web上确实没有太多:为不同的屏幕大小设置不同的视口标记,所以使用JS似乎仍然是最好的选择。默认情况下,我指定非响应视口宽度,例如

 <meta name="viewport" content="width=1000">

然后尽快在中运行以下代码(即,在jQuery已加载但未被jQuery的.ready()函数或任何等效函数包装后立即运行,因为window.screen属性似乎准确且立即可用。这可以避免在以后运行代码时可能发生的移动设备上的轻微跳转):

if(window.screen.width<601){
$('meta[name=viewport]')。attr('content','width=device width,initial scale=1');
}
使用以下方法:

<meta name="viewport" content="width=device-width, initial-scale=1"/>
其余css:搜索媒体查询;)

如果您有移动设备,则容器宽度为100%全尺寸。但在pc中,最大宽度为1024px。因此,您可以使用css设计其余的设计。这不需要javascript或插件。

(函数(){
(function() {
window.monaca = window.monaca || {};

var IS_DEV = false;
var d = IS_DEV ? alert : function(line) { console.debug(line); };

/**
 * Check User-Agent
 */
var isAndroid = !!(navigator.userAgent.match(/Android/i));
var isIOS     = !!(navigator.userAgent.match(/iPhone|iPad|iPod/i));

var defaultParams = {
    width : 640,
    onAdjustment : function(scale) { }
};

var merge = function(base, right) {
    var result = {};
    for (var key in base) {
        result[key] = base[key];
        if (key in right) {
            result[key] = right[key];
        }
    }
    return result;
};

var zoom = function(ratio) {
    if (document.body) {
        if ("OTransform" in document.body.style) {
            document.body.style.OTransform = "scale(" + ratio + ")";
            document.body.style.OTransformOrigin = "top left";
            document.body.style.width = Math.round(window.innerWidth / ratio) + "px";
        } else if ("MozTransform" in document.body.style) {
            document.body.style.MozTransform = "scale(" + ratio + ")";
            document.body.style.MozTransformOrigin = "top left";
            document.body.style.width = Math.round(window.innerWidth / ratio) + "px";
        } else {
            document.body.style.zoom = ratio;
        }
    }
};

if (isIOS) {
    monaca.viewport = function(params) {
        d("iOS is detected");
        params = merge(defaultParams, params);
        document.write('<meta name="viewport" content="width=' + params.width + ',user-scalable=no" />');
        monaca.viewport.adjust = function() {};
    };
} else if (isAndroid) {
    monaca.viewport = function(params) {
        d("Android is detected");
        params = merge(defaultParams, params);

        document.write('<meta name="viewport" content="width=device-width,target-densitydpi=device-dpi" />');

        monaca.viewport.adjust = function() {
            var scale = window.innerWidth / params.width;
            monaca.viewport.scale = scale;
            zoom(scale);
            params.onAdjustment(scale);
        };

        var orientationChanged = (function() {
            var wasPortrait = window.innerWidth < window.innerHeight;
            return function() {
                var isPortrait = window.innerWidth < window.innerHeight;
                var result = isPortrait != wasPortrait;
                wasPortrait = isPortrait;
                return result;
            };
        })();

        var aspectRatioChanged = (function() {
            var oldAspect = window.innerWidth / window.innerHeight;
            return function() {
                var aspect = window.innerWidth / window.innerHeight;
                var changed = Math.abs(aspect - oldAspect) > 0.0001;
                oldAspect = aspect;

                d("aspect ratio changed");
                return changed;
            };
        });

        if (params.width !== 'device-width') {
            window.addEventListener("resize", function() {
                var left = orientationChanged();
                var right = aspectRatioChanged();

                if (left || right) {
                    monaca.viewport.adjust();
                }
            }, false);
            document.addEventListener('DOMContentLoaded', function() {
                monaca.viewport.adjust();
            });
        }
    };
} else {
    monaca.viewport = function(params) {
        params = merge(defaultParams, params);
        d("PC browser is detected");

        monaca.viewport.adjust = function() {
            var width = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth;
            var scale = width / params.width;
            zoom(width / params.width);
            params.onAdjustment(scale);
        };

        if (params.width !== 'device-width') {
            window.addEventListener("resize", function() {
                monaca.viewport.adjust();
            }, false);
            document.addEventListener("DOMContentLoaded", function() {
                monaca.viewport.adjust();
            });
        }
    };
}

monaca.viewport.isAndroid = isAndroid;
monaca.viewport.isIOS     = isIOS;
monaca.viewport.adjust    = function() { };
})();
window.monaca=window.monaca | |{}; var为_DEV=false; var d=IS_DEV?alert:函数(行){console.debug(行);}; /** *检查用户代理 */ var isAndroid=!!(navigator.userAgent.match(/Android/i)); var isIOS=!!(navigator.userAgent.match(/iPhone | iPad | iPod/i)); var defaultParams={ 宽度:640, onAdjustment:函数(比例){} }; var merge=函数(基,右){ var result={}; for(基础中的var键){ 结果[键]=基[键]; 如果(输入右侧){ 结果[键]=右[键]; } } 返回结果; }; 变量缩放=函数(比率){ if(document.body){ if(document.body.style中的“OTransform”){ document.body.style.OTransform=“比例(“+比率+”); document.body.style.OTransformOrigin=“左上角”; document.body.style.width=Math.round(window.innerWidth/ratio)+“px”; }else if(document.body.style中的“MozTransform”){ document.body.style.MozTransform=“比例(“+比率+”); document.body.style.MozTransformOrigin=“左上角”; document.body.style.width=Math.round(window.innerWidth/ratio)+“px”; }否则{ document.body.style.zoom=比率; } } }; 国际单项体育联合会(isIOS){ monaca.viewport=函数(参数){ d(“检测到iOS”); 参数=合并(默认参数,参数); 文件。写(“”); monaca.viewport.adjust=函数(){}; }; }else if(isAndroid){ monaca.viewport=函数(参数){ d(“检测到Android”); 参数=合并(默认参数,参数); 文件。写(“”); monaca.viewport.adjust=函数(){ 变量比例=window.innerWidth/params.width; monaca.viewport.scale=比例; 缩放(比例); 参数调整(比例); }; var orientationChanged=(函数(){ var wasratital=window.innerWidthif (window.screen.width < 601) { $('meta[name=viewport]').attr('content','width=device-width, initial-scale=1'); }
<meta name="viewport" content="width=device-width, initial-scale=1"/>
.container{
   width: 100%;         /* for mobile */
   max-width: 1024px;   /* for pc and tablet */
}
(function() {
window.monaca = window.monaca || {};

var IS_DEV = false;
var d = IS_DEV ? alert : function(line) { console.debug(line); };

/**
 * Check User-Agent
 */
var isAndroid = !!(navigator.userAgent.match(/Android/i));
var isIOS     = !!(navigator.userAgent.match(/iPhone|iPad|iPod/i));

var defaultParams = {
    width : 640,
    onAdjustment : function(scale) { }
};

var merge = function(base, right) {
    var result = {};
    for (var key in base) {
        result[key] = base[key];
        if (key in right) {
            result[key] = right[key];
        }
    }
    return result;
};

var zoom = function(ratio) {
    if (document.body) {
        if ("OTransform" in document.body.style) {
            document.body.style.OTransform = "scale(" + ratio + ")";
            document.body.style.OTransformOrigin = "top left";
            document.body.style.width = Math.round(window.innerWidth / ratio) + "px";
        } else if ("MozTransform" in document.body.style) {
            document.body.style.MozTransform = "scale(" + ratio + ")";
            document.body.style.MozTransformOrigin = "top left";
            document.body.style.width = Math.round(window.innerWidth / ratio) + "px";
        } else {
            document.body.style.zoom = ratio;
        }
    }
};

if (isIOS) {
    monaca.viewport = function(params) {
        d("iOS is detected");
        params = merge(defaultParams, params);
        document.write('<meta name="viewport" content="width=' + params.width + ',user-scalable=no" />');
        monaca.viewport.adjust = function() {};
    };
} else if (isAndroid) {
    monaca.viewport = function(params) {
        d("Android is detected");
        params = merge(defaultParams, params);

        document.write('<meta name="viewport" content="width=device-width,target-densitydpi=device-dpi" />');

        monaca.viewport.adjust = function() {
            var scale = window.innerWidth / params.width;
            monaca.viewport.scale = scale;
            zoom(scale);
            params.onAdjustment(scale);
        };

        var orientationChanged = (function() {
            var wasPortrait = window.innerWidth < window.innerHeight;
            return function() {
                var isPortrait = window.innerWidth < window.innerHeight;
                var result = isPortrait != wasPortrait;
                wasPortrait = isPortrait;
                return result;
            };
        })();

        var aspectRatioChanged = (function() {
            var oldAspect = window.innerWidth / window.innerHeight;
            return function() {
                var aspect = window.innerWidth / window.innerHeight;
                var changed = Math.abs(aspect - oldAspect) > 0.0001;
                oldAspect = aspect;

                d("aspect ratio changed");
                return changed;
            };
        });

        if (params.width !== 'device-width') {
            window.addEventListener("resize", function() {
                var left = orientationChanged();
                var right = aspectRatioChanged();

                if (left || right) {
                    monaca.viewport.adjust();
                }
            }, false);
            document.addEventListener('DOMContentLoaded', function() {
                monaca.viewport.adjust();
            });
        }
    };
} else {
    monaca.viewport = function(params) {
        params = merge(defaultParams, params);
        d("PC browser is detected");

        monaca.viewport.adjust = function() {
            var width = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth;
            var scale = width / params.width;
            zoom(width / params.width);
            params.onAdjustment(scale);
        };

        if (params.width !== 'device-width') {
            window.addEventListener("resize", function() {
                monaca.viewport.adjust();
            }, false);
            document.addEventListener("DOMContentLoaded", function() {
                monaca.viewport.adjust();
            });
        }
    };
}

monaca.viewport.isAndroid = isAndroid;
monaca.viewport.isIOS     = isIOS;
monaca.viewport.adjust    = function() { };
})();