跨平台CSS

3

我想知道CSS在不同的操作系统中是否会有不同的表现。对于同一版本的浏览器,我的CSS在Vista和Win XP Professional上的表现略有不同。我在Vista + IE8和XP + IE8上测试了我的应用程序。它的表现略有不同。

7个回答

4

官方上讲,使用同一浏览器在不同操作系统中(例如在Windows、MacOS或Linux上使用FireFox 3),CSS的行为不应该发生变化。宽度和浮动的计算是由浏览器而非操作系统进行的。然而,有些因素会导致网站在另一个操作系统中看起来略有不同。

其中一个问题是字体支持。如果您使用一些仅在Windows平台上可用的字体(或者通常仅在安装某个特定应用程序时才可用),浏览器将使用另一种字体,这可能会导致一些渲染差异。我甚至能想象到,相同字体在Linux和Windows中可能大小略有不同。

另一个问题是表单元素(如文本框和下拉框)。这些对于每个操作系统都是不同的,特别是下拉框在各种操作系统中可能有不同的行为(下拉部分的大小可能不同,文本框有时具有“3D”边框,有时只有一条线)。即使在XP中从XP样式(蓝/绿/灰色)切换到经典样式(老派灰色版本),您也会注意到这些差异,下拉字段的样式将不同(如果您正在将它们与其他元素对齐,您将看到大小的变化)。但大多数情况下,这些差异仅有几个像素,并且通常不会被用户注意到,但对于设计师/开发人员来说可能有点烦人。


3

您看到了什么变化?由于操作系统主题的影响,可能会有一些细微的差异 - 例如按钮、下拉菜单和滚动条的样式/大小可能会不同。

即使在XP中更改主题(经典与XP外观),您也可以观察到一些差异。


3

有一些东西可能会跨平台改变:

字体
Windows的“核心字体”应该是跨平台的,但大多数默认的Linux安装中并不包含它们。此外,在我的Ubuntu上,Firefox中的10pt字体不能像其他浏览器一样以13px显示,它稍微大一点。有些字体的行高也可能不同。

表单小部件
按钮、文本框、文本区域、字段集和下拉列表在不同的浏览器和平台上都是不同的。例如,Opera使用自己的Vista-esque控件皮肤,每个皮肤都不同。Chrome似乎也使用了自己的东西。

屏幕分辨率
如果设计是流式的,像维基百科一样,你将得到非常长的文本行,这可能会很难阅读。

硬件
用户的硬件也可能导致颜色或其他图形异常的改变。


1

CSS是平台独立的。但是,它依赖于浏览器。不同的浏览器可能会以不同的方式实现CSS,但是在相同的浏览器下的不同平台将不会显示任何变化。如果您能在这里发布您的CSS,那么我们就可以进行调试。当然,由于主题的原因,元素之间可能会有轻微差异。


2
因此,您不能说它是平台无关的。 - rahul
你可以说它是跨平台的。CSS 被设置为一种平台和浏览器无关的语言。然而,一些浏览器在某些 CSS 标准的标准和解释方面存在分歧。渲染之间的差异很可能是浏览器中的错误或标准的误解。CSS 没有破坏独立性,但各种浏览器却做到了。 - Gertjan

1

从一个系统到另一个系统有许多可能不同的事情。即使是具有相同操作系统和浏览器的两个系统之间也可能存在差异。

CSS本身是一种独立的标准,不会改变。然而,并非所有浏览器都以相同方式解释CSS,而且CSS标准并没有涵盖页面呈现的每个方面。此外,CSS涵盖了如何解释正确代码的内容,但如果您的代码有错误,那么每个浏览器将尽力进行解释。

特别是文本呈现可能会有很大的差异,因为有许多控制它的因素。像安装的字体、选择的平滑算法和用户大小设置等因素决定了文本的绘制方式。同一字体有不同版本,因此例如在XP和Vista上的Arial字体不必完全相同,因为可能已经重新设计了字距规则和字体平滑提示等细节。

某些页面元素(如按钮、表单字段和滑块)可以从操作系统和系统中的用户设置继承其外观和大小,因此它们可能看起来不同。


0

是的,它可能会改变。

元素样式在操作系统不同的视觉风格[主题]中可能会呈现不同的渲染效果。

例如:

在某些主题中,fieldset 的边角会是圆角,而在其他主题中则不会。


我给你的回答点了踩,因为它只有一句话 - “是的。可能会改变。” 现在看到你已经编辑过了,我把它改回来了。但是,如果你的回答还是不完整的,为什么要发布呢? - Chetan S
它并不是不完整的。对于问题“CSS行为是否随操作系统变化”,那就是一个完整的答案。我稍微阐述了一下以增加清晰度。 - rahul

0
我在不同的操作系统中遇到的问题是: 1. 固定宽度的文本在 Vista 中会分成两行,而在 XP 中会在同一行显示。 我面临的另一个主要问题是,在 Vista + IE8 中出现了部分设计失真的问题,而在 XP + IE8 中渲染正常。为了使我的应用程序与 IE8 兼容,我使用了
标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接