十四、flex弹性容器属性样式2

目录:
1.准备工作
2.属性解析: align-items
3.属性解析: align-content
4.弹性元素的属性

一、准备工作

我们在前面的基础上,修改代码,把ul的高度定下来,设置800px, li的高度不定。
然后,body里面添加div.

代码如下:

<style>*{margin: 0;padding: 0;list-style: none;}ul{width: 800px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;}li{width: 200px;text-align: center;font-size: 28px;line-height: 100px;/* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */flex-shrink: 0;}li:nth-child(1){background-color: #bfa;}li:nth-child(2){background-color: pink;}li:nth-child(3){background-color: orange;}</style>
<body><ul><li>1</li><li>2<div>2</div></li><li>3<div>3</div><div>3</div></li></ul></body>

二、属性解析: align-items

  1. align-items
  • 元素在辅轴上如何对齐
  • 元素间的关系(比如上面的1和2, 2和3 这些元素之间的对齐方式)
  1. 可选值:
    - stretch 默认值,将元素的长度设置为相同的值
<style>*{margin: 0;padding: 0;list-style: none;}ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 元素之间的关系 */align-items: stretch;/* 多的li进行换行 */flex-flow: row wrap;}li{width: 200px;text-align: center;font-size: 28px;line-height: 100px;/* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */flex-shrink: 0;}li:nth-child(1){background-color: #bfa;}li:nth-child(2){background-color: pink;}li:nth-child(3){background-color: orange;}li:nth-child(4){background-color: yellow;}li:nth-child(5){background-color: chocolate;}</style>
<body><ul><li>1</li><li>2<div>2</div></li><li>3<div>3</div><div>3</div></li><li>1</li><li>2<div>2</div></li></ul></body>

这个第一行的高度一样,第二行的高度一样,这就是stretch 定义的相同的值。 是行与行之间的高度,并不是所有元素高度都一样。

本来1他内容撑开的高度很矮,设置了stretch后,他会为了匹配大家相同的高度,把自己的高度拉长

- flex-start :元素不会拉伸,而是沿着辅轴起边对齐
比如目前我们的主轴是水平方向,辅轴就是垂直方向,所以这里的起边,就是顶部上方。

 ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 因为辅轴是纵向,所以起边就是顶部上方,因此这里控制他是每行元素顶部对齐 */align-items: flex-start;/* 多的li进行换行 */flex-flow: row wrap;}

- flex-end :元素不会拉伸,而是沿着辅轴的终边对齐
同理

 ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 因为辅轴是纵向,所以终边就是底部,因此这里控制他是每行元素底部对齐 */align-items: flex-end;/* 多的li进行换行 */flex-flow: row wrap;}

- center :元素不会拉伸,而是居中对齐
同理

 ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 因为辅轴是纵向,每行元素的中心对齐*/align-items: center;/* 多的li进行换行 */flex-flow: row wrap;}

应用:需求是要求元素li,在元素ul里面垂直水平,双方向对齐居中。

  ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* ul里面的元素li,水平垂直方向都居中,关键是这两行代码。justify-content: center; align-items: center;*/justify-content: center;align-items: center;/* 多的li进行换行 */flex-flow: row wrap;}li{width: 200px;text-align: center;font-size: 28px;line-height: 100px;/* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */flex-shrink: 0;}
  <ul><li>1</li></ul>

- baseline :基线对齐 (用的不多,主要针对文字,沿着文字的基线对齐)

三、属性解析: align-content

  • align-content:设置辅轴上的空白空间分布。

我们知道主轴上有空白空间,辅轴上也有空白空间。
align-items是控制横向,元素之间的对齐的, 对应的align-content是对齐元素之间的空白的。

  • 可选值:

- align-content: center; :让辅轴上下的空白相等,元素在中间

