iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >怎么掌握CSS工具Flexbox
  • 713
分享到

怎么掌握CSS工具Flexbox

2024-04-02 19:04:59 713人浏览 泡泡鱼
摘要

本篇内容主要讲解“怎么掌握CSS工具Flexbox”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么掌握CSS工具Flexbox”吧!随着CSS网格布局的引入,

本篇内容主要讲解“怎么掌握CSS工具Flexbox”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么掌握CSS工具Flexbox”吧!

随着CSS网格布局的引入,你可能会问flexbox布局是否真的还有必要。虽然它们所能做的事情有一些重叠,但其各自在CSS布局中有着非常特别的目的。一般来说,flexbox在一维场景(比如,一串类似的元素)下有最佳应用,而网格是二维场景下理想的布局方案(例如整个页面的元素)。

即便如此,flexbox仍可以用于整个页面的布局,这样它能为那些还不支持网格布局的浏览器提供合适的兼容处理。(必须承认,网格布局正在大多数现代浏览器中快速得到支持,不过对flexbox的支持仍然更为广泛,所以如果你想让你的布局在稍微老旧的浏览器中也生效,使用flexbox作为网格布局的降级方案是很容易的)。

使用Flexbox的好处

flexbox的一些好处是:

  • 页面元素能被任意方向地放置(靠左、靠右、从上往下甚至从下往上)

  • 布局内容的可视顺序能够被反转或重排

  • 元素大小能“弹性”适应可用空间,并根据容器或者兄弟元素进行相应地对齐

  • 能轻松实现等列宽布局(与每一列里面的内容无关)

为了阐述其多样的属性和可能性,让我们假设下面有这样的布局用例:

<div class="example">
  <header>
    header content here
  </header>
  <main class="main">
    <nav>
      nav content here
    </nav>
    <div class="content">
      main content here
    </div>
    <aside>
      aside content here
    </aside>
  </main>
  <footer>
    footer content here
  </footer>
</div>

首先,是把元素一起放进.main里,比如,<nav>和<aside>。如果没有flexbox,我们可能会把三个元素全部进行浮动,但想让它按理想的方式工作显得并不直观。而且,按传统的方式做这件事会出现一个众所周知的问题:每一列仅仅和它的内容一样高。因此,你可能需要把三个元素都设置为统一的高度。

让flexbox来救场吧。

让我们Flex

flexbox的要点是出现在display属性上的flex值,它需要被设置在容器元素上。如此设置会让它的子元素变成“弹性项目(flex item)”。这些弹性项目拥有一些易于使用的默认属性。比如,它们被紧挨着放置,那些没有特别指明宽度的元素自动占满了剩余的空间。

因此,如果你给.main设置了display:flex,它的子元素.content就被自动挤在<nav>和<aside>之间。不需要再多余的计算,多么方便是吧?作为附加奖赏,所有三个元素神奇地拥有了相同的高度。

.main {
  display: flex;
}

请查看下面的例子,包含了所有的细节

项的顺序:Flebox的****order****属性

另外一个flexbox的能力,是能够轻松改变元素的显示顺序。让我们假设你为一个客户制作了上面的布局,而她现在想要.content出现在<nav>之前。

通常,你需要深入到html源码中去,在那里改变元素的顺序。而有了Flexbox,你可以完全使用CSS完成这项任务。只需把.content的order属性设置为-1,那么这一列就会出现在前面,这本例就是最左边。

.main {
  display: flex;
}
 
.content {
  order: -1;
}

本例中,你不需要改变其他列的order。例子在 flexbox-demo-2 。

如果你倾向于显式地为每一列指定order,你可以将.content的order设为1,把<nav>的order设为2,把<aside>的设为3。

HTML源码独立于CSS的Flexbox样式

但你的客户并不满足。她想让<footer>成为页面的第一个元素,显示在<header>之前。那好,同样的,flexbox是你的朋友(虽然像在此例中,可能你得跟你的客户好好谈谈,而不是跟随指示)。因为你不仅要重排列内部元素,还要重排外部的,display:flex规则将被设置在<div class=”example”>之上。注意这里是如何在页面中嵌套使用flex容器来达到你想要的效果的。

因为<header>,<main class=”main”>和<footer>相互堆叠着,你需要首先设置一个垂直上下文,它能够通过设置flex-direction:column来快速完成。还有,<footer>的order被设置为-1,如此一来它就出现在页面的最上头。就这么简单。

.example {
  display: flex;
  flex-direction: column;
}
 
footer {
  order: -1;
}

