自适应设计中巧妙解决高度调整难题
在响应式设计中,高度调整常常引发界面错位问题。尤其当设计稿尺寸(例如1920×1080像素)与浏览器实际可视高度不符时,如何保持界面布局完整性至关重要。
例如,使用rem单位进行布局时,设定的body字体大小为100px,一个div高度为1rem,预期高度为100px。但浏览器顶部工具栏会占用部分高度,导致实际可视高度小于设计稿高度,最终出现错位。
以下提供一种改进方案。现有自适应代码主要通过调整body的font-size来实现,代码如下:
export const selfAdapter = () => { //页面初始化,针对屏幕不是1920*1080的页面尺寸 let designSize = 1920; // 设计图尺寸 let html = document.documentElement; let wW = html.clientWidth; // 窗口宽度 let rem = (wW * 100) / designSize; document.documentElement.style.fontSize = rem + "px"; const resize = () => { let designSize = 1920; // 设计图尺寸 let html = document.documentElement; let wW = html.clientWidth; // 窗口宽度 let rem = (wW * 100) / designSize; document.documentElement.style.fontSize = rem + "px"; }; window.addEventListener("resize", resize, false); };
该代码仅基于窗口宽度计算rem值,忽略了高度变化的影响。 改进的关键在于,将计算rem值的依据调整为窗口高度或可视高度。 通过监测窗口高度变化,动态调整rem值,从而更精确地匹配实际可视区域高度,避免界面错位。 可以考虑使用window.innerHeight获取浏览器窗口的可视高度,并将其用于rem值的计算。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END