关于display: box 和 box-flex

这两天做手机项目,使用到这个css3新属性。现在还不为所有浏览器支持,所以使用的时候要加上前缀。使用方法见下面:

html代码:

<div class="s-indLine">
            <div class="s-indNav s-indIntro">
                <span class="s-icon"></span>
                <p>品牌介绍</p>
            </div>
            <div class="s-indNav s-indInfo">
                <span class="s-icon"></span>
                <p>优惠信息</p>
            </div>
        </div>
        <div class="s-indLine">
            <div class="s-indNav s-indShop">
                <span class="s-icon"></span>
                <p>门店查找</p>
            </div>
            <div class="s-indNav s-indGoods">
                <span class="s-icon"></span>
                <p>热卖商品</p>
            </div>
        </div>

css代码:

.s-indLine{   
    display: -webkit-box;
    display: -moz-box;
    display: box;
    margin-bottom: 10px;
    -moz-box-orient:horizontal;
    -webkit-box-orient:horizontal;
    box-orient:horizontal;
}
.s-indLine .s-indNav{
    -webkit-box-flex: 5;
    -moz-box-flex: 5;
    box-flex: 5;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border-radius: 10px;
    color: #ffffff;
    text-align: center;
    height: 105px;
    padding: 15px 0px;
    font-size: 1.5rem;
}
.s-indLine .s-indNav:first-child{
    margin-right: 10px;
}
.s-indIntro{
    background: #4eb566;
}
.s-indInfo{
    background: #ffa422;
}
.s-indShop{
    background: #7788f2;
}
.s-indGoods{
    background: #ef604d;
}
.s-indLine .s-indNav .s-icon, .s-groupNav .s-icon{
    width: 50px;
    height: 50px;
    display: inline-block;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}
.s-indIntro .s-icon{
    background-image: url("group.png");
}
.s-indInfo .s-icon{
    background-image: url("group.png");
}
.s-indShop .s-icon{
    background-image: url("group.png");
}
.s-indGoods .s-icon{
    background-image: url("group.png");
}

可以不给子元素设置box-flex值,直接使用width代替,也可以设置margin 和 padding 值。得到的效果图如下:

在chrome或者手机其他的以-webkit为内核的浏览器上调试时,上面的代码是没有问题的,但是在火狐下面,会出现问题,如下图所示:

这地方解决办法,必须给父元素添加width样式,例如 width: 100%; 即可。

此外在火狐上还有一个问题,上面说到可以给子元素不设置box-flex,而是设置width,但是在火狐上不能识别width,而是必须设置box-flex。

时间: 2024-07-31 14:35:07

关于display: box 和 box-flex的相关文章

[C++]const Box * p || Box const * p || Box * const p的区别

const与指针结合使用时,容易让人迷惑的是: 1. const到底是限定该指针不可再指向其它内存呢? 2. 还是禁止通过该指针修改其指向的内存块的内容?(PS:这里说的是禁止通过该指针修改内存块,所以不是不能修改,而是要通过其它方式去修改.) 下面来探究一下,先上基础代码. // Box.h author:[email protected] #ifndef _BOX_H #define _BOX_H class Box { public : Box(); int volume(); void

display:table、box和width百分比来均分盒子的比较

box box适合均分内部子盒子没有边框的父盒子,否则内部盒子的边框重叠问题不太好处理,另外如果自盒子间有margin值,中间的margin会是两侧的double,这时可通过nth-child(index)来进行个别调整. box-flex是对除开子盒子内容区.定宽子盒子之外的剩余部分进行划分,而不是把父盒子的整个宽度进行划分,因此就会造成所有子盒子都设置为box-flex:1,但因为子盒子内容多少不一而造成不能均分. box的特点 1.当父元素设置为display:box后,内部的自盒子无论是

详解 Flexible Box 中的 flex 属性

导读: 弹性盒子是 CSS3 的一种布局模式,一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有适当的行为的布局方式.其中 flex 属性用于指定弹性子元素如何分配空间. flex 属性的值 flex-grow flex-shrink flex-basis (flex-grow为扩展比率,flex-shrink为收缩比率,flex-basis为默认基准值) auto (计算值为 1 1 auto) initial (计算值为 0 1 auto) none (计算值为 0 0 auto)

布局display属性(一)--【Flex】

一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局. .box{ display: flex; } 行内元素也可以使用 Flex 布局. .box{ display: inline-flex; } Webkit 内核的浏览器,必须加上-webkit前缀. .box{ display: -webkit-flex; /* Safari */ display: flex; }

【CSS3】 之 弹性盒子(Flex Box)

Flex布局是什么 如何指定一个容器为Flex布局 Flex的基本语法 display flex-direction justify-content align-items flew-wrap align-self flex-flow flex order 示例 骰子的布局 圣杯的布局 参考文章 一, Flex布局是什么 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现.Flex布局

CSS3 ---flex box

flexbox布局是CSS3中新增的布局属性,但任何样式属性起作用的前提则是,它必须有对应的html结构.我们首先在html 文件中定义相应的结构,才能使用布局样式.我们简单地写一个ul li 列表,体验一个flex 布局的强大.新建一个index.html 书写结构,一个index.css 书写样式. index.html , 为了以后便于说明,给每一个li 作了一个1,2,3 标记. <ul> <li>1</li> <li>2</li> &l

css display:flex布局介绍

定义容器的display属性 .box{ display: -webkit-flex; /*webkit*/ display: flex; } /*行内flex*/ .box{ display: -webkit-inline-flex; /*webkit*/ display:inline-flex; } 容器样式 .box{ flex-direction: row | row-reverse | column | column-reverse; /*主轴方向:左到右(默认) | 右到左 | 上到

1.display:flex布局笔记

/*display:flex布局方式主要运用于垂直居中的效果*/ 一.Flex译为Flexible Box(弹性盒子),任何一个容器都可以指定为Flex布局 注:设置为Flex布局之后,子元素的float,clear,vertical-align属性都失效 1 .box1 { 2 display : flex 3 } 4 .box2 { 5 display : inline-flex 6 } 7 .box3 { 8 display : -webkit-flex; 9 display : flex

DirectX Box

通过该Demo,可以清楚了解DirectX流程.将完整程序贴出,自己加以注释,方面查看理解. 1 /* 2 2015.4 3 d3dUtil.h 4 5 d3d 常用工具代码 6 */ 7 8 #ifndef D3DUTIL_H 9 #define D3DUTIL_H 10 11 // Let VC++ know we are compiling for WinXP and up. This let's us use 12 // API functions specific to WinXP (

[Coding Made Simple] Box Stacking

Given boxes of different dimensions, stack them on top of each other to get maximum height such that box on top has strictly less length and width than box under it. Algorithm. 1. get all the box permutation with each permutation's length >= width; s