网页内容宽度自适应
Contents
一个良好的自适应体验应当保证页面不应有跳变,网页首要的元素是主要内容的位置和大小,计算页面的内容宽度,给出 CSS 和 TailwindCSS 代码。
简单宽度
单纯将内容控制在范围内,并且自适应最简单的方式就是将容器的宽度设置为百分比,如 width: 80%;,这似乎不错,再加上控制最大值的 max-width: 1200px; 似乎也有不错的效果,追求简洁高效,这样设置也不失一个办法。
实现不同宽度不同占比的一般做法是使用媒体查询,常见的媒体查询断点为:
- 像素为单位:
640px768px1024px1280px1536px - 字号为单位:
40rem48rem64rem80rem96rem - TailwindCSS 端点名称:
smmdlgxl2xl
方案
猫猫喜欢让内容能够尽量占据整个页面,这是猫猫感觉最好的方案:
| 断点 | rem | px | 百分比 | 理论最小 | 理论最大 | min-width |
|---|---|---|---|---|---|---|
| - | - | - | 0.95 | 0 | 38 | - |
| sm | 40 | 640 | 0.95 | 38 | 45.6 | 38 |
| md | 48 | 768 | 0.91 | 43.68 | 58.24 | 45.6 |
| lg | 64 | 1024 | 0.88 | 56.32 | 70.4 | 58.24 |
| xl | 80 | 1280 | 0.86 | 68.8 | 82.56 | 70.4 |
| 2xl | 96 | 1536 | 0.85 | 81.6 | - | 82.56 |
猫猫不喜欢网页留有太多空白,当内容太宽时,说明需要调整整个窗口,留出位置来给其他应用程序,而不是留出无意义的 margin 空白,所以即使宽度超过 1280,空白也仅有 15%。 这样做还有另一个好处:在高清小屏设备上,也能不浪费空间,以 1440P 屏幕为例,在不用便携设备优化的情况下内容也能占据大部分。
同时在小尺寸窗口上,内容可以占满窗口,一方面暗示空间不够用,另一方面也能为其他窗口挤出空间。
最后,这份方案在常用窗口宽度表现很好(猫猫叉腰):
- 1920 (1080P 横屏全屏): 1632 (85%)
- 1600 (900P 横屏全屏): 1360 (85%)
- 1280 (1440P 横屏半屏): 1238.4 (86%)
- 1080 (1080P 竖屏全屏): 950.4 (88%)
- 960 (1080P 横屏半屏): 873.6 (91%)
- 720 (720P 竖屏全屏): 684 (95%)
代码
CSS
| |
TailwindCSS
| |