做网页设计头七年,我见过太多新手死磕像素px,结果手机上一看全乱套。这篇文章不整那些虚头巴脑的理论,直接告诉你不同场景下该用啥单位,帮你省下熬夜调样式的时间。
刚入行那会儿,我也觉得px最稳,毕竟所见即所得嘛。那时候做PC端后台系统,用px简直爽歪歪,像素对齐强迫症福音。但后来移动端爆发,客户非要做自适应,我才发现px真是个坑。你想想,iPhone 6的屏幕宽375px,iPhone 14 Pro Max宽430px,你要用px写死宽度,小屏手机内容挤成一团,大屏两边又空出一大截,用户体验差得一批。
现在主流做法是rem和vw配合使用。rem相对于根元素字体大小,好处是全局可控。比如设计师给的设计稿是750px宽,你通常把html字体设为100px或者50px,这样1rem就等于100px或50px。写样式的时候,按钮宽度写3.75rem,不管屏幕怎么缩放,比例都保持住。不过rem有个毛病,如果用户手动改了浏览器字体大小,整个页面可能会跟着变形,这点得提前跟客户说清楚,免得扯皮。
em单位更灵活,但也更让人头大。它相对于父元素字体大小,嵌套多了就容易算晕。我有个朋友做电商首页,用em写间距,结果字体继承链稍微有点问题,整个页面间距忽大忽小,调试了一整天。除非你特别熟悉CSS继承规则,否则新手慎用em,容易把自己绕进去。
vw和vh是视口单位,vw是视口宽度的1%,vh是视口高度的1%。这两个单位特别适合做全屏背景或者响应式字体。比如你想让标题字体随屏幕宽度变化,可以直接写font-size: 5vw。但要注意,vw在极小或极大屏幕上可能会让字体过大或过小,通常建议配合clamp()函数使用,比如font-size: clamp(16px, 2vw, 24px),这样既有弹性又不会失控。
实际项目中,我一般这么搭配:PC端主要用px,因为屏幕分辨率相对固定,细节把控更重要;移动端主要用rem做布局,vw做字体大小。这样既保证了布局的稳定性,又兼顾了字体的响应式变化。当然,具体还得看项目需求,不能一刀切。
记得去年给一个做本地生活服务的客户建站,他们要求页面在各种手机上都要完美显示。我用了rem做主要布局,vw做标题字体,结果测试下来,从iPhone SE到iPad Pro,页面适配得相当不错。客户当时还挺惊讶,说没想到这么快就搞定了。其实没啥秘诀,就是选对单位,别瞎折腾。
还有个小技巧,别迷信任何单一单位。好的网页设计是多种单位混合使用的结果。比如图标用px保证清晰度,布局用rem保证比例,字体用vw保证响应。这样组合起来,页面才能既美观又实用。
最后想说,单位选择没有绝对的对错,只有适不适合。多尝试,多测试,找到最适合你项目的那套方案。别被那些专家的说法吓住,自己动手试试,你会发现其实没那么难。毕竟,代码是写给人看的,也是写给机器跑的,平衡好两者,你就赢了。