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