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

news2024/11/25 23:52:23

目录:
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.coloradmin.cn/o/740464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音频采样器 Native Instruments Kontakt7 forMac/Windows图文安装教程

Native Instruments Kontakt是一款功能强大、灵活易用的音乐采样软件&#xff0c;适用于各种音乐创作和制作需求。无论是专业音乐制作人还是初学者&#xff0c;都能通过它来实现创意的音乐作品。 Kontakt具有直观的用户界面&#xff0c;可通过拖放方式导入和管理采样库。它支持…

Vmware虚拟机网络配置回顾

如何配置Vmware里的虚拟机网络&#xff1f;这个东西不常用&#xff0c;都是自己练手用的。能用就行&#xff0c;千万不要花时间记&#xff0c;没意义。 很简单&#xff0c;照着敲 首先登陆自己的虚拟机 vim /etc/sysconfig/network-scripts/ifcfg-ens32 TYPE"Ethernet&q…

数据结构--并查集

数据结构–并查集 逻辑结构―—“集合” 所有元素的全集s 将各个元素划分为若干个互不相交的子集 用互不相交的树&#xff0c;表示多个“集合” “并查集”的存储结构 用一个数组S[ ]即可表示“集合”关系 ‘并查集”的基本操作 集合的两个基本操作―— “并” \color{red}“…

ios14~14.3越狱/root(Taurine牛磺酸1.1.6)

Taurine牛磺酸 一键完美越狱 windows安装时建议关闭本地安全中心&#xff08;若报毒的话&#xff0c;没有则忽略&#xff09; 1.安装windows端AltInstaller&#xff1a;安装成功后&#xff0c;电脑右下角控制中心有一个&#xff08;灰色的 小方块&#xff09; 2.安装手机端A…

layui入门

layui入门 一.ayui简介1.简单易用2.组件丰富3.高度定制化4.响应式布局5.轻量灵活 2.layui的入门基础操作3.登录实例4.注册实例 一.ayui简介 Layui&#xff08;流行音 “layui”&#xff0c;来自“领域的模块化”&#xff09;是一款前端UI框架&#xff0c;专注于提升 Web 开发效…

Jmeter接口关联(三)【使用正则表达式提取值】以及正则表达式提取器中模板的含义及用法

文章目录 前言一、Jmeter中使用正则表达式匹配 1、选择 RegExp Tester2、在线程组------》添加------》后置处理器-------里面添加一个“正则表达式提取器”二、关于正则表达式提取器里面字段的解释 参数说明三、进一步解释Jmeter正则表达式提取器中的模板 1、当模板设置为$0$ …

每个开发人员都应该知道的VS Code入门技巧

这里有一些每个开发人员都应该知道的关于Visual Studio Code (VS Code)的技巧: 1、自定义键盘快捷键:VS Code允许您根据自己的喜好自定义键盘快捷键。点击“文件”->“首选项”->“键盘快捷键”或使用快捷键Ctrl K和Ctrl S打开键盘快捷键编辑器。可以修改现有快捷方式或…

抖音seo源码打包分享

抖音seo源码搭建----分享给各位开发者 获取视频列表 $Video_model new App_Model_Douyin_MysqlVideoStorage(); $video_list $Video_model->getList($where,$this->index,$this->count,$sort); $temp_video_model new App_Model_Douyin_…

微信小程序input的placeholder脱离文档流

今天进行真机调试时input的提示词 placeholder脱离了文档流&#xff0c;但是奇怪的是input框没有脱离文档流 如下图所示&#xff1a; 微信开发工具正常&#xff1a; 真机&#xff1a;不正常 脱离文档流 解决方法&#xff1a; <view clas…

给一个体积水,用不同体积的容器去装

这个有两个方案&#xff1a; 1.每个都装得最满&#xff0c;减少瓶子容积损失 //xzlist 瓶子容积排序 tj水总体积 xzzc各个体积瓶子数 public static void Boxjs(int tj, List<Map<String,Object>> xzlist, List<Map<String,Object>> xzzc){boolean f…

