Web Html Flex基础学习

FLEX 基础说明


一、Flex布局是什么?

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

任何一个容器都可以指定为Flex布局。

.box{
  display: flex;}

行内元素也可以使用Flex布局。

.box{
  display: inline-flex;}

Webkit内核的浏览器,必须加上-webkit前缀。

.box{
  display: -webkit-flex; /* Safari */
  display: flex;}

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。


二、基本概念

采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。


三、容器的属性

以下6个属性设置在容器上。

  • flex-direction

  • flex-wrap

  • flex-flow

  • justify-content

  • align-items

  • align-content

3.1 flex-direction属性

flex-direction属性决定主轴的方向(即项目的排列方向)。

.box {
  flex-direction: row | row-reverse | column | column-reverse;}

它可能有4个值。

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

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

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

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

3.2 flex-wrap属性

默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;}

它可能取三个值。

(1)nowrap(默认):不换行。

(2)wrap:换行,第一行在上方。

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

3.3 flex-flow

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

.box {
  flex-flow: <flex-direction> <flex-wrap>;}

3.4 justify-content属性

justify-content属性定义了项目在主轴上的对齐方式。

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;}

它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

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

  • flex-end:右对齐

  • center: 居中

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

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

3.5 align-items属性

align-items属性定义项目在交叉轴上如何对齐。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;}

它可能取5个值。具体的对齐方式与交叉轴的方向有关,下面假设交叉轴从上到下。

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

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

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

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

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

3.6 align-content属性

align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;}

该属性可能取6个值。

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

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

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

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

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

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

四、项目的属性

以下6个属性设置在项目上。

  • order

  • flex-grow

  • flex-shrink

  • flex-basis

  • flex

  • align-self

4.1 order属性

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

.item {
  order: <integer>;}

4.2 flex-grow属性

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

.item {
  flex-grow: <number>; /* default 0 */}

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

4.3 flex-shrink属性

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

.item {
  flex-shrink: <number>; /* default 1 */}

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

负值对该属性无效。

4.4 flex-basis属性

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

.item {
  flex-basis: <length> | auto; /* default auto */}

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

4.5 flex属性

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

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]}

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

4.6 align-self属性

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

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;}

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。




文章来源地址https://www.toymoban.com/diary/web/189.html

到此这篇关于Web Html Flex基础学习的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/web/189.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年08月19日 16:45
下一篇 2023年08月19日 16:45

相关文章

  • web渗透安全学习笔记:2、HTML基础知识

    目录 前言 HTML的标题 段落链接与插入图片 HTML元素 HTML属性 HTML头部 HTML与CSS HTML与JavaScript 表格与列表 HTML区块 布局 HTML表单 HTML与数据库 音频与视频 HTML事件 运行效果:   ———————————————————————————————————————————  ——

    2024年01月21日
    浏览(54)
  • re:从0开始的HTML学习之路 2. HTML的标准结构说明

    文档声明,用于告诉浏览器,当前HTML文档采用的是什么版本。 必须写在当前HTML文档的首行(可执行代码的首行) HTML4的此标签与HTML5不同。 根标签,整个HTML文档中所有标签都必须包裹在HTML根标签中 lang:用于说明当前文档使用的语言。如:en为英文,zh-CN为中文,这个标签

    2024年01月22日
    浏览(33)
  • Web安全——HTML基础

    1、前端与后端的认识 前端: 客户端开发 后端: 服务器端开发 2、前端后端区别 技能 前端: We b开发者余姚掌握 HTML,CSS 和 JavaScript 后端:开发者需要懂数据库,服务器, API 等等 职责 前端:开发者负责设计网站的外观 后端:开发者负责构建数据库架构,为前端提供支持 独

    2024年02月10日
    浏览(24)
  • 【web前端基础之HTML】——HTML基本知识

    hn 元素用于HTML文件的标题输出,一行只显示一个(块元素),具有换行输出和加粗的效果。n的值是1~6,代表6个级别标题,1字号最大,随数字增大字号减小。 案例:demo1.html⬇️ 效果图⬇️ br 是个单标签,没有 结束标记,主要功能是让文字换行输出。 案例:demo2.html⬇️ 效

    2023年04月19日
    浏览(55)
  • html中flex的使用

        在HTML中,flex属性用于设置弹性容器的子元素的布局方式。使用flex属性可以实现灵活的布局,使子元素根据可用空间自动调整大小。flex属性有三个值:flex-grow、flex-shrink和flex-basis。 flex-grow:指定子元素的放大比例,当剩余空间存在时,子元素根据flex-grow值来分配剩余空

    2024年01月19日
    浏览(37)
  • 【移动端网页布局】flex 弹性布局子项目属性 ① ( flex 属性用法说明 | 代码示例 : 占有剩余布局 / 平均分成若干等份 )

    flex 子项目 的常用属性 : flex 属性 : flex 子项目 在 flex 父容器 中 占有的 份数比例 , 如果都设置 1 , 那么将对应尺寸平分即可 ; align-self 属性 : 控制 flex 子项目 在 侧轴 的排列方式 ; order 属性 : 控制 flex 子项目 的排列顺序 ; 主要是修改前后顺序 , 原来是 1 - 2 - 3 排列顺序 , 可以

    2024年02月09日
    浏览(56)
  • Web——html和CSS基础(二)

    前言:更多内容见web专栏  目录 1、html 1、网页元数据 1、简单介绍 2、 meta的作用 3、详解meta中的name 4、详解meta中的http-equiv 2、表格 3、列表 4、引用 5、计算机代码 6、预编排文字 2、CSS 1. 样式分组: 2. CSS文本属性 3. Body样式 4. 层叠样式表 5. 继承模式 6. W3C CSS验证器 7. CSS背

    2024年03月19日
    浏览(37)
  • html中的flex是什么?——弹性布局

    在HTML中,flex是一种布局方式,用于处理容器中的子元素的布局。它是CSS3的一部分,也被称为弹性布局。 通过使用flex布局,可以将容器中的子元素进行灵活的定位和扩展,以适应不同的屏幕尺寸和设备。它提供了一种简单而强大的方法来创建响应式的网页布局。 使用flex布局

    2024年01月17日
    浏览(44)
  • 前端 -- 基础 网页、HTML、 WEB标准 扫盲详解

    网页是构成网站的基本元素,它通常由 图片、链接、文字、声音、视频等元素组成。  通常我们看到的网页 ,常见以 .html 或  .htm  后缀结尾的文件, 因此俗称 HTML 文件  HTML 指的是 超文本标记语言,它是用来描述网页的一种语言  HTML 不是一种编程语言,而是一种 标记语

    2024年02月12日
    浏览(56)
  • 〖Web全栈开发④〗— HTML基础详讲(超详细)

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示HTML文档、PDF、图片、视频等网络内

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包