首页 > 其他分享 >浅谈flex布局

浅谈flex布局

时间:2024-10-16 23:23:31浏览次数:1  
标签:flex direction 浅谈 color 布局 height width background

flex布局

1.flex布局如何生效

image

如图所示,在一个父盒子中有三个子盒子.
代码如下:

         <div class="bigbox">
             <span>1</span>
             <span>2</span>
             <span>3</span>
         </div>

大家看到这里不禁会有个疑问:为什么span标签明明是行内元素,却是个盒子?
不要急,这便是flex布局的作用.
css代码如下:

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
}


.bigbox span{
     width: 100px;
     height: 50px;
     background-color: green;
     margin: 10px;
}

如果我们想让子元素在父盒子中以flex布局显示,只要在父盒子中设置display:flex,从而可以控制子盒子的位置和排列方式。

设置完flex,就可以让父盒子的子盒子以行内块形式横向排列.

2.flex布局父项常见属性

  1. flex-direction 控制子盒子的排列方向,横向还是纵向.
  2. justify-content 控制子盒子在主轴方向上的排列。
  3. align-items 控制子盒子在侧轴方向上的排列方式(单行)
  4. flex-wrap 设置子盒子是否换行
  5. align-content 控制子盒子在侧轴方向上的排列方式(多行)
  6. flex-flow 复合属性,相当于同时设置了flex-wrap和flex-direction。

2.1 flex-direction

先讲一下,什么是主轴? 什么是侧轴?

image

如图所示,默认主轴方向就是x轴,水平向右,侧轴方向是y轴,水平向下。

然后呢,flex-direction这个属性就是可以设置主轴的方向,是沿着x轴方向还是沿着y轴方向。

flex-direction共有四个属性,分别是:

1.row(横向)(默认)

从左向右
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
}

2.colum(纵向)

从上向下
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: column;
}

3.row-reverse(反向横向)

从右向左
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row-reverse;
}

4.column-reverse(反向纵向)

从下向上
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: column-reverse;
}

2.2 justify-content

这个属性是设置子盒子在主轴上的排列方式

常用5个属性,分别是:

1.flex-start

默认值,如果主轴为x轴,则是从左向右

image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      justify-content: flex-start;
}

2.flex-end

从尾部开始排列

image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      justify-content: flex-end;
}

3.center

若主轴为x轴则是水平居中对齐,若为y轴则是垂直居中对齐
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      justify-content: center;
}

4.space-around

平分剩余空间

image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      justify-content: space-around;
}

5.space-between

贴着两边,剩余空间平均分配
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      justify-content: space-between;
}

2.3 align-items

这个属性的作用是,控制子盒子在侧轴上的排列方式

常用有4个属性,分别是:

1.flex-start
若侧轴为y轴,排列方向则是自上向下
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      align-items:flex-start;
}

2.flex-end
自下向上
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      align-items:flex-end;
}

3.center

居中对齐
image

.bigbox{
      display: flex;
      width: 1000px;
      height: 400px;
      background-color: pink;
      flex-direction: row;
      align-items:center;
}

4.stretch
默认,延伸

2.4 flex-wrap

这个属性的作用为设置子元素是否换行

就两个属性

1.nowrap
默认值,不换行

.bigbox{
   display: flex;
   width: 250px;
   height: 400px;
   background-color: pink;
   flex-direction: row;
   flex-wrap: nowrap;
}


.bigbox span{
  width: 100px;
  height: 50px;
  background-color: green;
  margin: 10px;
}

注意看,父盒子的宽度width:250px,而子盒子的宽度width为100px,按理说三个子盒子,父盒子应该装不下了,要溢出了才对,但是实际情况却是:
image
三个子盒子自动向右延伸了。

但是如果我们不想让子盒子延伸,而是溢出的盒子直接换行,那该怎么办呢?

就需要用到我们的第二个属性:

2.wrap

给溢出的子盒子设置换行

.bigbox{
    display: flex;
    width: 250px;
    height: 400px;
    background-color: pink;
    flex-direction: row;
    flex-wrap: wrap;
}


