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

    响应式设计
      .在不同设备上正常使用
      .一般主要处理屏幕大小问题
      .主要方法:
        .隐藏 + 折行 + 自适应空间
        .rem/viewport/media query
    第一个案例
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
      </head>
      <style>
        .container{
          margin: 0 auto;
          max-width: 800px;
          display: flex;
          border: 1px solid black;
        }
        .left{
          width: 200px;
          background: red;
          margin: 5px;
        }
        @media (max-640px) {
          .left{
            display: none;
          }
        }
        .right{
          flex: 1;
          background: blue;
          margin: 5px;
        }
      </style>
    <body>
      <div class="container">
        <div class="left">
          这是一些不重要的内容,比如友情链接、广告
        </div>
        <div class="right">
          这里是一些重要的内容,比如一篇文章,文章是整个核心内容。
          这里是一些重要的内容,比如一篇文章,文章是整个核心内容。
        </div>
      </div>
    </body>
    </html>

    head里面有一句viewport(第三点)。这个viewport的含义是什么呢,这里面有一个width=device-width。就是说我们可视区域大小就等于屏幕大小。否者手机端,比如iphone上面会默认页面宽度是980。所以一点点屏幕要显示980的内容,内容就会被缩小很多。这个案例也同时看到media query是怎么使用的。



    第二个案例
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
      </head>
      <style>
        .container{
          margin: 0 auto;
          max-width: 800px;
          border: 1px solid black;
        }
        .intro{
          display: inline-block;
          width: 180px;
          height: 180px;
          line-height: 180px;
          text-align: center;
          border-radius: 90px;
          border: 1px solid red;
          margin: 7px;
        }
        @media(max-640px){
          .intro{
            margin: 7px auto;
            display: block;
          }
        }
      </style>
    <body>
      <div class="container">
        <div class="intro">介绍1</div>
        <div class="intro">介绍2</div>
        <div class="intro">介绍3</div>
        <div class="intro">介绍4</div>
      </div>
    </body>
    </html>

    这个案例就是折行的方式自适应。但是我们注意到另外一个问题,就是屏幕大小不管多大,我们的文字和圆圈都是那么大,当屏幕小的时候,会挤压空白区域,文字和圈圈的占比就会变大。可不可以采用等比例的方式呢。这种是可以的。

    首先一种是media query。比如demo1,已经讲过了
    另外一种就是改变viewport的值。width=320。这样iphone5就是320。其它的都以320为基准。比如切到iphone6就放大了。
    第三种使用rem的方式
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
      </head>
      <style>
        html{
          font-size: 20px;
        }
        .container{
          margin: 0 auto;
          max-width: 800px;
          border: 1px solid black;
        }
        .intro{
          display: inline-block;
          width: 9rem;
          height: 9rem;
          line-height: 9rem;
          text-align: center;
          border-radius: 4.5rem;
          border: 1px solid red;
          margin: 0.3rem;
        }
        @media (max- 375px) {
          html{
            font-size: 24px;
          }
        }
        @media (max- 320px) {
          html{
            font-size: 20px;
          }
        }
        @media(max-640px){
          .intro{
            margin: 0.3rem auto;
            display: block;
          }
        }
    </style>
    <body>
      <div class="container">
        <div class="intro">介绍1</div>
        <div class="intro">介绍2</div>
        <div class="intro">介绍3</div>
        <div class="intro">介绍4</div>
      </div>
    </body>
    </html>

    rem的方式是基于html里面的font-size进行计算。这里是1rem=20px。那么之前的180px就是2rem。90px就是4.5rem。那么针对不同屏幕,我们可以改变font-size的基准达到字体大小的变化。这里要注意大屏的要放上面,小屏的放下面。不然按覆盖原则始终用的是下面的。第二个要注意的是rem是不精确的,在换算的过程中可能存在小数,是除不尽的。所以对于精确度要缺十分高的屏幕,不要使用rem布局

    第四种js计算
  • 相关阅读:
    如何防止多个人同时编辑文件
    通过Word实现表单套打
    偏前端
    偏前端
    偏前端
    偏前端 -webpack打包之(安装webpack)
    偏前端
    偏前端
    偏前端
    偏前端--之小白学习本地存储与cookie
  • 原文地址:https://www.cnblogs.com/wzndkj/p/10363799.html
Copyright © 2011-2022 走看看