如何使用 EM 和百分比进行响应式设计?

How to use EMs and percentages for responsive design?

我终于开始学习响应式设计了,我需要了解 em 和百分比度量单位的最佳实践。如果我将 body 的 font-size 设置为 10px,我会 运行 在声明所有字体大小为 em (1em = 10px, 2.5em = 25px, ETC。)?

此外,什么时候使用 em 单位与百分比比较合适? em 单位主要用于排版,然后百分比将用于大小、边距、填充等?

我喜欢这样的想法,即我可以通过更改正文字体大小在媒体查询中按比例缩放字体大小,但我认为我不希望我的布局和间距根据文本大小移动 (或者我呢?)。

好的,首先如果你想使用响应式设计,我强烈建议你使用像bootstrap或fondation这样的框架来进行响应式设计。你在这方面似乎是新手,响应度是一堆 css 和大多数复杂情况的预处理器。

但是,为了回答您的问题,在大多数情况下我们不会在媒体查询中调整字体大小。以 rem 为例子设置你的字体。因此,您必须在许多设备上测试您的响应能力。通过布局,您可能是指 divs。最佳做法是 viweport vw(宽度)和 vh(高度),除非您想要在另一个元素内进行比例测量。在这种情况下,请使用 %。 Rem 比 em 好,因为它是根 em。 html 中定义的字体的真实大小。当设备上的屏幕变得太小时,您必须折叠您的菜单,并且您网站上的文本必须以 div 的形式下降。我可以继续这样一段时间,但就像我说的,使用框架,更快的学习和更快的开发。大多数像我这样的开发者都为他们的客户使用框架。

最佳做法是让浏览器的字体大小设置影响您的设计——避免以像素为单位设置正文的 font-size

rem 单位非常适合确保所有内容都与浏览器字体大小成比例。 em 单位是根据父元素的字体大小计算的,因此当元素嵌套时使用它们会变得更加棘手。 rem 总是相对于 html 元素(根元素)的字体大小。如果您假设 1rem = 16px 并构建与之相关的所有内容,那么即使用户将浏览器设置为 1rem = 20px,例如,整个设计也会相应地放大。

对于响应式设计,最佳做法是在内容开始变得不可用的屏幕宽度(而不是基于流行设备的任意宽度)定义媒体查询 "breakpoints"。当您的整个网站因浏览器的字体大小变化而放大或缩小时,您会希望断点也遵循该字体大小。但是,由于 Safari 对待 rem 媒体查询的方式与其他浏览器不同,因此它是 best to use em for media queries