zoukankan      html  css  js  c++  java
  • REM响应式布局

    为什么么要响应式?

    因为能兼容,手机、平板、PC终端既省钱又省力;

    有很多网站的解决办法是,为不同的设备提供不同的mobile版本,或者iPhone/iPad版本。这样效果有保证,但是比较麻烦,同时要维护好几个版本;

    于是,“”“一次设计,普遍适用”,根据屏幕宽度,自动调整布局(layout)

    第一步: meta:vp标签

    <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

    上面代码的意思是。

    viewport是网页默认的宽度高度

     content="width=device-width 网页宽度默认屏幕宽度 user-scalable=no,(禁止缩放) initial-scale=1.0,(原始缩放比例) maximum-scale=1.0, minimum-scale=1.0"(最大最小缩放比例)

    所有主流都支持,对于IE6-8适用

     <!--[if lt IE 9]>
        <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
      <![endif]-->

    第二部:不使用绝对宽度

    由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度,也不能使用具有绝对宽度的元素。(重点)

    第三部:相对大小字体

    使用rem,em对字体进行设置;

    rem相对根元素中的fontSize

    html{
       font-size:100px;  //设置根元素上的100px=1rem;
    }
    p{
       width:1rem;       //100px
    }

    em,相对上级元素

    html{
          font-size: 100%;  //默认是浏览器默认16px=1em||rem
      }
    h1{
             font-size: 1em; //1em=16px
         }
      p{
                font-size: 2em;  //2em=32px
                margin-top: 1em;//你以为是16px,搓搓,此时1em=32px;被自己重置了
            }

    怎么选择em,rem???

    如果这个元素有其他属性与自身字体有关联,使用em,剩余使用rem

    例子

      html{
          font-size: 100%;  //1rem||em=16px
      }
      .tit{
          font-size: 1em;       //=16px
          padding: 1em;         //=16px
      }
      .titH1{
                font-size: 1em;  //1em=16px
            }
      .titH2{
          font-size: 2em;       //2em=32px=>1em=32px  所以 padding:32px
      }
      .titH3{
          font-size: 3em;       //3em=48px=>1em=>48px  所以padding:48px
      }
    <h1 class="tit titH1">我是H1</h1>
    <h2 class="tit titH2">我是H2</h2>
    <h2 class="tit titH3">我是H3</h2>

    所有这个元素中与em相关的尺寸全部改变;

    rem则任何尺寸都不进行改变

      html{
          font-size: 100%;//1rem=16px
      }
      .tit{
          font-size: 1rem; //1rem=16px
          padding: 1rem;  //16px
      }
      .titH1{
                font-size: 1rem; //16px
            }
      .titH2{
          font-size: 2rem;  //16px  padding=16px
      }
      .titH3{
          font-size: 3rem;   16px   padding=16px
      }

    第四部:流动布局

     .main {
        float: right;
        width: 70%;
      }
    
      .leftBar {
        float: left;
        width: 25%;
      }

    装不下会自动跑到下面去,绝对定位的使用一定要小心;

    第五部:css加载media

    <link rel="stylesheet" type="text/css"
        media="screen and (max-device- 400px)"
        href="tinyScreen.css" />
    //上面的代码意思是,如果屏幕宽度小于400像素(max-device- 400px),就加载tinyScreen.css文件。  <link rel="stylesheet" type="text/css"     media="screen and (min- 400px) and (max-device- 600px)"     href="smallScreen.css" />
    //如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。

    第六部:媒体查询media

    @media screen and (max-device- 400px) {
    
        .column {
          float: none;
          width:auto;
        }
    
        #sidebar {
          display:none;
        }
    
      }
    //如果屏幕宽度小于400像素,则column块取消浮动(float:none)、宽度自动调节

    第七部:图片响应式

      img { max-width: 100%;}
    //老版本IE使用
      img { width: 100%; }

    不过,有条件的话,最好还是根据不同大小的屏幕,加载不同分辨率的图片。太累了,没条件;

          转紫阮一峰响应式布局

  • 相关阅读:
    java,jsp+mysql5.6搭建环境
    数据结构:栈的顺序存储结构
    开源 免费 java CMS FreeCMS1.2标签 config
    在Ubuntu中安装HP LaserJet 1020驱动
    iPad及BT4下的WEP破解实验与分析 | Network Security
    WEP&WPA Cracking on BT5/MAC [转]
    关于显示屏分辨率的问题
    Laravel5.1 路由 路由分组
    版本号/缓存刷新 laravel mix函数
    Laravel 中config的用法
  • 原文地址:https://www.cnblogs.com/liangfc/p/9123786.html
Copyright © 2011-2022 走看看