提示: 当期内容不充实, 修改后再来看吧

以下称:弹性子元素: 子元素, 弹性容器: 容器

弹性盒子的属性

1. css弹性盒子模型规定了弹性元素如何在弹性容器内展示

2. 弹性元素默认显示在弹性容器的同一行内(既:弹性盒子默认包含一行)

3. flex-direction: 规定子元素在容器内的排列顺序:

  row: 水平: 左对齐

  row-reverse: 水平 逆序右对齐

  column: 垂直: 上对齐

  column-reverse: 垂直 逆序下对齐

4. justify-content: 规定子元素在容器内水平方向上的对齐方式

  flex-start: 默认 左对齐

  flex-end: 右对齐

  center: 居中对齐

  space-between: 均匀分布对齐 贴合容器!!!

  space-around: 均匀分布对齐 均匀距离容器!!!

5. align-items规定子元素在容器内纵轴上的对齐方式

  flex-start: 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

  flex-end: 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

  center: 弹性盒子元素在该行的侧轴(纵轴)上居中对齐

  baseline: 如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,

        该值将参与基线对齐

  stretch: 如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,

      但同时会遵照'min/max-width/height'属性的限制

6. flex-wrap: 规定子元素在容器内换行方式 (wrap: 外套,包装的意思。nowrap不要外套,就一行,wrap:        要外套, 允许换行,包着子元素)

  nowrap: 默认 不换行

  wrap: 换行

  wrap-reverse: 换行 逆序

7. align-content: 规定子元素在容器中垂直方向上的对齐方式, 和justify-content相反

        (前提: 容器内允许换行,既存在多行子元素)

  flex-start: 默认 上对齐

  flex-end: 下对齐

  center: 居中对齐

  space-between: 均匀分布对齐 贴合容器上下!!!

  space-around: 均匀分布对齐 均匀距离容器左右!!!

默认特性:

  1. 弹性元素间默认没有间隙

   2. 弹性容器默认不改变弹性项目宽度

   3. 弹性布局默认左对齐

   4. flex-grow: 1, 则该项目默认拉伸占据该行剩余宽度。 默认值为0, 不拉伸。

   5. 弹性布局默认改变项目的高度, 如果没有指定项目的高度, 则默认充满项目高。(若弹性b元素改变了容器宽度, 则弹性a元素也将被拉伸)

   6. align-self指定了单个弹性元素在纵轴上的对其方式, 如果一个个设置该属性太麻烦, 则可以设置容器的align-items, 所有单个元素的align-self将会继承这个值。

 弹性子元素属性


1. order: 规定子元素在容器中的排列顺序, 用数值表示,越小越靠前, 可谓负数

2. margin: 自动获取盒子内水平和垂直方向的剩余空间,并设置最完美的距离。

  注: 设置margin:auto可是使子元素在容器内完美居中, 解决了多年来的元素居中问题

3. align-self设置元素自身在容器内纵轴方向上的对齐方式

  flex-start: 默认 上对齐

  flex-end: 下对齐

  center: 居中对齐

  basline: 如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐

  strench: 拉伸自身和容器高度相同

4. flex: 规定子元素在容器内如何占据空间,类似于bootstrap的栅格布局,相当于百分比的意思

  数值: 例如有三个子元素 flex值分别为2 1 1 , 则相当于witdh: 50% 25% 25%

 注意: 请使用默认值: auto: 自动拉伸;  none:不拉伸 

demo: 做一个类似淘宝移动端商品列表项(自如网面试题题):

需求:

HTML:

<div class="container">
<div class="left">
<div class="lcontent">
content
</div>
</div>
<div class="right">
<p class="title">
titltitletitletitletitlee titltitletitletitletitlee titltitletitletitletitlee
</p>
<p class="content">
content
</p>
<p class="time">
-- :
</p>
</div>
</div>

CSS:

.container {
display: flex;
display: -webkit-flex;
border: 1px solid #ddd;
width: 100%;
height: auto; flex-direction: row;
justify-content: space-between;
-webkit-justify-content: space-around;
align-content: space-around;
-webkit-align-content: space-around;
} .container .left,
.container .right{
// flex: 1;
width: 40%;
margin: 10;
} .container .left {
display: flex;
border: 1px solid #eee;
background-color: #eee;
border-radius: 15px;
} .container .left .lcontent {
margin: auto;
} .container .right .title {
font-weight: bolder;
} .container .right .content {
color: #ddd;
font-size: 14px;
} .container .right .time { font-size: 12px;
}

  效果:

* flex-basis和flex-grow的demo

