首页 > 其他分享 >九宫格(html css实现)---初识flex布局

九宫格(html css实现)---初识flex布局

时间:2024-09-21 23:45:14浏览次数:1  
标签:flex 元素 container 九宫格 content html wrap 对齐

记录flex属性并实现一个九宫格

flex属性

Flex 容器:

需要注意的是:当时设置 flex 布局之后,子元素的 float、clear、vertical-align 的属性将会失效

.container {
    display: flex;
}//块状元素

.container {
 inline-flex;  
}//行内元素

块状元素
1.*** 独占一行:块元素会自动开始一个新行,并且占据整个容器的宽度
2. 可以
设置宽度与高度:你可以为块元素指定宽度(width)和高度(height)属性。
3. 可以包含其他
块元素或行内元素:块元素可以包含其他块元素或者行内元素。
4. 垂直排列:
默认情况下,多个块元素会垂直排列。***

e.g.
<div><p><h1><form><ul><ol><li>

行内元素
1.不会独占一行:行内元素不会自动开始新的一行,只占用必要的宽度。
2.不能设置宽度与高度:行内元素的宽度与高度通常由其内容决定设置宽度与高度通常无效。
3.通常只包含数据和其他行内元素:行内元素通常不能包含块元素,但可以包含其他行内元素。
4.水平排列:多个行内元素会按照顺序水平排列,直到一行放不下才会换行。

<span>, <a>, <img>, <strong>, <em>, <input>, <label>

通过css实现块状元素和行内元素的转换

.container{
display:inline;
}//可以使块元素表现得像行内元素

.container{
display:block;
}//可以使行内元素表现得像块元素。

flex容器的五大属性

一. flex-direction: 决定主轴的方向(即项目的排列方向)

.container {
    flex-direction: row;
}

1.row【默认值】主轴为水平方向,起点在左端
img
2.row-reverse:主轴为水平方向,起点在右端

.container {
    flex-direction: row-reverse;
}

alt textimg

3.column:主轴为垂直方向,起点在上沿

.container {
    flex-direction: column ;
}

alt textimg
[正如上文所言,行内元素会水平排列]
4.column-reverse:主轴为垂直方向,起点在下沿

.container {
    flex-direction: column-reverse;
}

alt textimg

二·. flex-wrap: 决定容器内项目是否可换行

【默认情况下,项目都排在主轴线上】
1.flex-wrap 可实现项目的换行【自动化】

2.wrap:项目主轴总尺寸超出容器时换行第一行在上方

.container {
    flex-wrap: wrap;
}

alt textimg
3.nowrap 不换行,即当主轴尺寸固定时,当空间不足时,项目尺寸会随之调整而并不会挤到下一行。

.container {
    flex-wrap: nowrap;
}

alt textimg
4.wrap-reverse:换行,第一行在下方

.container {
    flex-wrap:wrap-reverse;
}

alt textimg

三· justify-content:定义了项目在主轴的对齐方式。
1.flex-start 左对齐 【默认值

.container {
    justify-content: flex-start;
}

【justify-content优先级<<<flex-wrap】
2.flex-end:右对齐

.container {
    justify-content: flex-end;
}

alt textimg
3.center:居中

.container {
    justify-content: center;
}

alt textimg
4.space-between:两端对齐,项目之间的间隔相等,即剩余空间等分成间隙。

.container {
    justify-content: space-between;
}

alt textimg
5.space-around:每个项目两侧的间隔相等,所以项目之间的间隔比项目与边缘的间隔大一倍。

.container {
    justify-content: space-around;
}

alt textimg
四· align-items: 定义了项目在交叉轴上的对齐方式
e.g.建立在主轴为水平方向时测试,即 flex-direction: row
1.auto

默认值为 stretch 即如果项目未设置高度或者设为 auto,将占满整个容器的高度。【假设容器高度设置为 100px,而项目都没有设置高度的情况下,则项目的高度也为 100px。】

.container {
    align-items: auto;
}

2.flex-start

.container {
    align-items: flex-start;
}

alt textimg
【AP分布沿主轴方向(由flex-direction决定)递增,上对齐】
3.flex-end

.container {
    align-items: flex-end;
}

alt textimg
【AP分布沿主轴方向(由flex-direction决定)递增,下对齐】
4.center

.container {
    align-items: center;
}

alt textimg
【AP分布沿主轴方向(由flex-direction决定)递增,中线对齐】
5.baseline

.container {
    align-items: baseline;
}

项目的第一行文字的基线对齐

五·align-content: 定义了多根轴线的对齐方式,如果项目只有一根轴线,那么该属性将不起作用

