Android4.4以下版本webview 不支持css3 flex布局

可以使用display:-webkit-box布局来替代flex布局

文章来自:http://www.cnblogs.com/frankwong/p/4603141.html

一,-webkit-box属性讲解

box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构、css实现的布局方式。经典的一个布局应用就是布局的垂直等高、水平均分、按比例划分。

目前box-flex属性还没有得到firefox、Opera、chrome浏览器的完全支持,但可以使用它们的私有属性定义firefox(-moz)、opera(-0)、chrome/safari(-webkit)。

用于父元素的样式

属性释义
display: box;该属性会将此元素及其直系子代加入弹性框模型中。(Flexbox 模型只适用于直系子代)
box-orient: horizontal/vertical/inherit;该属性定义父元素的子元素是如何排列的。
box-pack: start/end/center/justify;设置沿 box-orient 轴的父元素中子元素的排列方式。因此,如果 box-orient 是水平方向,则父元素的子元素是水平的排列方式,反之亦然。(表示父容器里面子容器的水平对齐方式–垂直排列时–定宽)
box-align: start/end/center/baseline/stretch;基本上而言是 box-pack 的同级属性。设置框的子代在框中的排列方式。如果方向是水平的,该属性就会决定垂直排列,反之亦然。(表示父容器里面子容器的垂直对齐方式–水平排列时–定高)

用于子元素的样式

属性释义
box-flex: 0/任意数字;该属性让子容器针对父容器的宽度按一定规则进行划分。

二,使用举例

1,让.parent也水平居中的话,再复用一次box属性即可;child-one占了1/6;child-two占了2/6; child-three占了3/6;

html代码

<style>
          *{
             margin: 0;
             padding: 0;
          }
          .parent{
              width: 500px;
              height: 200px;
              display: -webkit-box;
             -webkit-box-orient: horizontal;/* 虽然默认的排列方式是水平的,但是为了区分起见,加上该属性 */
         }
         .child-one{
             background: lightblue;
             -webkit-box-flex: 1;
         }
         .child-two{
             background: lightgray;
             -webkit-box-flex: 2;
         }
         .child-three{
             background: lightgreen;
             -webkit-box-flex: 3;
         }
     </style>

 <div style="display: -webkit-box;-webkit-box-pack: center;border: 1px solid #000">
     <div class="parent">
         <div class="child-one">1</div>
         <div class="child-two">2</div>
         <div class="child-three">3</div>
     </div>
 </div>

这里写图片描述

2,父容器的宽度500px减去设置了子容器的150px基础上再减去(100px+2×15px),这剩下的宽度值则按box-flex设置的值进行划分;

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .parent{
            width: 500px;
            height: 200px;
            display: -webkit-box;
            -webkit-box-orient: horizontal;/* 虽然默认的排列方式是水平的,但是为了区分起见,加上该属性 */
        }
        .child-one{
            background: lightblue;
            -webkit-box-flex: 1;
        }
        .child-two{
            background: lightgray;
            -webkit-box-flex: 2;
        }
        .child-three{
            background: lightgreen;
            /* 加了固定高度和边距 */
            width: 150px;
            margin: 0 15px;

        }
    </style>

<div style="display: -webkit-box;-webkit-box-pack: center;border: 1px solid #000">
    <div class="parent">
        <div class="child-one">1</div>
        <div class="child-two">2</div>
        <div class="child-three">3;width:150px;</div>
    </div>
</div>

这里写图片描述

3,竖向排列跟横向排列,在原理上,并没有什么区别;

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .parent{
            width: 400px;
            height: 600px;
            display: -webkit-box;
            -webkit-box-orient: vertical;/* 竖向排列 */
        }
        .child-one{
            background: lightblue;
            -webkit-box-flex: 1;
        }
        .child-two{
            background: lightgray;
            -webkit-box-flex: 2;
        }
        .child-three{
            background: lightgreen;
            /* 加了固定的高度和边距 */
            height: 200px;
            margin: 15px 0;
        }
    </style>