.bigbox span{
   width: 100px;
   height: 50px;
   background-color: green;
   margin: 10px;
}

image

标签:flex,direction,浅谈,color,布局,height,width,background
From: https://www.cnblogs.com/xie-blog/p/18471147

相关文章

  • CSS网页布局(重塑网页布局)
    一、实现两列布局许多网站有一些特点,如页面顶部放置一个大的导航或广告条,右侧是链接或图片,左侧放置主要内容,页面底部放置版权信息等一般情况,此类网页布局的两列都有固定的宽度,而且从内容上很容易区分主要内容区域和侧边栏。页面布局整体分为上、中、下3个部分,即header区域、......
  • 【优化布局】蚁群算法ACO求解场地级设施布局优化问题【含Matlab源码 7551期】
    ......
  • ECharts关系图-悲惨世界人物关系图(环形布局),附视频讲解与代码下载
    引言: 关系图(或称网络图、关系网络图)在数据可视化中扮演着至关重要的角色。它们通过节点(代表实体,如人、物体、概念等)和边(代表实体之间的关系或连接)的形式,直观地展示了数据集中各元素之间的复杂关联。本文将详细介绍如何使用ECharts库实现一个关系图,包括图表效果预览、视频讲解......
  • 请问公司网站布局图片替换
    要实现公司网站布局中的图片替换,通常涉及以下几个步骤:选择新的图片:首先你需要准备好用于替换的新图片,并确保这些图片的质量和尺寸适合网站使用。备份现有图片和代码:在进行任何更改之前,最好先备份当前网站的相关文件,包括图片和涉及到的HTML/CSS/JavaScript代码。更新图片路径:找......
  • Vue2用户中心页面开发教程:从零开始,用HTML、CSS和Vue构建新手友好的个人中心页面,提供完
    效果图:使用Vue.js构建用户中心页面:从零到实现在本教程中,我们将使用Vue.js构建一个用户中心页面,这是一个常见的Web应用页面。我们将涵盖页面的布局、样式,以及Vue的基本数据绑定和事件处理功能。这是一个为前端新手量身定制的项目,通过此项目可以了解如何快速构建用户友好......
  • 第4天:用户界面和布局
    内容概述:本章节代码见:登录应用(LoginApp)布局介绍:LinearLayout(线性布局):将子视图以水平或垂直方式排列。RelativeLayout(相对布局):允许子视图相对于其他视图定位。ConstraintLayout(约束布局):提供更灵活和高效的布局方式。使用XML构建UI:布局文件的基本结构。常用属性:layout......
  • 纯flex布局实现传统导航三栏布局
    前情提要flex布局仍然是现在主流的布局方式,但是我实在看不下去csdn上的关于flex的教程了本来想更加细致地讲解flex布局的,可是我比较懒,直接实现一个比较经典的布局吧效果图实现代码 HTML5code:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • 浅谈 K-D Tree 及其进阶应用
    前言\(\text{K-DTree(K-DimensionTree)}\)是一种可以有效处理高维信息的数据结构。在一般信息学竞赛题目中\(k=2\),此时它又称\(\text{2-DTree}\)。但遗憾的是,\(k\ge3\)的情况并不常见,这个我们后面再说明原因。算法描述问题首先从简单的情况考虑起,假设信息只有一......
  • 浅谈Java之UDP通信
    一、基本介绍        Java提供了用于处理UDP(用户数据报协议)的类和方法。UDP是一种无连接的网络协议,它允许发送端和接收端之间无需建立连接即可发送数据。在Java中,你可以使用java.net包中的DatagramSocket和DatagramPacket类来实现UDP通信。二、简单用法以下是使用......
  • coca flex (variable length) queries
     LISTdisplay:flex(variablelength)queriesYoucannowdosearcheswherethereareavariablenumberof"slots".Forexample,thesearch:PUT (NOUN){3} away  (clicktorunthequery)wouldfindstringswith PUT atthebeginnin......