CSS flex布局的使用之逆战班系列_nzjustify无效-程序员宅基地

技术标签: flex  

一、 什么是flex布局
Flex是Flexible Box的缩写,也称“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。
注:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。
二、 基本概念
采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
三、 容器属性
用于容器上的属性
flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content

3.1 flex-direction属性
flex-direction属性决定主轴的方向(即项目的排列方向)
取值:row(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。 column-reverse:主轴为垂直方向,起点在下沿。

<style>
    *{
    padding: 0;margin: 0;}
    .box{
    display: flex;flex-direction:row;margin-left: 50px;}
    .box div{
    width: 100px;height: 100px;background-color: red;border: 1px solid black;}
</style>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

在这里插入图片描述

.box{
    display: flex;flex-direction:row-reverse;margin-left: 50px;}

在这里插入图片描述

.box{
    display: flex;flex-direction:column;margin-left: 50px;}

在这里插入图片描述

.box{
    display: flex;flex-direction:column-reverse;margin-left: 50px;}

在这里插入图片描述
3.2 flex-wrap属性
默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
取值:nowrap(默认):不换行。
wrap:换行,第一行在上方。
wrap-reverse:换行,第一行在下方。

<style>
    *{
    padding: 0;margin: 0;}
    .box{
    display: flex;flex-wrap: nowrap;margin-left: 50px;width: 250px;height: 300px; background-color: blue;}
    .box div{
    width: 100px;height: 100px;background-color: red;border: 1px solid black;}
</style>
<body>
    <div class="box">

在这里插入图片描述

    .box{
    display: flex;flex-wrap:wrap;margin-left: 50px;width: 250px;height: 300px; background-color: blue;}

在这里插入图片描述

 .box{
    display: flex;flex-wrap:wrap-reverse;margin-left: 50px;width: 250px;height: 300px; background-color: blue;}

在这里插入图片描述

3.3 flex-flow属性
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

3.4 justify-content属性
justify-content属性定义了元素在主轴上的对齐方式。
取值:flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

<style>
    *{
    padding: 0;margin: 0;}
    .box{
    display: flex;justify-content: flex-start; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}
    .box div{
    width: 100px;height: 100px;background-color: red;border: 1px solid black;}
</style>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>

在这里插入图片描述

  .box{
    display: flex;justify-content: flex-end; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

 .box{
    display: flex;justify-content: center; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

  .box{
    display: flex;justify-content: space-between; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

.box{
    display: flex;justify-content: space-around; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

3.5 align-items属性
align-items属性定义项目在交叉轴上如何对齐。
取值:flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

<style>
    *{
    padding: 0;margin: 0;}
    .box{
    display: flex;align-items:flex-start; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}
    .box div{
    width: 100px;height: 100px;background-color: red;border: 1px solid black;}
</style>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

在这里插入图片描述

 .box{
    display: flex;align-items:flex-end; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

.box{
    display: flex;align-items:center; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

 .box{
    display: flex;align-items:baseline; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

 .box{
    display: flex;align-items:stretch; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}

在这里插入图片描述

3.6 align-content属性
align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
取值:
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。

四、 项目的属性
4.1 order属性
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

<style>
    *{
    padding: 0;margin: 0;}
    .box{
    display: flex;align-content:center; margin-left: 50px;width: 600px;height: 300px; background-color: blue;}
    .box div{
    width: 100px;height: 100px; background-color: red;border: 1px solid black;}
    .box div:nth-of-type(1){
    order: 0;}
    .box div:nth-of-type(2){
    order: 2;}
    .box div:nth-of-type(3){
    order: 1;}
</style>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

在这里插入图片描述
4.2 flex-grow属性
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

  .box div:nth-of-type(1){
    flex-grow: 0;}
  .box div:nth-of-type(2){
    flex-grow: 2;}
  .box div:nth-of-type(3){
    flex-grow: 1;}

在这里插入图片描述

4.3 flex-shrink属性
flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效。

.box{
    display: flex;align-content:center; margin-left: 50px;width: 250px;height: 80px; background-color: blue;}
    .box div{
    width: 100px;height: 100px; background-color: red;border: 1px solid black;}
    .box div:nth-of-type(1){
    flex-shrink: 1;}
    .box div:nth-of-type(2){
    flex-shrink: 0;}
    .box div:nth-of-type(3){
    flex-shrink: 0;}

在这里插入图片描述

4.4 flex属性
flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

4.5 align-self属性
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Death_JJ/article/details/104600301

智能推荐

js map()方法 详解与使用_new map()条件渲染按钮 js-程序员宅基地

文章浏览阅读1.6w次,点赞2次,收藏9次。javascript也有map和set数据类型。 与javaHashMap()类似Js map()方法 set()存值. get();取值1.industryMap.set(“key”,”value”);添加值,2.industryMap.get(“value”);//获取值var industryMap = new Map();//新建 一个mapVar ind..._new map()条件渲染按钮 js

ssm 智慧仓储数据分析系统--65052 (免费领源码、附论文)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案-程序员宅基地

文章浏览阅读91次。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。智慧仓储数据分析系统使用Java语言,采用基于 MVC模式的SSM技术进行开发,使用 Eclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。

JavaScript 判断 NaN 的方法 (类型判断)_js判断nan数据类型-程序员宅基地

文章浏览阅读3.6k次。1. window.isNaN()(1) window.isNaN(NaN) // true(2) window.isNaN(123) // false注意: window.isNaN 只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而..._js判断nan数据类型

python监视文件夹下文件更新_使用Python监视指定目录下文件变更的方法-程序员宅基地

文章浏览阅读1.2k次。# -*- coding: utf-8 -*-# @Author: xiaodong# @Date: just hide# @Last Modified by: xiaodong# @Last Modified time: just hideimport osimport globimport jsonimport datetimefrom typing import Iterable"""监视指..._python下载文件判断是否更新

35款 SpringBoot/SpringCloud 开源项目,用来接私活挣钱真爽!-程序员宅基地

文章浏览阅读327次。简介SpringBoot 是一个非常流行的 Java 框架,它可以帮助开发者快速构建应用程序。他不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置来进一步简化了 Spring 应用的整个搭建和开发过程。最近,小编蹲点各大开源网站、社区等,终于被我找到了35款基于 SpringBoot/ SpringCloud 技术体系的一些开源框架。这些项目大都具备一些很完善的功能,并且均采用了当下..._java api商业管理系统

RF-Adaboost 基于随机森林的Adaboost的时间序列预测算法,集成学习/增强学习MATLAB程序...-程序员宅基地

文章浏览阅读26次。作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。????个人主页:Matlab科研工作室????个人信条:格物致知。???? 内容介绍在机器学习领域,时间序列预测一直是一个重要的研究方向。随着大数据时代的到来,时间序列数据的规模和复杂性不断增加,传统的预测方法面临着挑战。为了提高预测准确性和稳定...

随便推点

Swift之NSOperation及其和GCD的区别_swiftui nsoperationqueue gcd-程序员宅基地

文章浏览阅读1k次。NSOperation GCD swift_swiftui nsoperationqueue gcd

趋势科技修复已遭利用的Apex One 0day漏洞-程序员宅基地

文章浏览阅读254次。聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士趋势科技修复了 Apex One 端点防护解决方案中已遭利用的一个 RCE 0day 漏洞。Apex One 是一款端点安全解决方案,适用于各种规模的企业,它的“无忧业务安全”套件旨在服务中小型企业。该任意代码执行漏洞的编号是CVE-2023-41179,CVSS v3评分为9.1,严重性为“严重”级别。该漏洞存在于与该安全软件提供的第三方卸载模..._trend micro apex one

JAVA面试题分享三百八十九:连接池获取连接慢的所有原因_连接池写入速度太慢-程序员宅基地

文章浏览阅读945次,点赞29次,收藏20次。应用连接数据库基本上都是通过连接池去连接,比如常用的 HikariCP、Druid 等,在应用运行期间经常会出现获取连接很慢的场景,大多数同学都是一头雾水,不知道从哪下手。而且很多时候都是偶发场景,让人头疼不已,别着急,本文带你逐步剖析获取连接慢的所有可能的原因,以及对应的调优手段,让你成为连接池排障大师。_连接池写入速度太慢

shell中$*的用法_shell $*-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏26次。title: shell中$*的用法一、Shell脚本中$0、$?、$!、$$、$*、$#、$@等用法$$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)$! Shell最后运行的后台Process的PID(后台运行的最后一个进程的[进程ID]$? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)$$ 显示shell使用的当前选项,与set命令功能相同$*._shell $*

关于STM32 PWM输出详解——想要分享的小白_void tim3_pwm_init(u16 arr,u16 psc){ gpio_inittype-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏22次。本次博客主要参考STM32战舰例程。脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制 。在本文中,小白将向大家介绍如何用通用定时器通道来输出PWM。定时器的工作过程如下图所示,在上一次博客“STM通用定时器详解”中,小白已经介绍了关于时基单元,并完成了对通用定时器的配置以及定时器中断的使用。如果没有对定时器知识小伙伴,可以先去看一下小白的上一次博客。**PWM工作过程**在PWM 输出中,输出信号由TIMx_ARR寄存器确定频率、由TIMx__void tim3_pwm_init(u16 arr,u16 psc){ gpio_inittypedef gpio_initstructure; t

一文看懂arm架构和x86架构有什么区别_arm架构和x86架构区别-程序员宅基地

文章浏览阅读10w+次,点赞97次,收藏669次。本文主要介绍的是arm架构和x86架构的区别,首先介绍了ARM架构图,其次介绍了x86架构图,最后从性能、扩展能力、操作系统的兼容性、软件开发的方便性及可使用工具的多样性及功耗这五个方面详细的对比了arm架构和x86架构的区别,具体的跟随小编一起来了解一下.什么叫arm架构ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachin..._arm架构和x86架构区别

推荐文章

热门文章

相关标签