CSS3 box-flex 属性

作者: onlycj | 来源:发表于2017-02-17 10:59 被阅读0次

[TOC]

流布局存在的问题

  1. 之前要实现横列的web布局,通常就是float或者display:inline-block; 但是都不能做到真正的流体布局。至少width要自己去算百分比。
  2. flexible box 就可以实现真正意义上的流体布局。只要给出相应属性,浏览器会帮我们做额外的计算。

提供的关于盒模型的几个属性:

box-orient           子元素排列 vertical or horizontal
box-flex             兄弟元素之间比例,仅作一个系数
box-align            box 排列
box-direction        box 方向
box-flex-group       以组为单位的流体系数
box-lines
box-ordinal-group    以组为单位的子元素排列方向
box-pack以下是关于flexible box的几个实例

几种布局方法

三列自适应布局,且有固定margin:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<style>
.wrap { display: -webkit-box; -webkit-box-orient: horizontal; }
.child { min-height: 200px; border: 2px solid #666; -webkit-box-flex: 1; margin: 10px; font-size: 100px; font-weight: bold; font-family: Georgia; -webkit-box-align: center; }
</style>
<div class="wrap">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
</div>
</body>
</html>
image

当一列定宽,其余两列分配不同比例亦可(三列布局,一列定宽,其余两列按1:2的比例自适应):

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<style>
.wrap { display: -webkit-box; -webkit-box-orient: horizontal; }
.child { min-height: 200px; border: 2px solid #666; margin: 10px; font-size: 40px; font-weight: bold; font-family: Georgia; -webkit-box-align: center; }
.w200 { width: 200px }
.flex1 { -webkit-box-flex: 1 }
.flex2 { -webkit-box-flex: 2 }
</style>
<div class="wrap">
    <div class="w200 child">200px</div>
    <div class="flex1 child">比例1</div>
    <div class="flex2 child">比例2</div>
</div>
</body>
</html>
image

下面是一个常见的web page 的基本布局:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<style>
header, footer, section { border: 10px solid #333; font-family: Georgia; font-size: 40px; text-align: center; margin: 10px; }
#doc { width: 80%; min-width: 600px; height: 100%; display: -webkit-box; -webkit-box-orient: vertical; margin: 0 auto; }
header, footer { min-height: 100px; -webkit-box-flex: 1; }
#content { min-height: 400px; display: -webkit-box; -webkit-box-orient: horizontal; }
.w200 { width: 200px }
.flex1 { -webkit-box-flex: 1 }
.flex2 { -webkit-box-flex: 2 }
.flex3 { -webkit-box-flex: 3 }
</style>
<div id="doc">
    <header>Header</header>
    <div id="content">
        <section class="w200">定宽200</section>
        <section class="flex1">比例3</section>
        <section class="flex2">比例1</section>
    </div>
    <footer>Footer</footer>
</div>
</body>
</html>

image

相关文章

  • 【CSS3盒模型display:box的应用】

    CSS3新增属性 “display:box;”和“box-flex:数值”是css3新添加的盒子模型属性,它的出现...

  • CSS3 box-flex 属性

    [TOC] 流布局存在的问题 之前要实现横列的web布局,通常就是float或者display:inline-bl...

  • CSS3.0盒模型display:-webkit-box;的使用

    box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构、css实现的布局方式。经典的一个...

  • css3 box-flex属性(弹性盒子)学习笔记

    弹性盒子是 CSS3 的一种新的布局模式。 当页面需要适应不同的屏幕大小以及设备类型时,使用弹性盒子布局模式可以确...

  • CSS3动画

    一、CSS3 transform 属性 二、CSS3 transition 属性 transition 属性是一个...

  • CSS3 背景

    CSS3 背景 CSS3 background-origin 属性 background-origin 属性规定背...

  • CSS3 多列

    1、CSS3 多列属性 CSS3 的多列属性: column-countcolumn-gapcolumn-rule...

  • css扩展/CSS3

    CSS3 边框 CSS3 圆角属性 新的背景属性 新文本属性 新转换属性 以下列出了所有的转换属性: 2D 转换方...

  • CSS3 动画

    动画属性 动画(animation)是CSS3新增的属性,动画属性可以为元素创建动画,CSS3以前在网页上实现动画...

  • CSS3 框大小

    CSS3 框大小 CSS3 box-sizing 属性可以设置 width 和 height 属性中包含了 pad...

网友评论

    本文标题:CSS3 box-flex 属性

    本文链接:https://www.haomeiwen.com/subject/aomkwttx.html