Linux信号机制-2

转自&#xff1a;Linux信号处理_linux 信号处理函数_努力啃C语言的小李的博客-CSDN博客 什么是信号 信号本质上是在软件层次上对中断机制的一种模拟&#xff0c;其主要有以下几种来源&#xff1a; 程序错误&#xff1a;除零&#xff0c;非法内存访问等。 外部信号&#xff1a…

Sql 语句小课堂8:求特定字段平均值的问题

Sql 语句小课堂8&#xff1a;求特定字段平均值的问题 问题来源初始数据超标条件方案一&#xff1a;得出汇总结果方案二&#xff1a;在原有数据上附加其结果 小结 问题来源 最近老顾变得原来越咸鱼了&#xff0c;好久没去逛 CSDN 问答了&#xff0c;于是灵感枯竭&#xff0c;不…

postgresql(二):pgsql导出数据

pgsql导出数据 1、概述2、导出数据2.1、导出所有库2.2、导出指定库2.3、导出指定表 3、总结 1、概述 大家好&#xff0c;我是欧阳方超&#xff0c;可以关注我的公众号“欧阳方超”&#xff0c;后续内容将在公众号首发。 今天介绍一下使用pg数据库的命令导出数据的操作。 2、导…

今天给大家分享几款好用的时间管理APP

在现代社会&#xff0c;时间是我们最宝贵的资源之一。有效地管理时间可以提高我们的工作和学习效率&#xff0c;从而实现更好的生活和工作质量。随着技术的不断发展&#xff0c;越来越多的时间管理APP涌现出来。今天&#xff0c;我想向大家分享几款好用的时间管理APP&#xff0…

没有有效的提示词(Prompt),要 Stable Diffusion 何用?

再好的prompt&#xff0c;不如有个简单的prompt工具。 本文推荐一个日本人写的prompt插件&#xff0c;我进行了汉化&#xff0c;并补充了3000多个提示词。只需要鼠标点点就可以了&#xff01;&#xff01;&#xff01; 引子&#xff1a; 今天去看了看Stable Diffusion插件版本…

MobPush Android常见问题

配置了默认点击跳转界面&#xff0c;对所有通道都有效吗 只对MobPush、魅族、小米、华为、OPPO、VIVO通道有效&#xff0c;对FCM通道无效。 如何获取回调参数 进程存活的情况下&#xff0c;可在我们的回调监听中看到通知详情&#xff0c;可以根据回调参数进行处理。 详情请查…

阿里云ECS云服务器的云盘使用

在我阿里云控制台上&#xff0c;可以看到有额外的磁盘&#xff08;2个实例&#xff0c;3个磁盘&#xff09; 找到对应云服务实例&#xff0c;看到了云盘信息 状态显示的挂接点是&#xff1a;/dev/xvdb 进入服务器却无法找到&#xff0c;也无法挂载 执行命令&#xff1a;fdisk …

c# 实现条件编译

创建三个不同的项目配置&#xff0c;分别代表不同的平台&#xff0c;在 Visual Studio 中&#xff0c;可以通过右键单击项目&#xff0c;选择“属性”&#xff0c;然后在“生成”选项卡下配置不同的条件编译符号。 针对 Windows 平台&#xff1a;在“生成”选项卡的“条件编译…

iOS--编译

前言 iOS 开发中使用的是编译语言&#xff0c;所谓编译语言是在执行的时候&#xff0c;必须先通过编译器生成机器码&#xff0c;机器码可以直接在CPU上执行&#xff0c;所以执行效率较高。他是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集合…

Tomcat之配置文件详解

Tomcat 目录 安装好 Tomcat 后&#xff0c;打开它的文件夹&#xff0c;可以看到以下目录 bin:存放各种启动、关闭和其它程序的脚本 conf:配置文件及相关数据文件存放的目录 lib:Tomcat 使用的库文件存放的目录&#xff0c;如存放 Servlet 规范的 API logs:默认日志文件存放…