zoukankan      html  css  js  c++  java
  • 本周汇总 动态rem适配移动端/块状元素居中/透明度

    1、动态rem适配移动端

     !function(){
          var width = document.documentElement.clientWidth;
          var head=document.getElementsByTagName("head")[0];
          var style=document.createElement("style");
          style.innerHTML="html{font-size:"+width/10+"px;}";
          head.appendChild(style);
     }()

    width/10是为了保证10rem占宽满屏,不除的话,1rem就等于屏幕宽度了。然后我们只需要动态加上上面的js代码,就不需要做各种媒体查询就能适配各种设备宽度。

    2、块状元素居中

    上图代码显示用绝对定位,top,left50%,然后负margin宽高的一半,light-height为元素的高就能实现垂直居中。相信大家都知道,但是有个问题,如果元素的宽高变了,那我们也要手动的去改margin。这里有一个更方便的办法,如果不考虑IE低版本的浏览器的情况下,可以用translate来实现,这样无论元素怎么变,都不会有影响。

    3、透明度

    一个块级元素你使用了opacity来做透明度的话,它会使子元素跟着也透明,即使子元素设置不透明。同样的,上代码

    解决办法是使用rgba来做透明度,它将不会影响其子元素(完美)!

    4、display:inline-block 4像素问题

    (chrome 下是8像素)父元素 加 font-size:0,子元素设置font-size:N px;

    ul {
      list-style: none outside none;
      padding: 10px;
      text-align: center;
      font-size: 0px;
        }
    ul li {
      display: inline-block;
      *display: inline;
      zoom: 1;
      padding: 5px;
      font-size: 12px;
    }

    这种方法不兼容Safari,在父元素中设置font-size:0,用来兼容chrome,而使用letter-space:-N px来兼容safari:

    ul {
      letter-spacing: -4px;/*根据不同字体字号或许需要做一定的调整*/
      word-spacing: -4px;
      font-size: 0;
    }
    ul li {
      font-size: 16px;
      letter-spacing: normal;
      word-spacing: normal;
      display:inline-block;
      *display: inline;
      zoom:1;
    }
  • 相关阅读:
    Unity Shader 之 uv动画
    c++源文件后缀名问题
    Unity Shader 之 透明效果
    正则表达式
    Unity Shader基础
    Unity Shader 之 渲染流水线
    2017/11/22 Leetcode 日记
    2017/11/21 Leetcode 日记
    2017/11/13 Leetcode 日记
    2017/11/20 Leetcode 日记
  • 原文地址:https://www.cnblogs.com/futai/p/5576624.html
Copyright © 2011-2022 走看看