zoukankan      html  css  js  c++  java
  • 响应式网站怎么搞?

    1.在页面头部加入如下的声明:

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

    viewport = 视口(设备屏幕)
    content = 内容
    device-width = 设备宽度
    initial-scale = 初始-比例
    minimum-scale = 最小-比例
    maximum-scale = 最大-比例
    user-scalable=yes 允许用户缩放网页
    media = 媒体
    query = 查询
    <meta name="MobileOptimized" content="320" />(旧iphone)以320px宽度渲染页面

    样式:@media screen and (max- 500px) {body { background-color: black;}}//屏幕宽度不超过500px时,背景设置为黑色。

    max-width,min-width:显示区域的最大/小宽度,横屏时会变化;max-device-width,min-device-width:手机的最大/小宽度,横屏时不会变化;

    动态加载样式表:<link rel="stylesheet" media="(max- 800px)" href="example.css" />//屏幕宽度不超过800px时,引用该样式表。

    2.字体缩放 em/rem

    em的特点:em的值并不是固定的;em始终会继承父级元素的字体大小。如果父级元素font-size:20px;子级font-size:2em;那么子级的字号就是 2*20px=40px;继承的最终标签是body标签。

    em的问题:多层嵌套的布局,每层的font-size都继承其父级,字体会越来越小或越来越大。

    rem特点:使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素(就是<html>标签)。可以避免字体大小逐层复合的连锁反应,不至于层级越多字体越小/越大。

    我们想实现手机端自适应,就是可以让页面的元素字体、间距、宽高等属性的属性值可以随着手机屏幕尺寸的变化而变化,

    利用Js来动态的设置rem并实现移动端的自适应,Js代码如下:

    //获取html元素
    var html = document.getElementsByTagName('html')[0];
    //屏幕的宽度(兼容处理)
    var w = document.documentElement.clientWidth || document.body.clientWidth;
    //750这个数字是根据你的设计图的实际大小来的,所以值具体根据设计图的大小
    html.style.fontSize = w / 750 + "px";

    以上代码实现了利用Js获取设备屏幕的宽度,并根据屏幕的宽度动态改变根元素html的font-siz属性的作用。比如说,对于iphone6而言,屏幕尺寸为750,那么在iPhone6下html的font-size为1px,所以1rem = 1px;对于iPhone5而言,屏幕尺寸为640,那么在iPhone5下html的font-size为640/750 = 0.85333px,所以1rem = 0.85333px。这样的话即使我们对一个元素设置同样的大小和单位,也会在不同的设备下显示不同的大小。比如说div{100rem},在iPhone6下它的宽度将等于100px,而在iPhone5下它的宽度等于100 * 0.85333 = 85.333px。这样我们就真正实现了移动端的自适应!

    http://www.cnblogs.com/gaohuijiao/p/6200538.html

    http://www.cnblogs.com/vajoy/p/3730014.html

    http://www.cnblogs.com/vajoy/p/3903591.html

  • 相关阅读:
    HDOJ 5090 Game with Pearls 二分图匹配
    hdu4360 spfa+分割点
    分布式高级(十三)Docker Container之间的数据共享
    [Ramda] Get a List of Unique Values From Nested Arrays with Ramda (flatMap --> Chain)
    [Ramda] Create an Array From a Seed Value with Ramda's unfold
    [Flow] Declare types for application
    [Flow] The Fundamentals of Flow
    [Angular] Some performance tips
    [Ramda] Rewrite if..else with Ramda ifElse
    [SVG] Add an SVG as an Embedded Background Image
  • 原文地址:https://www.cnblogs.com/xsj1989/p/9049895.html
Copyright © 2011-2022 走看看