常见的布局方式

1.弹性布局---flex布局

弹性布局是一种常见且好用的布局方式,它可以让结构中的内容自适应不同的分辨率,简化的代码的书写。

使用方法

给父盒子加上display:flex;默认子元素不换行,如果装不开,子元素会缩小元素的宽度。

父级元素常用属性

  •  flex-direction 设置主轴方向,默认水平为主轴。row:水平为主轴,column:竖直方向为主轴

  • justify-content 设置主轴方向上子元素的排列方式 。 flex-start:默认从头开始,如果主轴是x轴,则从左往右;flex-end:从尾部开始;center:在主轴居中对齐;space-around:平分剩余空间;space-between:先两边贴边,再平分剩余空间

  •  flex-wrap 设置是否换行。 wrap,换行,如果放不下,则会换行;nowrap:不换行,当父级装不下,则会压缩子元素。

  • align-items 设置侧周上的子元素排列方式 --单行

  • align-content 设置侧周上的子元素排列方式 --多行

  • flex-flow 复合属性,相当于同时设置了flex-direction 和 flex-wrap

代码演示(部分属性)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><style>* {margin: 0;padding: 0;box-sizing: border-box;}li {list-style: none;}.box {width: 700px;height: 300px;margin: 100px auto;background-color: pink;}ul {display: flex;flex-direction: row; /*设置主轴方向*/justify-content: space-between; /*设置主轴上元素排列方式*/flex-wrap: wrap; /*设置是否换行*/align-items: center; /* 设置侧周方向上子元素排列方式 -- 单行*//* align-content: space-between; */ /* 设置侧周方向上子元素排列方式 --多行*//* flex-flow: row wrap; */ /* 同时设置主轴方向和是否换行 */}li {width: 200px;height: 100px;text-align: center;line-height: 100px;background-color: skyblue;}ul {height: 100%;}li:nth-child(2) {background-color: purple;}li:nth-child(3) {background-color: lightgreen;}li:last-child {background-color: red;}</style><body><div class="box"><ul><li>A</li><li>B</li><li>C</li><li>D</li></ul></div></body>
</html>

56cbc941a9c04aa79104bb8fd4bfbc8f.png

 子项目常用属性

  • flex   定义子项分配剩余的空间,用flex表示占据多数分数
  • align-self    align-self属性允许单个项目有与其他项目不一样的对齐方式,且可覆盖 align-items属性。默认值为auto,表示子项继承父项的align-items属性。
  • order    用来定义子项目的排列顺序,数值越小,排列越靠前,默认值为0。

 2.grid布局。

grid是二维布局方式,可以同时控制行和列的排布和对齐方式。

使用方法

要开启grid布局,只需要给父级盒子加上display:grid。

常用属性

  • grid-template-columns:定义每一列的宽度
  • grid-template-rows:设置每一行的宽度

grid-template-rows和grid-template-columns的参数可以是一个固定值也可以是fr(浮动宽度,是grid布局专有单位,代表grid剩余空间)

  •  row-gap:设置行间距

  • column-gap:设置列间距

  • gap:统一设置行间距和列间距

css代码演示

  ul {display: grid;/* grid-template-columns: 100px 100px 100px; */ /* 将子元素设置为三列,每列宽度为100px */grid-template-columns: 1fr 2fr 1fr;grid-template-rows: 1fr 1fr;/* column-gap: 20px; 设置列间距 *//* row-gap: 10px; 设置行间距 */gap: 10px 20px; /* 统一设置行间距和列间距 */}

效果

89064a756fb146138b8f2ab33535ba6a.png

  •  grid-template-areas:排列元素;grid-area:指定元素对应的区域

代码演示

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><style>* {margin: 0;padding: 0;box-sizing: border-box;}.box {display: grid;/* 设置元素排列方式 */grid-template-areas: 'header header header' 'sidebar content content' 'footer footer footer';width: 50%;height: 40vh;margin: 100px auto;}header {/* 指定当前元素对应的区域 */grid-area: header;background-color: lightcoral;}aside {grid-area: sidebar;background-color: lightgreen;}main {grid-area: content;background-color: lightblue;}footer {grid-area: footer;background-color: lightpink;}</style><body><div class="box"><header>这里是头部区域</header><aside>侧边栏区域</aside><main>内容区域</main><footer>底部区域</footer></div></body>
</html>

效果

