CSS - 这种情况最好使用什么(px、%、vw、wh 或 em)?
CSS - What is best to use for this case (px, %, vw, wh or em)?
我正在使用 Ionic 2 开发应用程序,我需要预览不同尺寸的应用程序。
目前,我使用的是vw
所有尺寸,包括font-size
、padding
等,但在调整字体大小时有时会变得有点小,有时甚至文本不可读。
因此,我想知道在这种情况下最好使用什么:
px
%
vw
wh
em
或者我是否还需要使用 @media
并支持不同的字体大小?
有什么想法吗?
w3schools.com 对 css 单位有一个很好的总结。
我自己总是使用 em。为什么?
首先,em是相对于你的font-size
而言的。因此,正如 w3school 所说,2em
将是您在 父容器 中定义的 font-size
的 2 倍 。所以你可以为你的 html
标签定义一个特定的 font-size
并使用你想要的任何 em 来处理各种任务的相对 font-sizes
。
此外,em 几乎包含在所有浏览器中。
至少,您可以使用 @media-queries
来处理移动设备的响应式 font-size
处理。因此,您可以考虑使用 @media-queries
与相对 font-size
结合使用 em.
这可能会被关闭,但我喜欢使用 em 单位,因为它们具有很强的可扩展性,尤其是在移动浏览器中,据说,我确实将媒体查询与它们一起使用。我真的取决于你在做什么。
一个好的网站可能由几个 em 和几个 px 的比率组成,所以无论您的最终目标是什么,都应该决定您将使用哪个,
如果你
了解每个应用程序,您将能够最终选择您更喜欢的应用程序。 W3Schools 和 W3code 都有关于它们的好文章...
请注意,我只提到了您询问的那些。
在这里您可以看到 CSS 测量单位的完整列表:CSS Units in W3Schools
与其告诉你哪一个是 "right one",我更希望你了解每一个到底是什么。
像素 (px
): 绝对像素。因此,例如,20px
在任何屏幕上实际上都是 20 像素。如果显示器的分辨率为 1980x1200,并且您将元素的高度设置为 200px
,则该元素将占用 200 像素。
百分比 (%
): 相对于父值。
所以对于这个例子:
<div style="width: 200px;">
<div style="width: 50%;"></div>
</div>
内部 div 的宽度为 100 像素。
Viewport height/width (vw
/vh
): 相对于视口的大小(基本上是浏览器window) .
示例:
.myDiv {
width: 100vw;
height: 100vh;
background-color: red;
}
将用红色覆盖整个浏览器。这在 flexboxes 中很常见,因为它具有自然响应性。
Emeters (em
) 和 Root Emeters (rem
): em
是相对于父元素的字体大小。 rem
将相对于 html
字体大小(主要是 16 像素)。如果您想在项目上保留 "in mind relativity of sizes" 并且不使用 Sass 和 Less 等预处理器的变量,这将非常有用。我想只是更简单、更直观。
示例:
.myDiv {
font-size: 0.5rem;
}
字体大小将为 8 像素。
现在你知道了,为正确的目的选择正确的。
我正在使用 Ionic 2 开发应用程序,我需要预览不同尺寸的应用程序。
目前,我使用的是vw
所有尺寸,包括font-size
、padding
等,但在调整字体大小时有时会变得有点小,有时甚至文本不可读。
因此,我想知道在这种情况下最好使用什么:
px
%
vw
wh
em
或者我是否还需要使用 @media
并支持不同的字体大小?
有什么想法吗?
w3schools.com 对 css 单位有一个很好的总结。
我自己总是使用 em。为什么?
首先,em是相对于你的font-size
而言的。因此,正如 w3school 所说,2em
将是您在 父容器 中定义的 font-size
的 2 倍 。所以你可以为你的 html
标签定义一个特定的 font-size
并使用你想要的任何 em 来处理各种任务的相对 font-sizes
。
此外,em 几乎包含在所有浏览器中。
至少,您可以使用 @media-queries
来处理移动设备的响应式 font-size
处理。因此,您可以考虑使用 @media-queries
与相对 font-size
结合使用 em.
这可能会被关闭,但我喜欢使用 em 单位,因为它们具有很强的可扩展性,尤其是在移动浏览器中,据说,我确实将媒体查询与它们一起使用。我真的取决于你在做什么。
一个好的网站可能由几个 em 和几个 px 的比率组成,所以无论您的最终目标是什么,都应该决定您将使用哪个,
如果你 了解每个应用程序,您将能够最终选择您更喜欢的应用程序。 W3Schools 和 W3code 都有关于它们的好文章...
请注意,我只提到了您询问的那些。
在这里您可以看到 CSS 测量单位的完整列表:CSS Units in W3Schools
与其告诉你哪一个是 "right one",我更希望你了解每一个到底是什么。
像素 (px
): 绝对像素。因此,例如,20px
在任何屏幕上实际上都是 20 像素。如果显示器的分辨率为 1980x1200,并且您将元素的高度设置为 200px
,则该元素将占用 200 像素。
百分比 (%
): 相对于父值。
所以对于这个例子:
<div style="width: 200px;">
<div style="width: 50%;"></div>
</div>
内部 div 的宽度为 100 像素。
Viewport height/width (vw
/vh
): 相对于视口的大小(基本上是浏览器window) .
示例:
.myDiv {
width: 100vw;
height: 100vh;
background-color: red;
}
将用红色覆盖整个浏览器。这在 flexboxes 中很常见,因为它具有自然响应性。
Emeters (em
) 和 Root Emeters (rem
): em
是相对于父元素的字体大小。 rem
将相对于 html
字体大小(主要是 16 像素)。如果您想在项目上保留 "in mind relativity of sizes" 并且不使用 Sass 和 Less 等预处理器的变量,这将非常有用。我想只是更简单、更直观。
示例:
.myDiv {
font-size: 0.5rem;
}
字体大小将为 8 像素。
现在你知道了,为正确的目的选择正确的。