CSS:无论移动设备的 DPI 如何,都使 div 正好 300 像素高?
CSS: Making a div exactly 300 pixels high regardless of DPI of mobile device?
关于从移动设备和 DPI 的角度理解网页设计,我正在进入一个困难时期。
之前我只是用来创建 300 像素高,例如 div 它总是 300 像素高并且在所有设备上看起来都一样,因为显示器实际上总是有相同的 dpi。所以 300 像素 = 300 像素等等
现在移动设备已经到来(前一阵子到来:-),但我还没能理解 css 和像素。
据了解我有一个 div 300 像素高,我如何确保它在具有不同 DPI 的不同移动设备上看起来大小相同(至少在高度方面)?
这是自动使用视口元标记完成的吗?或者这与它无关?
没有自动过程吗,我需要使用某种实时调整大小吗?我听说 CSS 像素,但不确定这是否与它有关,或者我是否能够使用它。
如果您在 html 中使用这样的元标记:
<meta name="viewport" content="height=device-height, initial-scale=1.0">
你的 div 的 css 看起来像这样:
div {
height:300px;
}
那么你的 div 在所有设备上都应该是 300px 高。
请记住,台式机和移动设备的 DPI 截然不同,因此台式机上的 300 像素高 div 与 300 像素高 div 的真实世界尺寸不同iPhone.
您还可以考虑放弃使用像素,而在指定元素的尺寸时使用百分比。百分比在设备之间的移动比像素更容易。
您还可以使用媒体查询为您的元素指定不同的像素大小,具体取决于设备的尺寸。
参见:Media queries at w3schools
为了验证这一点,我创建了一个 html 页面,如下所示:
<html>
<head>
<meta name="viewport" content="height=device-height, initial-scale=1.0">
<style>
.sample-fixed {
border: 2px solid purple;
width: 100px;
height: 100px;
position: absolute;
}
.sample-percentage {
border: 2px solid green;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div class="sample-fixed">
</div>
<div class="sample-percentage">
</div>
</body>
</html>
然后我将页面加载到 Chrome。我启动了 Chrome 的 Developer Tools(在 Chrome[=51= 中按 F12 ]).然后单击控件 切换设备工具栏(红圈)。
在地址栏下方,浏览器现在有一个可以更改设备格式的菜单。我确保 scale 设置为 100%,然后尝试了不同的设备模拟器。
紫色方框总是出现相同的像素数(100x100,参见sample-fixed css class 定义)。我测试了纵向和横向。 (我偶尔不得不将 scale 改回 100%,因为开发人员工具会为我选择一个新值。)
测试显然取决于 Developer Tools 模拟器的准确性和我的视力。
关于从移动设备和 DPI 的角度理解网页设计,我正在进入一个困难时期。
之前我只是用来创建 300 像素高,例如 div 它总是 300 像素高并且在所有设备上看起来都一样,因为显示器实际上总是有相同的 dpi。所以 300 像素 = 300 像素等等
现在移动设备已经到来(前一阵子到来:-),但我还没能理解 css 和像素。
据了解我有一个 div 300 像素高,我如何确保它在具有不同 DPI 的不同移动设备上看起来大小相同(至少在高度方面)?
这是自动使用视口元标记完成的吗?或者这与它无关?
没有自动过程吗,我需要使用某种实时调整大小吗?我听说 CSS 像素,但不确定这是否与它有关,或者我是否能够使用它。
如果您在 html 中使用这样的元标记:
<meta name="viewport" content="height=device-height, initial-scale=1.0">
你的 div 的 css 看起来像这样:
div {
height:300px;
}
那么你的 div 在所有设备上都应该是 300px 高。
请记住,台式机和移动设备的 DPI 截然不同,因此台式机上的 300 像素高 div 与 300 像素高 div 的真实世界尺寸不同iPhone.
您还可以考虑放弃使用像素,而在指定元素的尺寸时使用百分比。百分比在设备之间的移动比像素更容易。
您还可以使用媒体查询为您的元素指定不同的像素大小,具体取决于设备的尺寸。 参见:Media queries at w3schools
为了验证这一点,我创建了一个 html 页面,如下所示:
<html>
<head>
<meta name="viewport" content="height=device-height, initial-scale=1.0">
<style>
.sample-fixed {
border: 2px solid purple;
width: 100px;
height: 100px;
position: absolute;
}
.sample-percentage {
border: 2px solid green;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div class="sample-fixed">
</div>
<div class="sample-percentage">
</div>
</body>
</html>
然后我将页面加载到 Chrome。我启动了 Chrome 的 Developer Tools(在 Chrome[=51= 中按 F12 ]).然后单击控件 切换设备工具栏(红圈)。
在地址栏下方,浏览器现在有一个可以更改设备格式的菜单。我确保 scale 设置为 100%,然后尝试了不同的设备模拟器。
紫色方框总是出现相同的像素数(100x100,参见sample-fixed css class 定义)。我测试了纵向和横向。 (我偶尔不得不将 scale 改回 100%,因为开发人员工具会为我选择一个新值。)
测试显然取决于 Developer Tools 模拟器的准确性和我的视力。