使用rem编写自适应屏幕网页造成div被span撑高的解决办法
原始代码:
<html> <head> <meta charset="utf-8"> <meta content="ie=edge" http-equiv="x-ua-compatible"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" /> </head> <style type="text/css"> #content{ width:7.2rem } .price-div{ background-color:yellow; } .price-div span{ background-color:green; } .price-unit{ font-size:0.25rem; } .price-number{ font-size:0.31rem; } </style> <body> <div id="content" style="float:left"> <div class="price-div" > <span class="price-unit">¥</span> <span class="price-number">42</span> </div> </div> <script type="text/javascript"> //计算字体大小 var calculateFontSize = function () { var BASE_FONT_SIZE = 100; var docEl = document.documentElement, clientWidth = docEl.clientWidth; if (!clientWidth) return; docEl.style.fontSize = BASE_FONT_SIZE * (clientWidth / 720) + 'px'; }; calculateFontSize(); // Abort if browser does not support addEventListener if (document.addEventListener) { var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; window.addEventListener(resizeEvt, calculateFontSize, false); document.addEventListener('DOMContentLoaded', calculateFontSize, false); } </script> </body> </html>
效果:
原因:
rem缩放,导致,去掉缩放的js代码就好了。但这个不是解决办法。
解决方法一:
div设置高度并采用相对定位,span采用绝对定位。
<style type="text/css"> #content{ width:7.2rem } .price-div{ background-color:yellow; height:0.4rem; line-height:0.4rem; position:relative; } .price-div span{ background-color:green; } .price-unit{ font-size:0.25rem; position:absolute; top:0rem; left:0.2rem; } .price-number{ font-size:0.31rem; position:absolute; top:0rem; left:0.5rem; } </style>
效果:
解决方法二:
div设置高度,span等内联元素设置vertical-align为top。
<style type="text/css"> #content{ width:7.2rem } .price-div{ background-color:yellow; height:0.4rem; line-height:0.4rem; } .price-div span{ background-color:green; } .price-unit{ font-size:0.25rem; vertical-align:top; } .price-number{ font-size:0.31rem; vertical-align:top; } </style>
效果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库