字体大小em在某些设备上显示不同

时间:2012-08-24 16:40:07

标签: css mobile windows-mobile standards web-standards

我正在为主要为移动设备设计的网络创建聊天程序。我的问题是,在尝试尽可能适合移动设备时,我删除了em的像素字体大小,但是在我的桌面电脑上使用firefox,li文本显示为非常小,并且在iPad上显示太。在我的诺基亚Lumia 800 Windows手机上它显示的更大。

我的CSS:

* { margin:0; padding:0; font-family:arial; }
body > div { width:auto; margin:10px; }
h1 { font-size:1.5em; }
h2 { font-size:4em; text-align:center; }
h2#signIn > a { color:#aaaaaa; }
h2#signIn > a:hover { color:#000000; }
h3 { text-align:left; font-weight:normal; margin:10px; }

ul { list-style:none; }
ul > li { font-size:0.8em; font-weight:normal; padding:5px; text-align:center; }

a { color:#000000; text-decoration:none; font-variant:small-caps; }
a:hover { color:#aaaaaa; }
div.fieldContainer { display:block; border:1px solid #000000; padding:5px; }
span.yell, span.wire { font-variant:small-caps; }
span.wire { color:#aaaaaa; }

input[type="text"], input[type="password"]
{
    width:100%; margin:0;
    font-size:2em; border:0;
}

input[type="button"]
{
    width:100%; padding:10px; font-size:2em;
    font-variant:small-caps; letter-spacing:2px;
    border:1px solid #000000; background-color:#dddddd;
}

#messages
{
    width:100%; height:200px;
    border:0; padding:0; margin:0;
    overflow:auto; font-size:0.9em;
}

span.msgTime { font-size:0.7em; }

.fromMe { color:#aaaaaa; }
.fromYou { color:#000000; }
.clear { clear:both; }

如您所见,list元素使用0.8em。我意识到存在浏览器不一致但这是否真的不可避免?

我也使用它来确保网页的比例显示正确:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"> 

更新1

我认为值得一提的是,所有其他相对字体大小看起来都很好,它似乎只是移动浏览器中不同的列表元素。

4 个答案:

答案 0 :(得分:4)

em是相对于当前字体大小的度量。如果浏览器都具有不同的默认基本字体大小,那么它们看起来会有所不同。请尝试使用pt而不是适用于不同尺寸的屏幕,并且不会像px那样修复。

http://www.w3schools.com/cssref/css_units.asp

答案 1 :(得分:1)

每个浏览器都有自己的默认样式表,用于设置基本文本大小。 Ems是基于默认文本大小更改大小的相对单位。试着给你的body一个font-size:16px,作为一个例子,看看是否不会使文本以相同的大小显示。

此处更清楚的是一个链接,可帮助解释为什么我建议在body元素上使用像素大小,而该元素。 http://www.alistapart.com/articles/fluidgrids/

答案 2 :(得分:0)

在css文件行中,第1行显示

* { margin:0; padding:0; font-family:arial; }

替换为

* { margin:0; padding:0; font-family:arial; font-size: 1em; }

它会起作用!

答案 3 :(得分:-1)

如果您希望让每个浏览器使用其默认字体大小(可能适合该设备),则根本不要设置正文字体大小,也不要使用meta标记来防止缩放,就像现在一样

如果您认为“一刀切”是您的方式,那么设置字体大小(以像素或点为单位)(不同的方法),而不是尝试使用em单位实现这一目标。