所以,如果你想把一行元素修改为一列,或者相反,你可以使用flex-direction属性,并设置它相应地为column或row(row是默认值)。

然而,强大的能力也到来了更多的责任:谨记,一些用户可能会使用键盘来导航你的基于flexbox的网站,如果你HTML源码中元素的顺序和屏幕上显示的有所出入,那么无障碍访问的能力就成为需要认真对待的问题。

如何在Flexbox中对齐子项

Flexbox能非常直观地处理子项的水平对齐和垂直对齐。

你可以使用align-items对flex容器中的所有子项设置统一的对齐。如果你想给个别元素设置不同的对齐方式,使用align-self。元素的对齐方式跟它所在父容器的flex-direction有关。如果它的值是row(意味着元素水平排列),对齐方式是指在垂直轴上。如果flex-direction被设置为column(意味着元素垂直排列),对齐方式就是指在水平轴上。

例如,你让一些元素在容器中分别有不同的对齐方式,你需要:

设置每个元素的align-self属性为合适的值。可能的值有:center,stretch(元素撑满它的容器),flex-start,flex-end和baseline(元素被放置在父容器的baseline上)

把容器元素设置为display:flex

最后,注意父容器的flex-direction属性,因为它关系到子元素的对齐方式。

.example {
  display: flex;
  flex-direction: column;
}
 
.red {
  align-self: center;
}
 
.blue {
  align-self: flex-start;
}
 
.pink {
  align-self: flex-end;
}

试试在下面的例子中,把父容器的flex-direction在row和column之间切换,看看它们引起的实时变化。

如果想要容器中所有的元素有统一的对齐方式,你可以在容器上使用align-items。可以的值有center,flex-start,flex-end,stretch(默认值:子项被拉伸以适应它们的容器)和baseline(子项被放置在父容器的baseline上)。

.example {
  display: flex;
  align-items: center;
}

像往常一样,试着把父容器的flex-direction在row和column之间切换,看看它们如何影响着你设置align-items值时所发生的作用。

在Flexbox里两端对齐

另一个控制对齐的属性是justify-content,当你想让多个元素等分空间时非常有用。

可接受的值有:center,flex-start,flex-end, space-between(元素利用主轴之间的空间而排布)和space-around(元素利用主轴之前、之间和之后的空间而排布)。

例如,在之前你一直使用的简单HTML模板里,你可以在<main>里找到三个元素:<nav>,.content和<aside>。之前,它们都被挤在页面的左边。如果你想让它们之间有一些空间,但是不让第一个元素的左边有空间,也不想让最后一个元素的右边有空间,你可以把.main(即它们的父容器)里的justify-content设置为space-between。

.main {
  display: flex;
  justify-content: space-between;
}

也试一下设置为space-around,观察不同的结果。

Flexbox中弹性子项的大小

使用flex属性,你能够对照flex容器中其他元素来控制弹性子项的大小。

这个属性是以下独立属性的简写:

flex-grow:一个数字,指明元素如何相对其他flex项来拉伸

flex-shrink:一个数字,指明元素如何相对其他flex项来收缩

flex-basis:元素的长度。可接受的值有:auto,inherit或者一个数字后面紧跟着%,px,em或其他长度单位。

例如,想得到三个等宽的列,只需给每一列设置flex:1,其他什么都不用做:

nav, aside, .content {
  flex: 1;
}

如果你需要.content占据<nav>和<aside>的两倍宽,那么就把.content设为flex:2,让其他两个为1。

那仅仅是对flex属性最简单的应用。同样可以设置flex-grow,flex-shrink和flex-basis这些值。

到此,相信大家对“怎么掌握CSS工具Flexbox”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么掌握CSS工具Flexbox

