Flexbox 布局学习笔记及案例教学

什么是 Flexbox 布局?

Flexbox(弹性盒子布局)是一种基于 CSS3 的布局模型,可以帮助我们更方便地进行页面布局,特别是在移动端和响应式布局方面。它的优点很多,比如可以垂直居中、自适应、自动调整元素位置和大小等,对于前端开发者来说是一个非常有用的工具。

Flexbox 的主要概念

在学习 Flexbox 布局之前,需要了解一些基本的概念:

容器(container)

容器是应用 Flexbox 布局的父元素,即包含所有子元素的元素。容器中的子元素可被称为“项目(item)”。

主轴(main axis)

主轴是 Flexbox 容器的方向,可以是水平或垂直方向。

交叉轴(cross axis)

交叉轴是与主轴垂直的轴。

方向(flex direction)

方向决定主轴的方向,默认值是从左到右,但也可以从右到左、从上到下、从下到上等。

对齐方式(justify content)

对齐方式决定项目在主轴上的对齐方式,比如居中、靠近左边、靠近右边等。

伸展(flex)

伸展决定项目的能否伸展以及可伸展的程度。每一个项目都可以设置一个 flex 属性,来控制项目所占的比例。

对齐方式(align items)

对齐方式决定项目在交叉轴上的对齐方式,比如居中、底部对齐、顶部对齐等。

Flexbox 的基本用法

将容器变为一个 Flexbox 容器:

-----------
  -------- -----
-

设置 Flexbox 容器的主轴方向:

-----------
  --------------- ----    ---------
  --------------- ------- ---------
-

设置 Flexbox 容器的对齐方式:

-----------
  ---------------- -------       --------
  ---------------- -----------   --------
  ---------------- ---------     --------
  ---------------- --------------------
  ---------------- ------------- ------
-

设置子元素的伸展属性:

------
  ----- --   ------
  ----- --   ----- ---
  ----- --   ----- ---
-

设置子元素的对齐方式:

------
  ------------ -------          ---------
  ------------ -----------      ---------
  ------------ ---------        ---------
  ------------ ---------        ------
  ------------ --------         -------
-

Flexbox 的实际应用

在实际开发中,Flexbox 布局的应用非常广泛,比如创建基于列的布局(左右列等宽或固定宽度),创建响应式网格布局(自适应或固定宽度的列数),实现轮播、导航、进度条等等。下面简单介绍一些典型的案例。

列布局

  1. 左右两列等宽布局
---- ------------------
  ---- -----------------------
  ---- ------------------------
------

-----------
  -------- -----
-
-------------
  ----- --
-
  1. 固定宽度的左右两列布局:
---- ------------------
  ---- -----------------------
  ---- ------------------------
------

-----------
  -------- -----
-
-------------
  ------ ------
-

网格布局

  1. 3 列自适应布局:
---- ------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
------

-----------
  -------- -----
  ---------- -----   ------
  ---------------- --------------
-
------
  ----------- ----------- - ------
  -------------- -----
-
  1. 4 列固定宽度布局:
---- ------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
  ---- ----------------------
------

-----------
  -------- -----
  ---------- -----
  ---------------- --------------     
-
------
  ------ -------- - ------
  -------------- -----
-

其他应用

  1. 轮播图:
---- ------------------
  ----
    -------------
    -------------
    -------------
    -------------
  -----
------

-----------
  -------- -----
  ---------------- -------
  ------------ -------
-
---
  ------ -----
  ------- -----
  -------- -----
  --------- -------
-
---
  ----- --
  ------- -----
-
  1. 导航条:
---- ---------------
  ----
    -----------
    -------------
    -------------
    -------------
  -----
------

--------
  -------- -----
  ---------------- -------
-
---
  -------- -----
  ---------------- -------------
  ----------- -----
-
---
  -------- -----
-

总结

Flexbox 布局是一个非常有用的前端工具,可以帮助我们更轻松地进行页面布局,而且具有很好的可维护性和可扩展性,可以应用于很多不同的场景。学习 Flexbox 布局有助于提高我们的前端开发水平,虽然会涉及到一些新的概念和语法,但是只要掌握了基本的用法,就可以灵活运用到实践中去。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64741c82968c7c53b018b507