<style>*{margin: 0;padding: 0;list-style: none;}ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 辅轴上,元素之间是顶部对齐 */align-items: flex-start;/* 辅轴上,上下空白相等 */align-content: center;/* 多的li进行换行 */flex-flow: row wrap;}li{width: 200px;text-align: center;font-size: 28px;line-height: 100px;/* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */flex-shrink: 0;}li:nth-child(1){background-color: #bfa;}li:nth-child(2){background-color: pink;}li:nth-child(3){background-color: orange;}li:nth-child(4){background-color: yellow;}li:nth-child(5){background-color: chocolate;}</style>
<ul><li>1</li><li>2<div>2</div></li><li>3<div>3</div><div>3</div></li><li>1</li><li>2<div>2</div></li></ul>

- align-content: flex-start; :让辅轴上空白在下面,元素在辅轴的上方

- align-content: flex-end :让辅轴上空白在上方,元素在辅轴的下方

- align-content: space-around :让辅轴上空白在环顾在每行的上下两边

- align-content: space-between :让辅轴上空白在中间

总的来说,就是通过指定空白的位置,来对齐两行元素。

四、弹性元素的属性

  • align-self:用来覆盖当前弹性元素上的align-items

本来我们在ul 统一设置了 align-items: flex-start; 也就是说ul下的子元素li都有这个属性,但是现在我想针对第一个li,单独设置他的align-items, 此时我们就用align-self 来覆盖。

  • 关键代码:
  li:nth-child(1){/* align-self:用来覆盖当前弹性元素上的align-items这li的第一个元素,设置了这个后,会把原来设置过的align-items样式覆盖掉*/align-self:stretch;}
  • 完整代码:
<style>*{margin: 0;padding: 0;list-style: none;}ul{width: 600px;height: 800px;border: 10px red solid;/* 设置ul为弹性元素 */display: flex;/* 辅轴上,元素之间是顶部对齐 */align-items: flex-start;align-content: space-between;/* 多的li进行换行 */flex-flow: row wrap;}li{width: 200px;text-align: center;font-size: 28px;line-height: 100px;/* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */flex-shrink: 0;}li:nth-child(1){/* align-self:用来覆盖当前弹性元素上的align-items这li的第一个元素,设置了这个后,会把原来设置过的align-items样式覆盖掉*/align-self: stretch;background-color: #bfa;}li:nth-child(2){background-color: pink;}li:nth-child(3){background-color: orange;}li:nth-child(4){background-color: yellow;}li:nth-child(5){background-color: chocolate;}</style>
<body><ul><li>1</li><li>2<div>2</div></li><li>3<div>3</div><div>3</div></li><li>1</li><li>2<div>2</div></li></ul></body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19141.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVS + keepalived

一、keepalived概述1.1 keepalived 服务重要功能1.1.1 管理LVS负载均衡器软件1.1.2 支持故障自动切换&#xff08;failover&#xff09;1.1.3 实现LVS集中节点的健康检查&#xff08;health checking&#xff09;1.1.4 实现 LVS 负载调度器、节点服务器的高可用性&#xff08;H…

OpenAI GPT-4 Code Interpreter测试

OpenAI GPT-4 Beta版本Code Interpreter功能分析 OpenAI最近在GPT-4中推出了Code Interpreter功能的Beta版本&#xff0c;它是ChatGPT的一个版本&#xff0c;可以编写和执行Python代码&#xff0c;并处理文件上传。以下是对其表现的基本分析。 主要功能 文件信息获取&#xf…

Blender基础入门(0):下载和资源

文章目录 我个人的Blender专栏前言相关资料Blender和C4D如何选择视频资源BlenderBlender官网下载基础设置常用快捷键介绍空格键&#xff1a;跳出选择框ShiftA&#xff1a;跳出添加框选中物体按F9:显示物体属性 Blender能做到什么总结 我个人的Blender专栏 Blender简单教学 前…

冯诺依曼结构和操作系统的理解

在正式讲解进程之前&#xff0c;需要先铺垫一些基本知识. 目录 冯诺依曼结构 操作系统 冯诺依曼结构 这个名词相信大家非常熟悉&#xff0c;我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 这张图…

从零开始学习自动驾驶决策规划

从零开始学习自动驾驶决策规划 从入门到掌握的一系列讲解&#xff0c;其中涵盖的内容如下&#xff1a; 前言课 第一节-ros工程的创建 第一节-运行环境和工程目录简介第二节-工程运行和小车模型搭建简介 第二节-车辆里程计第三节-整体架构思路 第三节-地图路线构建方法 第三节…

Spring Cache (基础知识+瑞吉外卖项目)

Spring Cache 基本介绍 Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache提供了一层抽象&#xff0c;底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓…

基于github制作个人学术网站(主页)

模板 首先找到一个学术模板&#xff0c;fork到远程仓库。academicpages&#xff0c;如果不是很清楚具体的步骤&#xff0c;可以参考保姆级教程。在github上对该网站代码修改不是很方便&#xff0c;肯定是在本地进行更新后push到远程仓库。 本地Git 学会下载和安装就行&#…

基于高斯混合模型聚类的风电场短期功率预测方法(Pythonmatlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

正则表达式测试(二)

一、中括号的语法 匹配所有的字符&#xff0c;返回一个数组,包含匹配的所有字符内容&#xff0c;按顺序展开&#xff1b; 注意&#xff1a;空格也会被匹配到 匹配所有符合的字符&#xff0c;返回一个数组。 匹配空白字符 匹配非空白字符 匹配 空白字符 非空白字符 如上所示&am…

生成式AI:大语言模型ChatGPT交互的机制

推荐&#xff1a;将NSDT场景编辑器加入你的3D工具链 3D工具集&#xff1a;NSDT简石数字孪生 与 ChatGPT 有效交互的快速工程 随着生成式人工智能的普及&#xff0c;特别是 ChatGPT&#xff0c;提示已成为人工智能世界中越来越重要的技能。制作提示&#xff0c;与大型语言模型&…

SIP业务之BLF

BLF&#xff08;Busy Lamp Field&#xff09;是SIP应用中的一项重要业务&#xff0c;用来监视目标号码的状态&#xff0c;常用于调度、坐席监控等场景。 一、 BLF原理 BLF功能需要IP终端或话机与SIP服务器协同实现的&#xff0c;主要流程如下&#xff1a; IP话机向SIP服务器发…

ByteBuddy学习笔记

ByteBuddy 1.ByteBuddy的用途 ByteBuddy通过修改字节码来新增、修改、删除Java类的现有功能&#xff0c;主要用于分离功能代码和非功能代码&#xff0c;比如 比如非功能代码如下&#xff1a; public double calculatePrice(){double discount getDiscount();double price …