美文网首页
宽度自适应

宽度自适应

作者: 他在发呆 | 来源:发表于2017-06-04 22:27 被阅读0次
    父元素  {
        width: 100%;
    }
    
    方法一
    子元素左浮动
    
    方法二
    display: flex;
    
    实现根据屏幕宽度变化字体大小和盒子变化,使用rem;
    

    保真问题:

    如果你们设计稿标准是iphone5,那么拿到设计稿的时候一定会发现,完全不能按照高保真上的标注来写css,而是将各个值取半,这是因为移动设备分辨率不一样。设计师们是在真实的iphone5机器上做的标注,而iphone5系列的分辨率是640,实际上我们在开发只需要按照320的标准来。为了节省时间,不至于每次都需要将标注取半,我们可以将整个网页缩放比例,模拟提高分辨率。这个做法很简单,为不同的设备设置不同的meta即可:

    var scale = 1 / devicePixelRatio;
    document.querySelector('meta[name="viewport"]').setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
    解决安卓下1px像素看起来过粗的问题
    

    针对屏幕变化大小

    假如用户开启了转屏设置,在网页加载之后改变了屏幕的宽度,那么监听屏幕的变化就可以做到动态切换元素样式:

    window.onresize = _.debounce(function() {
          var deviceWidth = document.documentElement.clientWidth > 1300 ? 1300 : document.documentElement.clientWidth;
          document.documentElement.style.fontSize = (deviceWidth / 6.4) + 'px';
    }, 50);
    

    使用媒体查询设置根元素字体大小

    优点,就是无需监听浏览器的窗口变化,它会跟随屏幕动态变化。
    @media screen and (device-width: 640px) { /*iphone4/iphon5*/
          html {
            font-size: 100px;
          }
        }
    @media screen and (device-width: 750px) { /*iphone6*/
          html {
            font-size: 117.188px;
          }
        }
    @media screen and (device-width: 1240px) { /*iphone6s*/
          html {
            font-size: 194.063px;
          }
        }
    

    相关文章

      网友评论

          本文标题:宽度自适应

          本文链接:https://www.haomeiwen.com/subject/vzybfxtx.html