网站设计常用单位:px,%,rem,vh,vw有什么区别以及如何选择?

在网站设计中,选择合适的单位对于元素的尺寸、位置和间距等属性的设置至关重要。不同的单位有着各自的特点和适用场景,理解它们之间的区别能帮助我们更有效地进行网页布局和适配。本文将详细介绍五种常用的单位:像素(px)、百分比(%)、根em(rem)、视口高度(vh)、视口宽度(vw),并探讨它们的优缺点及使用方法。

像素(px):绝对单位

像素是网站设计中的基本单位,代表屏幕上的一个点。作为绝对单位,px不会因屏幕大小、分辨率或字体设置的变化而改变。使用px能确保元素在不同设备上的一致性,但也可能导致元素过大或过小,影响用户体验。

例如,一个宽度为100px的元素,在所有设备上都会显示为100个像素的宽度。在高分辨率屏幕上可能显得较小,而在低分辨率屏幕上则可能显得较大。

百分比(%):相对单位

百分比是基于父元素或参照物尺寸的相对单位。它会根据屏幕大小、分辨率或字体设置的变化而调整。使用%可以确保元素适应不同设备的屏幕宽度,但可能导致元素失去原有的比例和形状。

例如,一个宽度为50%的元素,将占据其父元素宽度的一半。若父元素的宽度发生变化,该元素的宽度也会相应变化。

根em(rem):相对单位

根em是相对于根元素(html)字体大小的单位。作为动态单位,rem会随着根元素字体大小的变化而变化。使用rem可以保持不同设备上元素的字体比例一致,但也可能影响元素的尺寸和布局效果。

例如,若根元素字体大小为16px,则1rem等于16px。一个宽度为2rem的元素,在任何设备上都将显示为32px。若根元素字体大小发生变化,该元素的宽度也会相应变化。

这种单位在移动端开发中比较常见,可以通过js控制根元素(或者用@media)来达到适配各种分辨率的字体大小的效果。

视口高度(vh):相对单位

vh是相对于视口(浏览器窗口中显示网页内容的区域)高度的百分比单位。它是动态的,会随视口高度的变化而变化。使用vh可以确保元素在不同设备上占据视口高度的一定比例,但可能会改变元素的高度和形状。

例如,一个高度为50vh的元素,将占据视口高度的一半。若视口高度发生变化,该元素的高度也会相应变化。

视口宽度(vw):相对单位

vw是相对于视口宽度的百分比单位。与vh类似,它是动态的,会随视口宽度的变化而变化。使用vw可以确保元素在不同设备上占据视口宽度的一定比例,但可能会改变元素的宽度。

例如,一个宽度为50vw的元素,将占据视口宽度的一半。若视口宽度发生变化,该元素的宽度也会相应变化。

扩展

1、页面自适应缩放代码

页面基准750px,html font-size值的计算JavaScript代码:

[pre]

(function(doc, win) {
var htmlFont = function() {
var docEl = doc.documentElement,
l = docEl.clientWidth,
f;
f = l / 7.5;
l > 750 ? docEl.style.fontSize = 100 + “px” : docEl.style.fontSize = f + “px”
};
htmlFont();
win.addEventListener(“resize”, htmlFont, false)
})(document, window);

[/pre]

注:把这段 原生JS 放到 HTML 的 head 标签中即可(需设置meta缩放比1:1)

[pre]<meta name=”viewport” content=”width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no” />[/pre]

2、高清版

和上面一下还是把这段 原生JS 放到 HTML 的 head 标签中即可(注:不要手动设置viewport,该方案自动帮你设置,通过修改viewport  属性放大缩小 initial-scale)

[pre]

!function(e){function t(a){if(i[a])return i[a].exports;var n=i[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p=””,t(0)}([function(e,t){“use strict”;Object.defineProperty(t,”__esModule”,{value:!0});var i=window;t[“default”]=i.flex=function(e,t){var a=e||100,n=t||1,r=i.document,o=navigator.userAgent,d=o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),l=o.match(/U3\/((\d+|\.){5,})/i),c=l&&parseInt(l[1].split(“.”).join(“”),10)>=80,p=navigator.appVersion.match(/(iphone|ipad|ipod)/gi),s=i.devicePixelRatio||1;p||d&&d[1]>534||c||(s=1);var u=1/s,m=r.querySelector(‘meta[name=”viewport”]’);m||(m=r.createElement(“meta”),m.setAttribute(“name”,”viewport”),r.head.appendChild(m)),m.setAttribute(“content”,”width=device-width,user-scalable=no,initial-scale=”+u+”,maximum-scale=”+u+”,minimum-scale=”+u),r.documentElement.style.fontSize=a/2*s*n+”px”},e.exports=t[“default”]}]);  flex(100, 1);

[/pre]

这是阿里团队的高清方案布局代码,所谓高清方案就是根据设备屏幕的DPR(设备像素比,又称DPPX,比如dpr=2时,表示1个CSS像素由4个物理像素点组成) 动态设置 html 的font-size, 同时根据设备DPR调整页面的缩放值,进而达到高清效果。

3、zoom缩放

[pre]function bodyScale() {
var devicewidth = document.documentElement.clientWidth;
var scale = devicewidth / 1920; // 设计稿的尺寸宽度
document.body.style.zoom = scale;
}
window.onload = window.onresize = function () {
bodyScale();
};[/pre]

设置设计稿的宽度,通过识别当前屏幕宽度对页面整体进行zoom缩放,这种腾讯的落地页用的比较多。

总结

px、%、rem、vh和vw是网站设计中常用的单位,每个都有其优势和局限性。选择合适的单位应基于设计需求和预期效果:

  • 对于需要在不同设备上保持一致效果的元素,使用px。
  • 对于需要适应屏幕宽度的元素,使用%。
  • 对于需要保持字体比例一致的元素,使用rem。
  • 对于需要占据视口高度一定比例的元素,使用vh。
  • 对于需要占据视口宽度一定比例的元素,使用vw。

当然,这些原则并非一成不变,我们可以根据具体需求和设计目标灵活组合使用这些单位,以实现更佳的网页布局和适配效果。

暂无介绍....

延伸阅读:

一年有效期SSL证书怎么申请?——为何选择Sectigo证书进行网站安全加密

随着互联网的快速发展,网络安全问题日益凸显。为了保障网站数据传输的安全性,越来越多的网站开始采用SSL证书进行加密。本文...

会飞的鱼
2024 年 7 月 11 日
免费SSL证书有哪些?Sectigo品牌证书和免费的区别

在当今的数字时代,网络安全已经成为企业和个人用户关注的焦点。随着数据泄露和网络攻击事件的频发,SSL证书作为保护网站数据...

会飞的鱼
2024 年 7 月 11 日
Sectigo国际品牌SSL加密证书:守护您的网络安全,让信任无处不在

在数字化时代,网络安全问题日益突出,数据泄露、网站被黑等事件频发,给企业带来了巨大的经济损失和信誉危机。为了确保您的网站...

会飞的鱼
2024 年 7 月 8 日
网站设计常用单位:px,%,rem,vh,vw有什么区别以及如何选择?

在网站设计中,选择合适的单位对于元素的尺寸、位置和间距等属性的设置至关重要。不同的单位有着各自的特点和适用场景,理解它们...

会飞的鱼
2024 年 7 月 2 日
武汉建设一个企业官网需要多少钱?

现如今企业建网站,除了对网站的功能、美观性以及服务考核外,更注重网站建设费用预算的控制。很多企业在制作网站前都会考虑这个...

会飞的鱼
2024 年 5 月 12 日