b3fdcad7ab11426b97b36b163f6c4242.png

 grid布局对齐方式

  • justify-items:设置水平方向上对齐方式

  •  align-items:设置垂直方向上对齐方式

  • 当行和列的尺寸小于父级尺寸,可以通过align-content和justify-content对轨道的对齐方式进行操作

本文介绍并不完全,若要精通,还需自己多练习。

逆风的方向,更适合飞翔!

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

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

相关文章

前端开发常见的几种布局方式

作为前端开发工程师&#xff0c;布局方式有多种&#xff0c;对于不同的场景可以使用不同的布局方式&#xff0c;那么我们就先来简单的来了解一下&#xff0c;那些前端开发必须了解的布局。 一. 静态布局&#xff08;static layout&#xff09; 即传统的Web布局&#xff0c;网页…

android系统启动流程之zygote(Native)启动分析

zygote有一部分运行在native,有一部分运行在java层&#xff0c;它是第一个进入java层的进程 zygote在启动时&#xff0c;在init.${ro.zygote}.rc脚本中&#xff0c;里面描述了zygote是如何被启动的&#xff0c; 当init进程解析到zygote.rc文件时&#xff0c;将根据解析出来的命…

No117.精选前端面试题,享受每天的挑战和学习

文章目录 断点续传怎么做的秒传怎么实现var let const 块级作用域ts Partial Omit 怎么实现的箭头函数有哪些限制箭头函数为什么不能作为构造函数promise常用apiMap和Object的区别vue怎么实现双向绑定 断点续传怎么做的 断点续传是指在文件下载或上传过程中&#xff0c;当连接…

【微信小程序遇到的坑】实现跨行跨列的表格

由于微信小程序组件中不带table标签&#xff0c;所以只能自己制作一个table表格&#xff0c;并且是实现跨行跨列的复杂表格。 直接上代码&#xff0c;即可预览效果 wxml <view class"table"><view class"tr tr_title">上午8:30-11:45</vi…

50.服务程序SERVICE_STATUS、SERVICE_STATUS_HANDLE、RegisterServiceCtrlHandler、SetServiceStatus、SERVICE_TABL

我得先总结一下步骤&#xff1a; 一、在main函数中的操作 1.先创建一个main主函数&#xff0c;在main主函数中创建创建一个服务程序入口函数列的结构体并将其初始化 机构体SERVICE_TABLE_ENTRY DispatchTable[2]; 假设定义的服务入口函数是(LPSERVICE_MAIN_FUNCTION)ServiceMa…

使用 SAP WebIDE 将 SAP UI5 应用部署到 ABAP 系统时遇到的关于传输请求的错误

有朋友遇到一个在 webide 里部署 SAP UI5 应用到 ABAP Repository 里时出错的问题&#xff1a; 错误消息&#xff1a; Failed to get transports for the selected package. Request POST /webidedispatcher/destinations/LND500/sap/bc/adt/cts/transportchecks failed: Forbi…

【操作记录】CLion 中引入 Gurobi 并使用 C++ 编程

文章目录 一、前言二、具体操作2.1 创建项目2.2 修改编译工具2.3 修改 CMakeLists.txt2.4 修改 main.cpp2.5 运行测试 一、前言 虽然C编程大部分人都会选择使用VS&#xff0c;但是作为 IDEA 的长期用户&#xff0c;我还是比较习惯 JetBrains 风格的编译器&#xff0c;所以就选…

7.11英语学习及笔记

《花木兰》 Based on a Chinese legend, the film follows the story of the titular hero – a young woman who poses as a man in order to take her ailing father’s place in the Imperial army, after the threat of the invading Huns requires a man from every house…

针对韩国开展的一系列韩文类恶意文档定向攻击行动分析 part-1

?点个关注&#xff0c;你的支持是我更新最大的动力? 最近朝鲜APT组织的攻击事件层出不穷&#xff0c;基于看到一篇很好的文章&#xff0c;特此结合文章对朝鲜相关组织进行分析。 Financial Security Institute对近期一系列投放韩文类恶意文档的定向攻击行动命名为“DOKKAEBI…

跨国邮件诈骗团伙案例

如果某天你收到了这样一封邮件&#xff0c;啊&#xff0c;大体意思就是这人身患绝症且有一笔遗产&#xff0c;你是个幸运儿要你继承。 重点来了啊&#xff0c;他会伪造证件然后让你相信并按照对方的思路来&#xff0c;给他你的身份信息&#xff0c;例如身份证照片&#xff0c;你…

