Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用CSS的绝对大小调整_Javascript_Android_Html_Css_Android Browser - Fatal编程技术网

Javascript 使用CSS的绝对大小调整

Javascript 使用CSS的绝对大小调整,javascript,android,html,css,android-browser,Javascript,Android,Html,Css,Android Browser,我知道CSS中有一些绝对大小单位。例如,厘米,英寸,毫米。。。但当我在我的网页上使用它们时,它们很少受到尊重 有关屏幕物理尺寸和像素分辨率的信息应可从EDID获得,以便浏览器可以访问这些信息并计算特定设备上1厘米的像素数量。我说的是普通的CRT/LED/等离子屏幕,而不是投影仪 我想在移动设备上使用它。一个共同的标准是每个触摸目标的尺寸至少为9毫米。但当我在CSS代码中使用height:9mm时,HTC Desire HD上的实际尺寸约为3mm 那么,如何让浏览器使用绝对大小显示元素呢?如果这些

我知道CSS中有一些绝对大小单位。例如,厘米,英寸,毫米。。。但当我在我的网页上使用它们时,它们很少受到尊重

有关屏幕物理尺寸和像素分辨率的信息应可从EDID获得,以便浏览器可以访问这些信息并计算特定设备上1厘米的像素数量。我说的是普通的CRT/LED/等离子屏幕,而不是投影仪

我想在移动设备上使用它。一个共同的标准是每个触摸目标的尺寸至少为9毫米。但当我在CSS代码中使用height:9mm时,HTC Desire HD上的实际尺寸约为3mm


那么,如何让浏览器使用绝对大小显示元素呢?

如果这些真实世界的测量值是可靠的,那么它们只有在用于打印格式时才会可靠。任何电子产品都会用像素来思考,而不是用真实世界的测量值来解释这些像素。例如,当您将设备插入投影仪或具有不同分辨率和DPI的外部显示器时,厘米和毫米的含义是什么


哪个设备可以跟踪mm和cm转换为什么?显示设备还是发送显示数据的设备?太乱了。RL测量仅用于打印,即使在那里,根据我的经验,它们也可能有点冒险。至少在几年前,我的经验是不确定的。

如果这些真实世界的测量值是可靠的,那么它们只有在用于打印格式时才会可靠。任何电子产品都会用像素来思考,而不是用真实世界的测量值来解释这些像素。例如,当您将设备插入投影仪或具有不同分辨率和DPI的外部显示器时,厘米和毫米的含义是什么


哪个设备可以跟踪mm和cm转换为什么?显示设备还是发送显示数据的设备?太乱了。RL测量仅用于打印,即使在那里,根据我的经验,它们也可能有点冒险。至少我几年前的经历是不确定的。

你不能。无论出于何种原因,移动设备上的浏览器都会一致地告诉您,一个1英寸宽的元素是96像素宽。实际的解决方案是什么并不重要;他们都这么说

解决这个问题的唯一方法是让设备制造商和设备软件供应商全权负责虚拟像素的适当大小。换句话说,你必须信任苹果、谷歌、三星、LG、HTC、摩托罗拉等公司为公众提供的设备,使你的16px文本在用户所看到的任何设备上都是可读的,而不管一个16px字形涉及多少真实像素

有时候,你输了;新款iPadMini就是一个很好的例子,因为它报告的屏幕尺寸与iPad2相同,但屏幕要小得多。这意味着你的16px在iPad2上既漂亮又清晰,而在iPadMini上却非常小。你的网页几乎不可能从设计上看出它是在iPadMini上还是在iPad2上!苹果是故意这样做的,所以最终的结果是,倒霉的iPad迷你版购买者受到了制造商的虐待

相比之下,Nexus7平板电脑的实际屏幕分辨率比iPad Mini高,但它向您的网页报告的屏幕尺寸更小。这意味着您在该设备上的16px文本看起来很棒-Nexus7的所有者已经得到该制造商的良好服务


