Bra*_*rad 79 css user-interface android web-applications screen
对于Android,人们建议对UI元素使用dp(密度独立像素)测量,并且存在诸如使用48dp作为按钮高度等的约定.
我正在开发一个Web应用程序,我对UI设计提出了很多批评,称它不符合Android设计标准.显然,我的应用程序看起来会有所不同,因为它使用的是CSS和HTML而不是Android Holo主题,但我仍然希望尽可能地使它符合要求.然而,CSS不允许密度独立测量.
当我在不同的分辨率和像素密度上测试我的应用程序时,它看起来不太好,有时,它是不成比例的,所以它甚至不起作用.CSS没有像Android原生开发那样的dp单元,但我想知道一些替代方案是什么.
我能以某种方式使用Javascript获取像素密度并手动适当地缩放所有内容吗?制作适合所有分辨率/密度的Web应用程序的最佳方法是什么?
Toh*_*huw 148
我不同意目前接受的答案.正如uber5001所暗示的那样,a px是一个固定的单元,并且与Android 专用的努力类似dp.
每种材料的规格:
编写CSS时,请在说明dp或sp的地方使用px.Dp只需要用于Android的开发.
另外
在设计Web时,请将pp替换为px(用于像素).
cim*_*non 25
http://www.w3.org/TR/css3-values/#lengths
CSS中最接近的单位是视口百分比单位.
唯一不支持这些单元的移动浏览器是Opera. http://caniuse.com/#feat=viewport-units
Kon*_*ert 13
使用rem.
它是根元素的字体大小,是其他UI元素大小的非常好的基本单位.
如果使用相同的绝对大小(厘米),文本和其他元素在移动设备上会太大或在桌面上太小.
如果使用相同数量的像素,则文本和其他元素在移动设备上会太小或在桌面上太大.
该rem单位是现场,因为它说"嘿,这是正常文本应该是多大." 在此基础上设置其他UI元素的大小是一个非常合理的选择.
Mih*_*ila 11
从CSS3开始,没有真正与设备无关的CSS单元.有关绝对长度的信息,请参阅W3C规范.特别是,绝对单位可能与其物理测量值不匹配.
如果物理单位符合他们的目的,你可以使用点数; 积分足够接近dps:
1 in = 72 pt
1 in = 160 dp
1 dp = 72 / 160 pt
Run Code Online (Sandbox Code Playgroud)
如果您使用SCSS,您可以编写一个函数以pts返回:
@function dp($_dp) {
@return (72 / 160) * $_dp + pt;
}
Run Code Online (Sandbox Code Playgroud)
并使用它:
.shadow-2 {
height: dp(2);
}
Run Code Online (Sandbox Code Playgroud)