资讯专栏INFORMATION COLUMN

使用rem编写自适应屏幕网页造成div被span撑高的解决办法

番茄西红柿 / 1283人阅读

摘要:原始代码计算字体大小效果原因缩放,导致,去掉缩放的代码就好了。但这个不是解决办法。解决方法一设置高度并采用相对定位采用绝对定位。

原始代码:

</>复制代码

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <meta content="ie=edge" http-equiv="x-ua-compatible">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
  6. head>
  7. <style type="text/css">
  8. #content{
  9. width:7.2rem
  10. }
  11. .price-div{
  12. background-color:yellow;
  13. }
  14. .price-div span{
  15. background-color:green;
  16. }
  17. .price-unit{
  18. font-size:0.25rem;
  19. }
  20. .price-number{
  21. font-size:0.31rem;
  22. }
  23. style>
  24. <body>
  25. <div id="content" style="float:left">
  26. <div class="price-div" >
  27. <span class="price-unit">span>
  28. <span class="price-number">42span>
  29. div>
  30. div>
  31. <script type="text/javascript">
  32. //计算字体大小
  33. var calculateFontSize = function () {
  34. var BASE_FONT_SIZE = 100;
  35. var docEl = document.documentElement,
  36. clientWidth = docEl.clientWidth;
  37. if (!clientWidth) return;
  38. docEl.style.fontSize = BASE_FONT_SIZE * (clientWidth / 720) + px;
  39. };
  40. calculateFontSize();
  41. // Abort if browser does not support addEventListener
  42. if (document.addEventListener) {
  43. var resizeEvt = orientationchange in window ? orientationchange : resize;
  44. window.addEventListener(resizeEvt, calculateFontSize, false);
  45. document.addEventListener(DOMContentLoaded, calculateFontSize, false);
  46. }
  47. script>
  48. body>
  49. html>

 

效果:

 

原因:

rem缩放,导致,去掉缩放的js代码就好了。但这个不是解决办法。

 

解决方法一:

div设置高度并采用相对定位,span采用绝对定位。

</>复制代码

  1. <style type="text/css">
  2. #content{
  3. width:7.2rem
  4. }
  5. .price-div{
  6. background-color:yellow;
  7. height:0.4rem;
  8. line-height:0.4rem;
  9. position:relative;
  10. }
  11. .price-div span{
  12. background-color:green;
  13. }
  14. .price-unit{
  15. font-size:0.25rem;
  16. position:absolute;
  17. top:0rem;
  18. left:0.2rem;
  19. }
  20. .price-number{
  21. font-size:0.31rem;
  22. position:absolute;
  23. top:0rem;
  24. left:0.5rem;
  25. }
  26. style>

效果:

 

解决方法二:

div设置高度,span等内联元素设置vertical-align为top。

</>复制代码

  1. <style type="text/css">
  2. #content{
  3. width:7.2rem
  4. }
  5. .price-div{
  6. background-color:yellow;
  7. height:0.4rem;
  8. line-height:0.4rem;
  9. }
  10. .price-div span{
  11. background-color:green;
  12. }
  13. .price-unit{
  14. font-size:0.25rem;
  15. vertical-align:top;
  16. }
  17. .price-number{
  18. font-size:0.31rem;
  19. vertical-align:top;
  20. }
  21. style>

效果:

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/1665.html

相关文章

  • 构建适应的手机页面

    摘要:从事开发好多年,但是手机页面开发较晚,所以最开始的时候,为了做微信应用的开发,各种饿补,但是为了将设计稿精准的适配在各种尺寸的手机上还是太坑,所以找了些资料后,借鉴了一些成熟的网站,分享出来,欢迎拍砖。 从事PC Web开发好多年,但是手机页面开发较晚,所以最开始的时候,为了做微信应用的开发,各种饿补,但是为了将设计稿精准的适配在各种尺寸的手机上还是太坑,所以找了些资料后,借鉴了一些成...

    itvincent 评论0 收藏0
  • 浅谈web适应

    摘要:本篇文章分享了一些处理多屏幕自适应的经验,希望有益于各位。该宽度自适应在新的时代有了新的方法,随着弹性布局的普及,它经常被的伸缩性布局方式替代,变得越来越弹性十足。 转自:http://www.cnblogs.com/consta... 前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和...

    kid143 评论0 收藏0
  • 浅谈web适应

    摘要:本篇文章分享了一些处理多屏幕自适应的经验,希望有益于各位。该宽度自适应在新的时代有了新的方法,随着弹性布局的普及,它经常被的伸缩性布局方式替代,变得越来越弹性十足。 转自:http://www.cnblogs.com/consta... 前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和...

    dack 评论0 收藏0
  • 浅谈web适应

    摘要:本篇文章分享了一些处理多屏幕自适应的经验,希望有益于各位。该宽度自适应在新的时代有了新的方法,随着弹性布局的普及,它经常被的伸缩性布局方式替代,变得越来越弹性十足。 转自:http://www.cnblogs.com/consta... 前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和...

    sshe 评论0 收藏0
  • CSS9:动态 REM-手机专用的适应方案

    摘要:一定要强制自己用命令行,强制自己学英语,强制自己看文档。只有这三条都做了,才有可能成为前端水平的程序员。设计师的设计稿宽度需要统一那么相应得,这时会将自动变成宽度为的情况下这样就无需在手动换算的值了。 CSS9:动态 REM-手机专用的自适应方案 动态 REM是手机专用,是如何适配所有手机的方案,不是响应式方案,例如 : taobao.com 是专门的PC端m.taobao.com 是...

    ityouknow 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<