springboot+vue+Elementui图书馆自习室座位预约系统

随着学校的人数的扩招,图书馆的座位资源短缺问题日益严重&#xff0c;特别是在临近考试时&#xff0c;座位占座情况尤为明显。起大早、摞书本、放水杯&#xff0c;甚至粘上纸条……宣誓主权&#xff0c;在图书馆里&#xff0c;很多学生办法用尽&#xff0c;只为了能获得“一席之…

SQLite3 极简教程 Go 使用 SQLite 内存模式操作数据结构

SQLite 简介 关键词: RDBMS (embedded), C SQLite is a database engine written in the C language. It is not a standalone app; rather, it is a library that software developers embed in their apps. SQLite是一个开源的、内嵌式的关系型数据库。它最初发布于2000年,…

致--所有努力生活的人们(暑假学习总结与考研宣誓)

致--所有努力生活的人们 确定专业和院校科研任务关于英语的学习退游喜欢的女孩备战数模比赛学习智能算法计算机素养的锻炼basketball对未来的展望 虽然文章写的虽然不是很好&#xff0c;但是很用心有诚意&#xff0c;我保证读完你会充满慢慢能量的&#xff01; 本blog记录了暑假…

有书共读:《穷查理宝典》

1. 写在前面 最近有幸参加了Datawhale举办的一些读书会活动&#xff0c;里面有很多伙伴分享自己读过的一些好书并分享自己的读书心得和感悟&#xff0c;体会非常的深刻&#xff0c; 也学习到了很多的知识&#xff0c; 所以受到了一些伙伴的影响&#xff0c;最近也开始在闲暇的…

以“人民的名义”劝你快去读点书

“我之前看一个调查&#xff0c;说中国人的读书量远低于世界平均水平&#xff1b;而且趋于图片化、碎片化&#xff0c;缺乏深度。这年头&#xff0c;你们还有个读书会&#xff0c;算是难得了”&#xff0c;陆亦可对赵东来说。“而且我们读的还是闲书&#xff0c;没有任何经济利…

第三讲,三维空间刚体运动

一个刚体在三维空间中的运动是如何描述的。我们当然知道这由一次旋转加一次平移组成。平移确实没有太大问题&#xff0c;但旋转的处理是件麻烦事。我们将介绍旋转矩阵、四 元数、欧拉角的意义&#xff0c;以及它们是如何运算和转换的。 1.向量&#xff0c;坐标系和旋转矩阵 点…

两独立样本的非参数检验(Mann-Whitney U 秩和检验)

原文地址&#xff1a;SPSS学习笔记之——两独立样本的非参数检验&#xff08;Mann-Whitney U 秩和检验&#xff09;作者&#xff1a;王江源 一、概述 Mann-Whitney U 检验是用得最广泛的两独立样本秩和检验方法。简单的说&#xff0c;该检验是与独立样本t检验相对应的方法&…

不止基因编辑 当所有技术都可能成为毒药

基因技术、纳米技术、机器人技术的新潘多拉之盒即将开启&#xff0c;你我却毫无查觉。我们不单受到大规模杀伤性武器的威胁&#xff0c;还有技术知识产生的大规模杀伤力。这一邪恶的力量&#xff0c;正由国家力量支持的大规模杀伤性武器&#xff0c;转向极端的个人。——Bill J…

市场的霸主:对冲基金世界的超额回报大师

《市场的霸主&#xff1a;对冲基金世界的超额回报大师》 基本信息 作者&#xff1a; (美)马妮特.阿胡贾(Maneet Ahuja) 译者&#xff1a; 毕崇毅 郑磊 出版社&#xff1a;机械工业出版社 ISBN&#xff1a;9787111425441 上架时间&#xff1a;2013-5-29 出版日期&#xff1a;201…

革命性新疗法后 第三例艾滋病治愈病例可能出现了!

伦敦病人的例子说明&#xff0c;柏林病人被治愈并非出于侥幸&#xff0c;而是可以被复制的。 艾滋病患者通常要终身每日服用病毒抑制药物。一旦停药&#xff0c;病毒就会在两三周内卷土重来。 新浪科技讯 北京时间3月12日消息&#xff0c;据国外媒体报道&#xff0c;一名德国艾…