zoukankan      html  css  js  c++  java
  • css样式--flex布局[css3]

    说起css3就必须提到flex布局,特别是在移动端领域,用得非常多,这里写了一套flex布局兼容(并非全兼容),自己用过之后感觉良好;

    /* ============================================================
       flex:定义布局为盒模型
       flex-v:盒模型垂直布局
       flex-1:子元素占据剩余的空间
       flex-align-center:子元素垂直居中
       flex-pack-center:子元素水平居中
       flex-pack-justify:子元素两端对齐
       兼容性:ios 4+、android 2.3+、winphone8+
       ============================================================ */
    .flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
    .flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
    .flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
    .flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
    .flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
    .flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
    

     

    两端对齐可以用这种方法:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <meta content="telephone=no" name="format-detection">
    <meta content="email=no" name="format-detection">
    <style type="text/css">
    /* ============================================================
       flex:定义布局为盒模型
       flex-v:盒模型垂直布局
       flex-1:子元素占据剩余的空间
       flex-align-center:子元素垂直居中
       flex-pack-center:子元素水平居中
       flex-pack-justify:子元素两端对齐
       兼容性:ios 4+、android 2.3+、winphone8+
       ============================================================ */
    .flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
    .flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
    .flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
    .flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
    .flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
    .flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
    </style>
    </head>
    <body>
    
    <div class="flex flex-pack-justify">
        <div>模块一</div>
        <div>模块二</div>
        <div>模块三</div>
        <div>模块四</div>
    </div>
    
    </body>
    </html>
    

      

    使用注意:

    • flex下的子元素必须为块级元素,非块级元素在android2.3机器下flex失效
    • flex下的子元素宽度和高度不能超过父元素,否则会导致子元素定位错误,例如水平垂直居中

    fixed BUG

    • ios下fixed元素容易定位出错,软键盘弹出时,影响fixed元素定位
    • android下fixed表现要比iOS更好,软键盘弹出时,不会影响fixed元素定位
    • ios4下不支持position:fixed

    解决方案

    • 可用isroll.js,暂时没有完美解决方案。

    资料参考:

    移动端web页面使用position:fixed问题总结 #2

    --任何组织或个人分享、转载本博客内容,请务必以链接方式注明出处:来自博客园--下雨天的太阳(http://www.cnblogs.com/doomjx/)--
    --请勿以任何形式修改内容(包括文字和图片)--
  • 相关阅读:
    windows8.1下安装Cygwin并通过apt-cyg安装软件包
    cocos2d-x 3.9 android studio项目命令行打包
    Android API Level与sdk版本对照表
    如何设置minSdkVersion和targetSdkVersion
    记录quick cocos2d-x3.2升级至cocos2d-x3.8
    [转]英语飙升的好方法
    cocos2d-x3.0rc打包apk遇到的一些问题记录
    vim显示行号、语法高亮、自动缩进的设置
    cocos2d-x在android真机上设置帧率无效的问题
    【Coding】Eclipse使用技巧
  • 原文地址:https://www.cnblogs.com/doomjx/p/5773136.html
Copyright © 2011-2022 走看看