使用css弹性盒子模型的更多相关文章

  1. CSS 弹性盒子模型

    CSS 弹性盒子模型 https://www.w3.org/TR/2016/CR-css-flexbox-1-20160526/ CSS Flexible Box Layout Module Leve ...

  2. css中的f弹性盒子模型的应用案例

    案例1: <!doctype html> <html> <head> <meta charset="utf-8"> <meta ...

  3. CSS box-flex属性,然后弹性盒子模型简介

    今天做项目的时候发现一个css3的新属性flex 一.什么是flex 它的作用是能够按照设置好的规则来排列容器内的项目,而不必去计算每一个项目的宽度和边距.甚至是在容器的大小发生改变的时候,都可以重新 ...

  4. CSS box-flex属性,然后弹性盒子模型简介(转)

    一.淡淡的开头语 昨天趁着不想工作的时间间隙闲逛24ways,在My CSS Wish List一文中,见到了个新鲜的CSS属性,就是题目中的box-flex,以前没有见过,顿生疑惑,不知是骡子还是马 ...

  5. CSS Flexbox 弹性盒子模型

    CSS Flexbox 弹性盒子模型 设置元素样式为 display: flex 或 display: inline-flex, 让元素变成flex容器, 从而可以通过flex模式布局它的子元素. f ...

  6. css3弹性盒子模型

    当下各种手机,平板尺寸不一,如果盒模型只能固定尺寸,不能随意压缩,将不能很好的迎合这个时代.所以css3推出了新的盒模型——弹性盒子模型(Flexible Box Model). 弹性盒模型可以水平布 ...

  7. flexbox弹性盒子模型

    这几天在做移动端的web开发,遇到了一些问题,之前没有折腾过这方面的东西,这次好好吸收下 css3的flexbox--弹性盒子模型,这个盒模型决定了一个盒子在其他盒子中的分布方式及如何处理可用的空间. ...

  8. 弹性盒子模型display:flex

    1.div上下左右居中 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  9. css3弹性盒子模型之box-flex

    css3弹性盒子模型之box-flex 浏览器支持 目前没有浏览器支持 box-flex 属性. Firefox 支持替代的 -moz-box-flex 属性. Safari.Opera 以及 Chr ...

随机推荐

  1. lnmp升级php

    引言 服务器用的是lnmp一键安装包,但是php版本是5.5.项目用的是TP5.1需要php5.6的环境. 好慌! 进行升级操作 进入lnmp安装环境 ./upgrade.sh php 然后输入php ...

  2. Facade(外观)

    意图: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 适用性: 当你要为一个复杂子系统提供一个简单接口时.子系统往往因为不断演化而变 ...

  3. [html5]HTML5中<section>和<article>的区别

    一.section元素 从字面理解就是区块.部分的意思,相对于article元素更加广泛,每个区块都可以使用,比如页面里的导航菜单.文章正文.文章的评论等. 1.section元素用于对网站或应用程序 ...

  4. angular的 表单

    一般来讲表单可能遇到的问题:1.如何数据绑定.2.验证表单.3.显示出错信息.4.整个form的验证.5.避免提交没有验证通过的表单.6.防止多系提交. input属性:nameng-modelng- ...

  5. Rails 5 Test Prescriptions 第10章 Testing for Security

    Web 安全是一个可怕的主题.所有的你的程序都依靠密码学,代码超出了你的控制. 尽管如此,你还是可以控制部分网页安全 --所有的logins和access checks和injection error ...

  6. Android之扫描二维码和根据输入信息生成名片二维码

    开发中常常遇到二维码扫码操作,前段时间做项目要实现该功能,于是网上查找资料实现了,现在把他做出来给各位分享一下,主要包含了二维码扫描和生成二维码名片. 先来看看效果图:   生成的二维码,打开微信扫一 ...

  7. 使用Bus.js进行兄弟(非父子)组件通信

    首先需要在任意地方添加一个bus.js: 在bus.js里面 写入下面信息 import Vue from 'vue' export default new Vue; 在需要通信的组件都引入Bus.j ...

  8. mysql迁移oracle

    有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到Orac ...

  9. VS2017 IDE中发布自包含(SCD)DotNET Core项目

    根据Stack Overflow上的一个回答得知,这项功能目前VS2017并不具备,但你可以通过如下方法发布自包含项目: 1.项目文件(.csproj)中添加RuntimeIdentifier配置项, ...

  10. Qt SD卡 文件系统挂载、文件预览

    /********************************************************************************** * Qt SD卡 文件系统挂载. ...