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

    关于web页面布局,我们听说过的有固定布局(fixed layout),流体布局(fluid layout),其中响应式布局是应运而生。指:

    一是宽屏的愈发普及;

    二是CSS3 media queries属性的诞生(通过CSS代码,实现不同宽度显示器下不同的布局,可以即时响应的web页面布局。)

    语法:

    @media<sMedia> { sRules }

    取值:

    <sMedia>:
        指定设备名称。
    {sRules}:
        样式表定义。

    浏览器兼容:

    类型IEInternet ExplorerFirefoxFirefoxChromeChromeOperaOperaSafariSafari
    版本 (×)IE6 (×)Firefox 2.0 (√)Chrome 1.0.x (√)Opera 9.63 (√)Safari 3.1
    (×)IE7 (×)Firefox 3.0 (√)Chrome 2.0.x   (√)Safari 4
    (×)IE8 (√)Firefox 3.5      
             

     

    .media_quires { width: 200px; padding: 40px 20px; background-color: #000; }
    @media all and (min- 800px) {
                .media_quires {
                    background-color: #ff0000;
                }
    }
    @media screen and (max- 1200px) {
                .media_quires {
                    background-color: #0000ff;
                }
    }
    <div class="media_quires">改变浏览器窗口大小背景颜色改变</div>

    当浏览器窗口大于1200px的时候 div背景显示红色; 当浏览器窗口小于等于1200px的时候,div背景显示蓝色。

    max-1200px 可以理解为浏览器宽度在0~1200px(包括1200px)都显示为蓝色;

    min-widht:800px 可以理解为800px(包括800px)即以上都显示为红色。

     

     测试:

    当去掉max-width:1200的限制。当小于800px的时候为默认的黑色。

    <link rel="stylesheet" type="text/css" href="css/normalScreen.css" media="screen and (max-1024px)">
    <link rel="stylesheet" type="text/css" href="css/widthScreen.css" media="screen and (min-1024px)">
     <div class="nav">
            <h4 class="on"><a href="#">HTML代码</a> </h4>
            <h4><a href="#" >CSS代码</a></h4>
            <h4><a href="#" >JS代码</a></h4>
        </div>
        <p id="mes"></p>

    normalScreen.css

    .nav{ border-bottom: 1px solid #ededed; background: #f0f3f9; text-align: center;}
    .nav h4{ display: inline-block; *display: inline; margin: 0 1em; padding: 5px 1em; *zoom: 1;}
    .nav .on{ background-color: #34538b;}
    .nav .on a{ color: #fff;}

    widthScreen.css

    .nav { width: 20%; border-right: 1px solid #ededed; background-color: #F0F3F9; text-align: center; float: left; }

    适用于IE6,7,8使用js实现

    if (!window.screenX) {
                //IE6~8
                var oStyle = document.createElement("link");
                oStyle.rel = "stylesheet";
                oStyle.type = "text/css";
    //            if (document.body.clientWidth > 1024) {
                if (screen.width > 1024) {
                    oStyle.href = "css/widthScreen.css";
                } else {
                    oStyle.href = "css/normalScreen.css";
                }
                document.getElementsByTagName("head")[0].appendChild(oStyle);
            }

    注意:1、在浏览器上没效果是因为使用screen.width显示屏幕的宽度,跟电脑设置的分辨率有关。

    2、当使用document.body.clientWidth只在浏览器初始化加载的时候响应。而不是浏览器改变窗口大小响应。可以加在$(window).resize里面响应

    3、此外应还注意加默认的css。防止页面在加载是出现延迟

    <link rel="stylesheet" type="text/css" href="common.css" media="all" />
  • 相关阅读:
    POJ 1015 Jury Compromise【DP】
    POJ 1661 Help Jimmy【DP】
    HDU 1074 Doing Homework【状态压缩DP】
    HDU 1024 Max Sum Plus Plus【DP,最大m子段和】
    占坑补题。。最近占的坑有点多。。。
    Codeforces 659F Polycarp and Hay【BFS】
    Codeforces 659E New Reform【DFS】
    Codeforces 659D Bicycle Race【计算几何】
    廖大python实战项目第四天
    廖大python实战项目第三天
  • 原文地址:https://www.cnblogs.com/zhaojieln/p/4315303.html
Copyright © 2011-2022 走看看