猜你喜欢

  • CSS Reset 如何处理表单控件

    在前端开发中,CSS Reset 是一项非常重要的技术,其作用是消除不同浏览器之间可能存在的样式差异,以便开发者能够更加精准地控制网站样式。表单控件是表单页面中最重要的元素之一,是用户与网站进行交互的...

    1 年前
  • 使用 ES6 的 Symbol 和 Reflect 实现元编程

    随着 JavaScript 语言的不断发展,越来越多的开发者意识到了元编程(Metaprogramming)在框架开发、代码复用等方面的重要性。JavaScript 语言提供了一些元编程技术,其中最常...

    1 年前
  • 使用 SSE 实现服务器消息推送时的跨域问题解决

    前言 在 Web 应用程序中,服务器推送消息是很常见的需求。而 Server-Sent Events(SSE)是一种 Web 技术,可以通过简单的 HTTP 连接从服务器推送消息到客户端。

    1 年前
  • Hapi 框架中的日志处理及实现方法总结

    在前端开发中,日志是一个非常重要的部分。它记录了系统的运行状况和异常情况,对于排查问题、运行监控和数据分析都具有重要的作用。而在 Hapi 框架中,日志处理也有非常独特的实现方法和特点。

    1 年前
  • 在 Vue.js 中使用 TypeScript

    在前端开发中,TypeScript 已经成为了一种非常流行的静态语言。Vue.js 作为一款流行的前端框架,也可以使用 TypeScript 作为编程语言。在本文中,我们将介绍如何在 Vue.js 中...

    1 年前
  • .tsx 文件使用 Babel 编译 "XXXX.externals" 报错,解决办法是配置 exclude 和 include

    tsx 文件使用 Babel 编译 "XXXX.externals" 报错解决指南 在前端开发中,我们常常会使用 TypeScript 或者 JavaScript 进行开发,而 Babel 则是一个很...

    1 年前
  • 如何使用 ECMAScript 2021 中的 Promise 对象

    Promise 是一种异步编程的解决方案,可以有效地避免 JavaScript 中的回调地狱。该对象最初由社区提出,后来被 ES6 引入并成为 ES2021 语言规范的一部分,目前已成为常用的前端开发...

    1 年前
  • 如何为 React 应用程序添加单元测试

    React 作为目前最流行的前端框架,具有很强的灵活性和可扩展性。但是,为了确保代码的可靠性和稳定性,我们需要添加单元测试,以避免在维护或更新应用程序时出现错误和问题。

    1 年前
  • Docker Compose 配置详解:如何快速搭建多个容器应用

    前言 在当今的云原生时代,使用容器技术来运行和管理应用程序已经成为了常态。而 Docker 作为最受欢迎的容器化平台之一,已经被广泛应用于生产环境中。但是,手动创建和启动多个 Docker 容器来运行...

    1 年前
  • PM2 在 Ubuntu 系统下的部署及使用方法

    简介 PM2 是一个开源的 Node.js 应用程序生态系统,在生产环境中管理 Node.js 应用程序的进程和集群。它可以在服务器上自动重启应用程序并监控应用程序的运行状况,确保应用程序始终处于运行...

    1 年前
  • 利用 LESS 实现页面排版

    在前端开发中,页面的排版是一个重要的环节。为了让页面看起来更加美观、规范,我们通常会采用一些 CSS 框架或者自定义样式来完成页面的排版。而在这个过程中,LESS 可以为我们提供帮助。

    1 年前
  • ES8 新特性:Object.entries() 方法详解

    在 JavaScript 的不断发展过程中,ECMAScript (简称 ES)不断推出各种新的语法和 API,为前端开发提供了更多更便捷的操作方式。其中,ES8 新增的 Object.entries...

    1 年前
  • Sass 中如何实现 @mixin 指令的分离编写

    Sass 中如何实现 @mixin 指令的分离编写 前端开发中,Sass 是一种非常流行的 CSS 预处理器。它提供了许多方便的语言特性,能够让我们更加高效地编写样式。

    1 年前
  • Mongoose 中的 MongoDB 数据库权限管理方法

    在使用 MongoDB 数据库时,权限管理是十分重要的。Mongoose 是 Node.js 中一个非常流行的 ODM 库,提供了方便的 MongoDB 操作接口。

    1 年前
  • 在 Jest 单测环境中使用 enzyme-to-json 插件

    前言 在前端开发的过程中,单元测试是一个非常重要的环节。而在 React 项目中,Enzyme 是最常用的测试工具之一,它提供了简单易用的 API 来帮助我们测试 React 组件。

    1 年前
  • 如何使用 Koa 和 Chai-Http 进行 Koa API 测试

    在前端开发过程中,API 测试是不可避免的一部分。在本文中,我们将介绍如何使用 Koa 和 Chai-Http 进行 Koa API 测试,让你的 API 更加健壮和稳定。

    1 年前
  • 使用 Express.js 和 AngularJS 构建单页应用

    单页应用是当前web开发中非常流行的一种模式,它可以提供更好的用户体验并且更加高效。构建单页应用常常使用前端框架和后端框架协作完成。 本文我将介绍如何使用 Express.js 和 AngularJS...

    1 年前
  • 使用 Enzyme 测试 React Native 组件交互状态

    在开发 React Native 应用时,测试是一个非常重要的环节。Enzyme 是一个用于测试 React 应用的 JavaScript 测试工具库。它提供了一组简单而强大的 API,用于测试组件的...

    1 年前
  • 前端性能优化

    在前端开发中,响应速度是至关重要的。慢速载入速度会给用户带来不好的体验,并且会影响网站的 SEO。优化前端性能可以使网站更快,同时也能提高用户满意度。 以下是一些前端性能优化的常用技巧和技术: 1. ...

    1 年前
  • Web Components 中掌握组件抽象设计方法

    随着 Web 开发的不断发展,越来越多的网页应用程序要求开发者能够创建复杂、易于重用的组件。 Web Components 技术提供了一种用于构建自定义浏览器组件的标准化方法。

    1 年前

相关推荐

    暂无文章