css布局之flexbox学习

今天学习了flex布局,发现它是真心强大,所以必须的记录下。

以下简单的布局要求是难以或不可能用这样的工具方便且灵活的实现:

  • 垂直居中父内容的里一块内容。
  • 使容器的所有子项占用等量的可用宽度/高度,而不管有多少宽度/高度可用。
  • 使多列布局中的所有列采用相同的高度,即使它们包含的内容量不同。

先上一个例子:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            section {
              height:100px;
              background: purple;
              display: flex;
              align-items: center;
              justify-content: space-around;
            }
            div {
              color: white;
              background: orange;
              flex: 1;
              margin-right: 10px;
            }
            div:last-child {
              margin-right: 0;
            }
            section, div {
              padding: 10px;
            }
        </style>
    </head>
    <body>
        <section>
          <div>This is a box</div>
          <div>This is a box</div>
          <div>This is a box</div>
        </section>
    </body>
</html
>

贴上结果图(随便拉宽紫色容器内黄色的div块都能自适应宽度哟):

再上一张flex模型说明图

  • 主轴(main axis)是沿着 flex 元素放置的方向延伸的轴(比如页面上的横向的行、纵向的列)。该轴的开始和结束被称为 main start 和 main end。
  • 横轴(cross axis)是垂直于 flex 元素放置方向的轴。该轴的开始和结束被称为 cross start 和 cross end。
  • 设置了 display: flex 的父元素(在上面的例子中<section>)被称之为 flex 容器(flex container)
  • 在 flex 容器中表现为 flexible 框的元素被称之为 flex 项(flex item)(本例中是<div> 元素)。

下面介绍下flex容器的6个属性

1、flex-direction —— 决定主轴的方向(即flex项的排列方向)。其值有以下四个:

  row(默认值):主轴为水平方向,起点在左端。

  row-reverse:主轴为水平方向,起点在右端。

  column:主轴为垂直方向,起点在上沿。

  column-reverse:主轴为垂直方向,起点在下沿。

2、flex-wrap —— 默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。其值有以下三个:

  nowrap(默认):不换行。

  wrap:换行,第一行在上方。

  wrap-reverse:换行,第一行在下方。

3、flex-flow —— flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

4、justify-content —— justify-content属性定义了项目在主轴上的对齐方式。其值有以下五个:

  flex-start(默认值):左对齐。

  flex-end:右对齐。

  center: 居中。

  space-between:两端对齐,项目之间的间隔都相等。

  space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

5、align-items —— justify-content属性定义项目在交叉轴上如何对齐。其值有以下五个:

  flex-start:交叉轴的起点对齐。

  flex-end:交叉轴的终点对齐。

  center:交叉轴的中点对齐。

  baseline: 项目的第一行文字的基线对齐。

  stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

6、align-content —— align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。其值有以下六个:

  flex-start:与交叉轴的起点对齐。

  flex-end:与交叉轴的终点对齐。

  center:与交叉轴的中点对齐。

  space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。

  space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

  stretch(默认值):轴线占满整个交叉轴。

然后是flex 项(flex item)的6个属性:

  orderorder属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

  flex-growflex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

  flex-shrinkflex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

  flex-basisflex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

  flexflex属性是flex-growflex-shrinkflex-basis的简写,默认值为0 1 auto。后两个属性可选。

  align-selfalign-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

 

以上内容参考来自:https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexboxhttp://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

 

转载于:https://www.cnblogs.com/holly-w/p/7133636.html

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值