原始代碼:javascript
<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>
效果:css
緣由:html
rem縮放,致使,去掉縮放的js代碼就行了。但這個不是解決辦法。java
解決方法一:字體
div設置高度並採用相對定位,span採用絕對定位。ui
<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>
效果:spa
解決方法二:scala
div設置高度,span等內聯元素設置vertical-align爲top。code
<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>
效果:htm