本週彙總 動態rem適配移動端/塊狀元素居中/透明度

一、動態rem適配移動端html

 !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代碼,就不須要作各類媒體查詢就能適配各類設備寬度。chrome

 

二、塊狀元素居中瀏覽器

 

上圖代碼顯示用絕對定位,top,left50%,而後負margin寬高的一半,light-height爲元素的高就能實現垂直居中。相信你們都知道,可是有個問題,若是元素的寬高變了,那咱們也要手動的去改margin。這裏有一個更方便的辦法,若是不考慮IE低版本的瀏覽器的狀況下,能夠用translate來實現,這樣不管元素怎麼變,都不會有影響。app

三、透明度ide

一個塊級元素你使用了opacity來作透明度的話,它會使子元素跟着也透明,即便子元素設置不透明。一樣的,上代碼字體

解決辦法是使用rgba來作透明度,它將不會影響其子元素(完美)!spa

四、display:inline-block 4像素問題code

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

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:htm

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;
}
相關文章
相關標籤/搜索