当然,您可以提供允许用户调整布局的工具。对于一个响应迅速的网站来说,由于浏览器的各种特性和漏洞,很难让一个网站在熟悉的移动设备手势下正常运行。

你不能。无论出于何种原因,移动设备上的浏览器都会一致地告诉您,一个1英寸宽的元素是96像素宽。实际的解决方案是什么并不重要;他们都这么说

解决这个问题的唯一方法是让设备制造商和设备软件供应商全权负责虚拟像素的适当大小。换句话说,你必须信任苹果、谷歌、三星、LG、HTC、摩托罗拉等公司为公众提供的设备,使你的16px文本在用户所看到的任何设备上都是可读的,而不管一个16px字形涉及多少真实像素

有时候,你输了;新款iPadMini就是一个很好的例子,因为它报告的屏幕尺寸与iPad2相同,但屏幕要小得多。这意味着你的16px在iPad2上既漂亮又清晰,而在iPadMini上却非常小。你的网页几乎不可能从设计上看出它是在iPadMini上还是在iPad2上!苹果是故意这么做的,所以最终的结果是,倒霉的iPad迷你版购买者已经被我抢走了 我们将由制造商提供服务

相比之下,Nexus7平板电脑的实际屏幕分辨率比iPad Mini高,但它向您的网页报告的屏幕尺寸更小。这意味着您在该设备上的16px文本看起来很棒-Nexus7的所有者已经得到该制造商的良好服务


当然,您可以提供允许用户调整布局的工具。对于一个响应迅速的站点,由于浏览器的各种特性和缺陷,很难让一个站点在熟悉的移动设备手势下正常运行。

这在很大程度上取决于设备设置。在许多情况下,出于兼容性的原因,真正的互操作性与将产品推向市场的竞争是对立的

或者换句话说:设备供应商为他们的客户固定了网站,这样他们就可以随心所欲地冲浪

对角线厘米英寸:11 4.3 分辨率:480×800 ppcm PPI:85 217* CSS像素比率:1.5 *基于给定显示大小的近似计算

如果您看到该列表,可以想象每个设备的情况有所不同。因此,您不能信任设备本身

如果你想解决这个问题,你需要为你的用户提供一种配置它的方法,这样你就可以采用。一些供应商/浏览器提供的标题告诉这些设备做真实的事情。这一切都要视情况而定,而我手头没有一个好的资源来轻松、全面地解决这个问题。我将首先研究不同的模型和它们的浏览器软件,然后创建一个矩阵,如果有一些通用的程序,如果它们一起工作的话


在此之前,我只要求用户使用实时设置,但根据用户偏好对body元素进行采用的设置。

这在很大程度上取决于设备设置。在许多情况下,出于兼容性的原因,真正的互操作性与将产品推向市场的竞争是对立的

或者换句话说:设备供应商为他们的客户固定了网站,这样他们就可以随心所欲地冲浪

对角线厘米英寸:11 4.3 分辨率:480×800 ppcm PPI:85 217* CSS像素比率:1.5 *基于给定显示大小的近似计算

如果您看到该列表,可以想象每个设备的情况有所不同。因此,您不能信任设备本身

如果你想解决这个问题,你需要为你的用户提供一种配置它的方法,这样你就可以采用。一些供应商/浏览器提供的标题告诉这些设备做真实的事情。这一切都要视情况而定,而我手头没有一个好的资源来轻松、全面地解决这个问题。我将首先研究不同的模型和它们的浏览器软件,然后创建一个矩阵,如果有一些通用的程序,如果它们一起工作的话


在此之前,我只会要求用户使用实时设置,但根据用户偏好对身体元素进行采用的设置。

有两个基本因素使9毫米与9毫米的物理测量值不同

