flex 布局学习记录

一· 何为弹性布局

   Flexbox布局的主要思想:给容器控制项目(子元素)的宽度和高度的能力,项目可自动填充容器的可用空间,以达到适配所有类型的设备和屏幕大小的目的。项目可自动放大以填补充可用空间,这是其他布局达不到的。

弹性布局适合组件和小规模的布局,大规模布局用Grid布局。

容器存在两个轴:main axis(主轴)、cross(交叉轴)。文字方向是 lrt ,主轴和容器左边框的交叉点是主轴的开始位置,叫做main start,与右边框的交叉点叫做main end。响应地,有 cross start 和 cross end。项目占据主轴的长度叫 main size,占据交叉轴的长度叫做 cross size。

main size 和cross size 并非项目的 width 和 height,要看哪一边对着那个轴。交叉轴垂直主轴, 主轴并是否水平的,这取决于 flex-diretion的值是否含 "row"。

二、容器的属性

  

  • flex-direction       决定主轴方向
  • flex-wrap         控制项目换行
  • flex-flow              前两个属性的简写
  • justify-content     项目在主轴上的对齐方式
  • align-items        决定项目在交叉轴上的对齐方式
  • align-content       多根轴线对齐方式,一根轴,该属性不起作用


flex-direction—— 决定主轴的方向。

flex-direction: row|row-reverse|column|column-reverse
  • row(默认值)  : 主轴为水平方向,起点在左端。 文字方向是 rtl,则主轴起点在右边,这种方式我们遇到的不多,不做讨论。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为竖直方向,起点在上方。
  • column-reverse : 主轴为竖直方向,起点在下方。



flex-wrap——项目排列是否换行

flex-wrap:nowrap|wrap|wrap=reverse
  • nowrap:项目在一行排列,项目的宽度或高度适应容器。
  • wrap: 项目换行排列。
  • wrap-reverse:换行排列,且第一行翻转成最后一行。



flex-flow——是 flex-direction 和 flex-wrap 的简写形式

flex-flow:<flex-dirextin>||<flex-wrap> /* defalut row wrap */


justify-content——定义项目在主轴上的对齐方式

justify-content: flex-start|flex-end|center|space-between|space=around

项目的对齐方式与主轴的方向有关。下面是主轴从左到右。

flex-start:左对齐,默认值;

flex-end:右对齐;

center:居中;

space-between:两端对齐,项目间隔相等;

space-around:项目两侧的间隔相等。



align-items——定义交叉轴上的对齐方式。

align-items:stretchs|flex-start|flex-end|center|baseline

对齐方式和交叉轴的方向有关,下面是crorss-start在上方的情况。

stretch: 如果项目没设置高度或为auto,将拉伸充满容器;

flex-start: 起点对齐;

flex-end: 终点对齐;

center: 交叉轴中点对齐;

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



align-content——定义多根轴线对齐方式,一根轴线,该属性不起作用。

align-content: stretch|flex-start|flex-end|center|space-between|space-around

stretch: 轴线占满整个交叉轴;

flex-start: 交叉轴起点对齐;

flex-end: 交叉轴终点对齐;

center: 交叉轴中点对齐;

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

space-around: 每根轴线间两侧的间隔相等。


二、项目属性

  • order              定义项目顺序
  • flex-grow        项目放大比例
  • flex-shink        项目缩小比率
  • flex-basis        分配项目占据的主轴空间
  • flex                 2--4个属性的缩写
  • align-self         项目自己的对齐方式


order——定义项目视觉顺序。项目在html的顺序是不会改变的。值为 整数,越小越靠前,默认为 0。不给出 order 的值,按照HTML的顺序显示。

order: <integer>;



flex-grow——定义项目放大比率。默认为0,剩余空间足够,也不放大,负数无效。剩下的空间按正数的比例放大。

flex-grow:<positive-number>;


flex-shrink——缩小比率,默认为 1。空间不够,按比例缩小。非正数无效。


flex-basis——在分配多余空间之前,项目占据的主轴空间

flex-basis: <lenght> | auto;/* 默认 auto */

flex——flex-grow、flex-shrink、flex-basis 的简写,默认值为 0 1 auto 。可选后两个属性。

flex:noe|[<flex-grow><flex-basis>?||<flex-basis>]