<div style="display: -webkit-box;-webkit-box-pack: center;border: 1px solid #000">
    <div class="parent">
        <div class="child-one">1</div>
        <div class="child-two">2</div>
        <div class="child-three">3</div>
    </div>
</div>

这里写图片描述

4,在水平方向上排列时,box-align:center;定义了垂直方向的居中;

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .parent{
            width: 400px;
            height: 200px;
            display: -webkit-box;
            -webkit-box-orient: horizontal;
            -webkit-box-align: center; /* 水平 对应 box-align */
        }
        .child-one{
            background: lightblue;
            -webkit-box-flex: 1;
            height: 100px;
        }
        .child-two{
            background: lightgray;
            -webkit-box-flex: 2;
            height: 110px;

        }
        .child-three{
            background: lightgreen;
            -webkit-box-flex: 3;
            height: 120px;

        }
    </style>

<div style="display: -webkit-box;-webkit-box-pack: center;border: 1px solid #000">
    <div class="parent">
        <div class="child-one">height: 100px;</div>
        <div class="child-two">height: 110px;</div>
        <div class="child-three">height: 130px;</div>
    </div>
</div>

这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 3D WebView是一种在Android应用程序中添加浏览器功能的工具包,使用Gecko引擎4.4。它可以帮助开发人员在其应用程序中嵌入网络,支持JavaScript、CSS、HTML5和WebGL。此外,它还支持3D模型加载、位置跟踪和事件处理等功能,可以使应用程序更加生动、交互性强,并满足多种需求。 Gecko引擎是Mozilla公司的一个浏览器引擎,它是自由软件,在标准互联网协议下提供服务。它支持HTML5、CSS3、JavaScript等最新的web技术,使网页在各种平台上都能得到快速、安全、流畅的使用体验。Gecko引擎4.4版本在性能、渲染质量、稳定性等方面的进步也使得3D WebView能够提供更好的服务。 总的来说,3D WebView with Gecko engine 4.4 是一款功能强大的工具包,可以帮助Android应用开发人员快速搭建浏览器功能,支持最新的web技术和3D效果,提供更好的用户体验。 ### 回答2: 3D WebView for Android with Gecko Engine 4.4是一种在Android系统中运行的网络浏览器,它使用了Gecko Engine 4.4引擎。这个引擎是由Mozilla Firefox开发的,它支持最新的HTML5、CSS3、JavaScript和WebGL技术,能够让用户在Android设备上享受到流畅的网络体验。 3D WebView for Android with Gecko Engine 4.4支持基于Web的3D渲染,在Android设备上展现出更加丰富的视觉效果,用户能够更加直观地感受到网页中的立体画面。 除此之外,该浏览器还拥有很好的兼容性和安全性,可以保障用户的信息安全。同时它还具备扩展性和可定制化,开发人员可以根据自己的需求添加自定义插件和功能。 总之,3D WebView for Android with Gecko Engine 4.4是一款强大的网络浏览器,拥有先进的技术和良好的用户体验,可以为用户在Android设备上提供更加丰富、流畅的网络浏览体验。 ### 回答3: 3D WebView for Android with Gecko Engine 4.4是一种基于Gecko引擎4.4的3D浏览器视图,用于在Android手机上呈现3D和2D内容。它支持WebGL和WebVR,并可以与Unity和其他游戏引擎配合使用,使开发人员能够在单一应用中混合2D和3D元素。此外,该技术还提供了一些高级功能,例如自定义可扩展性、硬件加速和容器可视化,并且可以将网页作为本地应用程序来运行,从而提高了应用程序的性能、响应速度和稳定性。3D WebView for Android with Gecko Engine 4.4的优点在于它基于开源技术,易于使用且具有灵活性,开发人员可以根据自己的需求进行深度定制,以满足不断变化的市场需求。在智能手机和智能设备普及的今天,这种3D浏览器视图技术将为开发人员提供全新的机会,使他们在应用程序开发中具备更强的竞争力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值