首先,在显示设备中,CSS值和单位模块级别3中所述的单位通常是像素,并且mm单位被解释为满足方程式1in=25.4mm=96px。即使在印刷媒体中,mm原则上应该固定在物理mm上,它也会有所偏离。你对此无能为力

其次,在移动设备中,浏览器通常会自动缩放页面。原因是,否则大多数页面将表现得非常糟糕,因为它们是为更大的屏幕而设计的,即使在每个方向上的像素数方面也是如此。这可以通过使用类似

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

只有当页面真正设计为适应各种视口大小(包括小尺寸)时,才应使用此选项。

有两个基本因素使9mm不同于9毫米的物理测量值

首先,在显示设备中,CSS值和单位模块级别3中所述的单位通常是像素,并且mm单位被解释为满足方程式1in=25.4mm=96px。即使在印刷媒体中,mm原则上应该固定在物理mm上,它也会有所偏离。你对此无能为力

其次,在移动设备中,浏览器通常会自动缩放页面。原因是,否则大多数页面将表现得非常糟糕,因为它们是为更大的屏幕而设计的,即使在每个方向上的像素数方面也是如此。这可以通过使用类似

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

只有当页面真正设计为适应各种视口大小(包括小尺寸)时,才应使用此选项。

我想出了一种方法:大多数浏览器在用户代理标头中沿HTTP请求发送设备类型。基于这些信息,我可以在服务器上找到真正的DPI,并将其作为修改后的CSS发送回响应中

然而,保存和维护设备数据库以获得精确的DPI成本很高。我最后
使用一组公共参数的近似DPI。在这种情况下,1mm不是常数,但通常应该将差异最小化。

我想出了一种方法:大多数浏览器在用户代理报头中沿HTTP请求发送设备类型。基于这些信息,我可以在服务器上找到真正的DPI,并将其作为修改后的CSS发送回响应中


然而,保存和维护设备数据库以获得精确的DPI成本很高。我最终使用了一组公共参数的近似DPI。在这种情况下,1mm不是常数,但通常应尽量减小差异。

您是否有任何关于移动设备上的标准96dpi的参考资料?我发现Windows上的标准资源只有大约96dpi。我想在我的论文中引用这个参考文献;我读过很多关于它的博客文章,当然很容易从经验上证明。请注意,实际上它并不是96dpi——事实是,不管像素实际有多大,设备都将1in视为96px。因此,基本上,如果我想在网页上显示9mm,我需要知道我在哪台设备上。但http请求中不包括这些信息——e.a.IPad和IPad mini。所以我完蛋了——除了向用户询问他们的设备之外,我不可能有实际的dpi。依赖96dpi似乎并不正确——大约99%的移动设备的dpi要高得多。糟糕的是,用户的手指也无法缩放到96dpi-是的,这是一个奇怪的情况,但这是现实。大多数现代设备都会告诉您设备像素比率,但这只会报告CSS中实际屏幕像素和虚拟像素1px之间的比率。但是,仍然不能帮助您了解真实的屏幕大小。您是否有任何关于96dpi是移动设备标准的参考资料?我发现Windows上的标准资源只有大约96dpi。我想在我的论文中引用这个参考文献;我读过很多关于它的博客文章,当然很容易从经验上证明。请注意,实际上它并不是96dpi——事实是,不管像素实际有多大,设备都将1in视为96px。因此,基本上,如果我想在网页上显示9mm,我需要知道我在哪台设备上。但http请求中不包括这些信息——e.a.IPad和IPad mini。所以我完蛋了——除了向用户询问他们的设备之外,我不可能有实际的dpi。依赖96dpi似乎并不正确——大约99%的移动设备的dpi要高得多。糟糕的是,用户的手指也无法缩放到96dpi-是的,这是一个奇怪的情况,但这是现实。大多数现代设备都会告诉您设备像素比率,但这只会报告CSS中实际屏幕像素和虚拟像素1px之间的比率。但是,仍然不能帮助您了解真实的屏幕大小。