本文链接: https://www.lsjlt.com/news/85622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么掌握CSS工具Flexbox
    本篇内容主要讲解“怎么掌握CSS工具Flexbox”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么掌握CSS工具Flexbox”吧!随着CSS网格布局的引入,...
    99+
    2024-04-02
  • 掌握 golang 函数分析工具
    go 函数分析工具对于理解和优化 go 程序至关重要。pprof:用于分析函数的 cpu 使用情况和内存分配。go tool trace:允许可视化分析函数的调用关系和执行时间。go-f...
    99+
    2024-05-06
    golang 函数分析 git
  • 一文带你掌握axios工具函数
    目录前言源码阅读kindOfisBufferisArrayBufferViewisPlainObjectisFormDatatrimfindKeymergestripBOMendsW...
    99+
    2022-12-15
    axios 工具函数 axios 函数
  • CSS中的flexbox怎么用
    小编给大家分享一下CSS中的flexbox怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   将Flexbox设置为父元...
    99+
    2024-04-02
  • Java工程师必须掌握的三种工具:Git、NPM、NumPy
    Java是一门广泛使用的编程语言,它的应用范围非常广泛。作为一名Java工程师,你需要掌握各种工具来提高你的效率和生产力。在本篇文章中,我们将介绍三种Java工程师必须掌握的工具:Git、NPM和NumPy。 一、Git Git是一种源代...
    99+
    2023-10-28
    git npm numy
  • 一文掌握Java开发工具Maven(简单上手)
    目录Maven1、安装maven1.1 Windows安装1.2 Linux安装1.3 简单配置1.4 idea配置2、Maven简单上手3、Maven生命周期4、POM文件详解4....
    99+
    2024-04-02
  • 掌握Golang常用标准库:必备工具速查!
    Golang常用标准库一览:快速掌握必备工具!Golang(即Go语言)是一种开源的编程语言,自其推出以来在开发者中迅速赢得了认可。其简洁的语法、高效的性能和强大的并发能力使得Golang在构建网络应用、分布式系统和云计算等领域中备受推崇。...
    99+
    2023-12-29
    Golang 常用标准库 必备工具
  • Java Git 专家之路:掌握现代开发工具
    随着软件开发领域的不断演进,掌握现代开发工具变得至关重要,而 Git 作为分布式版本控制系统,在当今的技术生态系统中发挥着关键作用。对于 Java 开发人员来说,精通 Git 对于高效协作和项目管理不可或缺。 Git 基础 踏上 Git ...
    99+
    2024-04-02
  • 高效掌握JDBC技术(二)| 掌握ORM思想 | 定义连接数据库的工具类
    ✅作者简介:C/C++领域新星创作者、CSDN内容合伙人,喜欢学习后端语言的大学生 ✨精品专栏:C++面向对象核心 🔥系列专栏:JDBC技术 📃推荐一款模拟面试、刷题神器👉注册免费刷题 ...
    99+
    2023-08-16
    数据库 mysql 大数据
  • 掌握命令行工具:保护你的Linux服务器
    保护Linux服务器是确保服务器安全性的重要方面。以下是一些常见的命令行工具和技术,可用于增强Linux服务器的安全性:1. 防火墙...
    99+
    2023-10-10
    Linux
  • 一文掌握JavaScript数组常用工具函数总结
    目录一. 实现Array.isArray二. 将类数组转换为数组1. 借用数组的方法进行转换2. es6的方式转换三. 判断是否为数组四. 数组方法实现1.forEach2. fil...
    99+
    2024-04-02
  • 常用的软件工具,帮助你掌握Python学习
    了解学习Python时常用的软件工具,需要具体代码示例 Python作为一种高级编程语言,已经被广泛应用于各个领域。它的简洁、易读的语法,以及强大的功能,使得Python成为许多开发者的首选语言。在学习Python的过程中,有几...
    99+
    2024-01-13
    编辑器 解释器 调试器
  • Python、Django、npm 教程:如何快速掌握这些工具?
    Python、Django、npm 都是现代化的编程工具,在开发过程中都有着重要的作用。Python 是一种高级编程语言,可以用于各种目的,包括 Web 开发、科学计算、人工智能等。Django 是一个流行的 Python Web 开发框...
    99+
    2023-10-30
    django npm 教程
  • JavaScript 超级英雄:掌握浏览器开发者工具
    ...
    99+
    2024-04-02
  • 怎么掌握webpack
    本篇内容介绍了“怎么掌握webpack”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是webpack?...
    99+
    2024-04-02
  • 怎么掌握Python
    本篇内容介绍了“怎么掌握Python”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 基础1.变量你可以把变量想象成一个用来存储值...
    99+
    2023-06-17
  • 怎么掌握TypeScript
    这篇文章主要介绍“怎么掌握TypeScript”,在日常操作中,相信很多人在怎么掌握TypeScript问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握TypeScript”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-27
  • 怎么掌握AJAX
    这篇文章主要介绍“怎么掌握AJAX”,在日常操作中,相信很多人在怎么掌握AJAX问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握AJAX”的疑惑有所帮助!接下来,请跟着...
    99+
    2024-04-02
  • 怎么掌握SQL
    这篇文章主要讲解了“怎么掌握SQL”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么掌握SQL”吧!实例1我们首先从终端连接到MySQL服务器并创建一个数据...
    99+
    2024-04-02
  • CSS中的URL工具怎么用
    小编给大家分享一下CSS中的URL工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!有许多原因使得你需要在CSS代码中系统...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作