当你 flex-wrap 设置为 nowrap 的时候,容器仅存在一根轴线,因为项目不会换行,就不会产生多条轴线。
当你 flex-wrap 设置为 wrap ** 的时候,容器可能会出现多条轴线**,这时候你就需要去设置多条轴线之间的对齐方式了。
e.g.建立在主轴为水平方向时测试,即 flex-direction: row, flex-wrap: wrap
1.flex-start:轴线全部在交叉轴上的起点对齐

.container {
    align-content: flex-start;
}

2.flex-end:轴线全部在交叉轴上的终点对齐

.container {
    align-content: flex-end;
}

3.center:轴线全部在交叉轴上的中间对齐

.container {
    align-content: center;
}

4.space-between:轴线两端对齐,之间的间隔相等,即剩余空间等分成间隙。

.container {
    align-content: space-between;
}

5.space-around:每个轴线两侧的间隔相等,所以轴线之间的间隔比轴线与边缘的间隔大一倍。

.container {
    align-content: space-arround;
}

实现九宫格

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>九宫格</title>
 <link rel="stylesheet" href="./九宫格.css">
</head>
<body>
<div class="container">
   <span class="box1">1</span>
   <span class="box2">2</span>
   <span class="box3">3</span>
   <span class="box1">1</span>
   <span class="box2">2</span>
   <span class="box3">3</span>
   <span class="box1">1</span>
   <span class="box2">2</span>
   <span class="box3">3</span>
</div>
  
</body>
</html>
.container {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
    justify-content:center;
    padding: 0px;
    margin: 0 auto;
    width: 1000px;
    height: 800px;
    font-size: 50px;
    font-weight: 100;
    font-style: italic;
 

}
.box1 {
background-color:red;
height: 33.3%;
width: 30%;
border: 1px solid;
flex-direction: row;
}
.box2 {
background-color:yellow;
height: 33.3%;
width: 30%;
border: 1px solid;
flex-direction: row;
}
.box3 {
background-color: green;
height: 33.3%;
width: 30%;
border: 1px solid;
}

alt textimg

标签:flex,元素,container,九宫格,content,html,wrap,对齐
From: https://www.cnblogs.com/GJ504b/p/18424698

相关文章

  • 【油猴脚本】00011 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-添加提取数
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • Netty+HTML5+Canvas 网络画画板实时在线画画
    采用Html5的canvas做前端画画板,发送数据到后端Netty服务,实时转发笔迹数据,在线实时同步画笔轨迹,单击绿色小方块,保存画板的图片页面:<!--index.html--><!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>网络画画板</title></head><body&g......
  • html+css(交河故城css)
        <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>故城</title>......
  • 494. 响应式动漫设计公司网站 大学生期末大作业 Web前端网页制作 html5+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • Loadr,一种在 HTML 中无缝加载大图像的高效解决方案
    它是如何工作的:它首先从imgsrc加载低分辨率图像,然后在hr-srcatrbute中加载高分辨率图像,一旦加载,就会用高分辨率图像替换低分辨率图像。查看仓库,如果有星星就太棒了演示立即学习“前端免费学习笔记(深入)”;安装cdn使用cdn导入loadr。index.html<scriptsrc="htt......
  • SpringBoot整合Mybatis-flex
    第1步:创建数据库表CREATETABLEIFNOTEXISTS`tb_account`(`id`INTEGERPRIMARYKEYauto_increment,`user_name`VARCHAR(100),`age`INTEGER,`birthday`DATETIME);INSERTINTOtb_account(id,user_name,age,birthday)VALUE......
  • 使用HTML+JS实现国庆节倒计时网页实例代码
    马上就是每年10月1日的国庆节了,为了增加节日氛围,许多网站会设置倒计时,以提醒人们国庆节的临近。本文站长工具网将介绍如何使用HTML和JavaScript创建一个简单的国庆节倒计时网页,并附上完整的实例代码供大家参考。1.网页设计基础在开始编写代码之前,我们需要了解一些基本的网......
  • C# html数据爬取与过滤
    1.首先安装第三方HTML数据过滤包HtmlAgilityPack我爬取的网站是一个树洞网站:https://i.jandan.net/treehole,他是一个单体网站,不通过api请求,所以只能根据HTML过滤,他的分页是通过base64加密的 这是获取到的部分数据,这是我们需要的有效数据,他是有固定结构的,我们只要筛选这里......
  • JavaScript期末大作业 基于HTML+CSS+JavaScript技术制作web前端开发个人博客(48页) (1
    ......
  • 最小圆覆盖(html)
    最小圆覆盖问题是什么呢?就是指在二维平面上有一堆点,然后我们要求一个最小半径的圆能够将所有点全部都包住,这就是最小圆覆盖问题。最小覆盖圆的性质性质1:最小覆盖圆是唯一的证明:我们假设有两个圆O1,O2,他们半径都是r,都是最小覆盖圆,那么所有的点一定在两圆的交集部分。那我们以两......