align-self——单独设置项目与其他项目不一样的对齐方式,会覆盖 align-items。为 auto ,表示继承父块的 align-items。没有父块,等同于 stretch。

align-items:auto|stretchs|flex-start|flex-end|center|baseline


其他注意的地方:

① 如果元素display的值指定为inline-flex,而且元素是一个浮动元素或绝对定位元素,则display的计算值是flex

这篇笔记是几个月前写在印象笔记里的啦,今天把它搬到博客里来,新手学习,请多多指教。

时间: 2024-12-13 01:09:23

flex 布局学习记录的相关文章

flex布局学习(二)

flex布局解决了几个问题 1 margin重叠问题 例如 .item{border: 1px solid green;margin: 30px;} <div style="border: 1px solid red;"> <div class="item"> margin重叠为 </div> <div class="item"> 2 </div> <div class="

Flex 布局学习笔记

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> * { padding: 0px; margin: 0px; } body { box-sizing: border-box; width: 100%; min-height: 100%; } .ma

Flex布局学习笔记

参考教程<Flex布局完全教程> Flexbox 布局(也叫Flex布局,弹性盒子布局)模块目标在于提供一个更有效地布局.对齐方式,并且能够使父元素在子元素的大小未知或动态变化情况下仍然能够分配好子元素之间的间隙. Flex布局是一个完整的模块而不是一个单独的属性,它包括了完整的一套属性.其中有的属性是设置在容器(container,也可以叫做父元素,称为flex container)上,有的则是设置在容器的项目上(item,也可以叫做子元素,称为flex items)上. Flex布局有一个

Flex布局 学习(一)

2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.时至今日,它已获得了所有浏览器的支持,这让flex布局成为未来布局的首选. 一.那何为Flex? 其实Flex是Flexible Box的缩写,意为”弹性盒子”,用来为盒状模型提供最大的灵活性. 任何一个容器(父元素)都可以指定Flex布局,只需要设置: /*块内元素*/display:flex;/*行内元素*/display:inline-flex; 另外:webkit内核的浏览器,要加上-

Flex布局【弹性布局】学习

先让我们看看在原来的学习中遇到的问题 之前在软件工程的大作业中,自己从零开始学习如何开发一个网站,从页面,到后台,当然数据库是大二的必修课 在学习如何编写一个静态页面的时候,完全是自学,自己摸索,所以遇到了很多问题,自己花费了太多时间去解决问题,今天就拿其中一个比较让我头疼的问题来引出今天的话题 当时在初识html.css的时候,遇到了水平排放的问题,当然这个一下子就查出来了,使用 float ,但是使用了 float 会使子元素脱离父元素的布局,父元素的高度会变成 0 ,从而根本展示不出来 这

UWP学习记录2-设计和UI之布局

UWP学习记录2-设计和UI之布局 1.导航基础知识 应用里,多个页面会有层次关系或者对等关系.这两种关系,通常在一个复杂应用里都会存在,而关系的选定依据: 对于对等导航,一般用选项卡(tabs)或者导航窗(nav)来作为导航元素实现导航跳转.而对于层次关系,则使用中心(hub)来提供子页面的预览或摘要,或者使用大纲(master-details)来实现导航. 除此之外,返回(后退)和链接也可以用来导航.启用系统后退导航支持的方法是注册 BackRequested 事件的侦听器.标题栏后退按钮的

在微信小程序中学习flex布局

网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局将成为未来布局的首选方案.本文介绍它的语法,下一篇文章给出常见布局的Flex写法. 以下内容主要

Flex布局文档学习及实践

2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能.Flex布局将成为未来布局的首选方案.Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 我学到的语法: 我的例子实验: Flex 布局教程:语法篇 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex

flex弹性布局学习总结

一.简要介绍 flex( flexible box:弹性布局盒模型),是2009年w3c提出的一种可以简洁.快速弹性布局的属性.主要思想是给予容器控制内部元素高度和宽度的能力.目前已得到以下浏览器支持: 其中在webkit内核的浏览器中使用时,必须加上-webkit-前缀,以下不再重复说明. 下图为flex的相关概念的示意图 使用flex布局的容器(flex container),它内部的元素自动成为flex项目(flex item).容器拥有两根隐形的轴,水平的主轴(main axis),和竖