熟能生巧
简短的回答是...开始练习使用基于百分比的单位,因为这就是您学习小技巧的方法。无论如何,这是一个很好的职业发展方向,因为将像素与设计相匹配的想法很久以前就被 HiDPI 屏幕、移动设备等以不同方式呈现像素的想法打破了。
开始
实际上,您需要一个起点,这意味着学习一些新的 CSS 工具。
首先
使用rem 代替像素。
与相对于其父字体大小的em 不同,Rem 相对于根元素(通常为body)的font-size,这意味着它的全局。您可以在任何地方使用 rems(字体大小、边距、填充、位置等),它们都基于根大小。
假设根字体大小为 16 像素(典型的浏览器默认值)。这意味着1rem = 16px。现在,当您在脑海中进行数学运算时,16 像素的底数并不太有用。 Jonathan Snook 几年前写过关于 why this works 的文章,但基本公式将基本字体大小设置为 62.5%(16 像素),这意味着 1rem = 10px 更容易计算。
这是代码中的样子:
body {
font-size: 62.5%;
}
h1 {
font-size: 2.4rem;
/* 2.4rem = 24px */
}
p {
font-size: 1.2rem;
/* 1.2rem = 12px */
}
.padding-left {
padding-left: 2rem;
/* 2rem = 20px */
}
你懂的……
有趣的提示:一旦你喜欢布局,你就可以改变正文的字体大小,让一切变得更大或更小。这对于您希望字体更大一点的小屏幕之类的东西很有用
下一步
CSS Calc()是你的朋友。它旨在帮助您对混合单位值进行数学运算。例如,浏览器可以进行这种类型的数学运算:33.33% - 200px。
.element {
width: calc(33.33% - 20px);
/* maybe you need responsive columns with 10 px of padding on either side */
}
终于
开始以百分比进行所有布局。例如,而不是将 3 列布局设置为 300px 宽(不响应)。您应该将它们设为100/3 or 33.3333333% 宽。像这样的百分比总是基于父级,所以100% = parent's width(不管父级的单位)。
作为旁注,我很少需要使用vh/vw,不是因为它们没有用,而是一般来说,元素以非常可预测的方式溢出它们的窗口,并且百分比更容易让你理解。