css-grid布局(栅格布局)

css新世界-auto-fit

grid 一个比flex更强大的布局,适合做整体布局

  1. grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); auto-fit的话有strech效果
  2. gap 不仅可以用于grid 也可用flex
  3. . 在grid-template-areas表示这个位置空着
  4. grid area 的 [a b]命名可重复命名 表示的是同一根线, 感觉不如数字好用啊
  5. min-content是一个尺寸关键字, 也可以表示width height…

在这里插入图片描述

  <style>.tb {display: grid;grid-template-columns: 3fr 5fr 3.5fr;grid-template-rows: 42px 300px;grid-template-areas: 'a b b' /* 目前喜欢这种的方式, 比较直观  . 表示这个位置空着 */'a c d'; /* 相同的名字 代表相同的区域 */gap: 10px;}.tb>div {background-color: #f1cbc5;border-radius: 10px;}.tb-cate {grid-area: a;}.tb-module {grid-area: b;}.tb-baner {grid-area: c;}.tb-user {grid-area: d;}</style><body><div class="tb"><div class="tb-module"></div><div class="tb-cate"></div><div class="tb-banner"></div><div class="tb-user"></div></div></body>

在这里插入图片描述

grid-template-columns / grid-template-rows

  1. 简写: grid: …行高 / … 列宽
  2. 支持 px % min-content max-content auto fr repeat() minmax() fit-content() 函数值
  3. min-content 先找最大的, 然后取它的最小 content
  4. auto 会受到 justfify-content align-content的影响
  5. minmax(lenght | percentage | min-content | max-content | auto, 前面的 + fr) 也就是说 fr 只能放在第二个参数
  6. fit-content(length | percentage) 内容越大尺寸越大, 但不超限定

min-content

  1. 先找到内容最大的那个,然后用它的最小尺寸(如果min-width大于内容的宽度, 则是min-width)
<div class="container"><item>css</item><item></item><item>css_world</item><item></item><item>css_new_world</item><item></item>
</div>

max-content

  1. 最大内容宽度.
    在这里插入图片描述

fr 网格布局的专用单位

  1. fr 总和小于1 的话是占不满的.
  2. 搭配固定值的话, fr表示的是剩余空间的比例
  3. 配合auto 是减去auto的 fit-content

在这里插入图片描述

repeat( | auto-fill | auto-fit, 1px auto 30px)

  1. auto-fit 会把空白匿名网格折叠合并…
  2. auto-fit 更符合常规的布局需求
  3. repeat() 函数只能用于 grid-template-rows/columns
repeat(auto-fit,minmax(100px,1fr)) // 弹性的同时保证了最小宽度.
repeat() auto // 无效
repeat() 20% 可以
父盒子有padding 或者 border ? 子盒子的margin 才能撑开父盒子??
1vw = 1%的屏幕宽度.
1rem = 根元素的字体大小.
  1. · 就是这个点, PingFangSC字体下和 Microsoft YaHei
<!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><style>.tb {display: grid;grid-template-columns: [f] 100px [t] 300px [e];grid-auto-rows: 150px 100px;/* [d]150px 100px; 搞不懂为什么加个命名就变小了.... */gap: 10px;}.left {grid-column: f / t;/* 数字和命名搭配搭配也可, 1 / t  注意如果是一个位置的话可省略, 比如 1 / 2  2 / 3  这里的2 3就可以省略*/grid-row: 1 / 3; /* g-r-start g-r-end 的简称 */}.tb>div {background-color: lightgreen;}</style></head><body><h1>[x] 100px [l]</h1><div class="tb"><div class="left">a</div><div>b</div><div>c</div></div></body></html>

在这里插入图片描述

.wrapper{   /* 容器 */display: grid;  /* 容器 inline-grid 行内 */grid-template-columns: 1fr 1fr 1fr; /*repeat(2, 1fr 100px) repeat(auto-fill, minmax(100px, 1fr))*/grid-template-rows: 100px 100px 100px; /* 行高  */grid-auto-rows: 100px; /* 如果该行没有被grid-template-rows设置, 比如这个就设置了三行, 结果有了4 5 6行..这个就生效了.. */row-gap: 10px; /* 行间距 */column-gap: 10px; /* 列间距 */ grid-gap: row-gap column-gap; /* 行列复合写法 */justify-items: center; /* 水平方向 start end  */align-items: center; /* 垂直方向 start end  */ place-items: center center; justify-content: center; /* 整体内容  space-evenly */grid-auto-flow:  row; / * [ row | column ]  ||  dense   */
}
.item{	grid-area: l; /* 这样比较方便直观 */	align-self: end;justify-self: end;  place-self: ; /* 上复合 */
}

盒模型

内容 => padding => border => margin
1.  block默认和父级盒子的宽度一样
2.  width auto是块级元素的默认值,  	100%; 的话会等于父级, 但是再加了padding border(content-box) 会溢出
3.  box-sizing: border-box; // line-height设置要减去padding和border 是内容区域的高度
4.  text-align: center; 内容区域
5.  居中(居中偏移固定的距离没有问题)box{box-sizing: border-box; /content-box/border: 10px;line-height: 100px; text-align: center; /内容区域/}
6.  设置了box-sizing: border-box;方便写盒子, 但是写line-height, 要减去padding和border了,
7.  text-align center也是内容区域
8.  width: auto 和 100%的区别; auto; 默认的是auto; 100% 如果是content-box就会超出了

参考链接

Establishing grid containers
阮一峰Grid
Grid for layout, Flexbox for components
1-Line Layouts

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

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

相关文章

双向收发的信号应该在哪进行串联端接?分享几个实用设计方法!

高速先生成员--黄刚 经过上次高速先生的描述&#xff0c;相信大家已经掌握了串联端接的秘诀了&#xff0c;简单来说&#xff0c;那就是第一步&#xff1a;先看看芯片的驱动内阻&#xff0c;第二步&#xff1a;再用加起来50欧姆匹配的方法来选择适合的串阻值&#xff0c;第三步&…

【C语言报错已解决】格式化字符串漏洞(Format String Vulnerability)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言&#xff1a;一、问题描述&#xff1a;1.1 报错示例&#xff1a;1.2 报错分析&#xff1a;1.3 解决思路&#xff…

HEROIC FANTASY WERE CREATURES PACK VOL 2 (幻想生物)

这个包收集了5种英雄幻想生物:狼人,狼人,狼人山羊,狼人鲨鱼和狼人蜘蛛。 狼人:27.5 Ktris Max//101个骨骼//4种材质//最多4096*4096个纹理//40个动画(11个是根运动变体) 狼人:15.83 Ktris//66个骨骼//3种材质//最多4096*4096个纹理//35个动画(9个是根运动变体) wereg…

Centos 使用nfs配置共享目录使docker集群所有容器日志统一主机访问

Centos 使用nfs配置共享目录&#xff0c;使docker集群所有容器日志统一存放在主机一个共享目录下&#xff0c;供开发人员访问查看 准备两台或以上Centos服务器 192.168.0.1 nfs服务器 192.168.0.2 nfs客户端 以root用户登录192.168.0.1服务器&#xff0c;执行以下操作 注意先…

excel根据数据批量创建并重命名工作表

需求 根据一列数据&#xff0c;批量创建并重命名工作表 做法 1. 右键该sheet&#xff0c;选择查看代码 2. 输入VBA代码 正向创建 Sub create_sheets_by_col()Dim num% 定义为integer*num Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) num是非空…

接着探索Linux的世界 -- 基本指令(文件查看、时间相关、打包压缩等等)

话不多说&#xff0c;直接进入主题 一、cat指令 -- 查看目标文件的内容 语法&#xff1a;cat [选项][文件] 功能&#xff1a; 查看目标文件的内容 -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 1、查看目标文件的内容 2、 -b 对非空输出行编号 3、-n 对…

项目部署笔记

1、安全组需开放&#xff08;如果不开放配置nginx也访问不到&#xff09; 2、域名解析配置IP(子域名也需配置IP&#xff0c;IP地址可以不同) 3、如果出现图片获其他的文件找不到的情况请仔细检查一下路径是否正确 4、服务器nginx配置SSL证书后启动报错&#xff1a; nginx: […

巧用 VScode 网页版 IDE 搭建个人笔记知识库!

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 巧用 VScode 网页版 IDE 搭建个人笔记知识库! 描述&#xff1a;最近自己在腾讯云轻量云服务器中部署了一个使用在线 VScode 搭建部署的个人Markdown在线笔记&#xff0c;考虑到在线 VScode 支持终…

Day05-filebeat常用的输出组件,logstash的输入输出组件及date,grok,geoip过滤插件实战案例

Day05-filebeat常用的输出组件&#xff0c;logstash的输入输出组件及date&#xff0c;grok&#xff0c;geoip过滤插件实战案例 1、使用filebeat采集docker日志2、filebeat的input类型之filestream实战案例2.1 课堂练习案例2.2 将数据写入到本地文件案例2.3 写入数据到ES集群2.4…

Windows Server 2012 R2 Update 出现错误 80072EFE

解决方案一 错误代码 80072EFE 表示与服务器的连接异常终止。请确保没有防火墙规则或代理阻止 Microsoft 下载 URL。 您还可以尝试以下操作&#xff1a; 单击“开始”&#xff0c;然后单击“运行”。 在“打开”框中键入 cmd 在命令提示符下键入“net stop wuauserv”&#…

《昇思25天学习打卡营第04天|qingyun201003》

日期 心得 从中认识到什么是数据转换&#xff0c;如何进行数据转换&#xff1b;对于数据转换应该如何理解。同时对于数据转换的代码有了深层次的理解。对于数据增强、转换、归一化有了明确的认知。 昇思MindSpore 基础入门学习 数据转换 (AI 代码解析) 数据变换 Transforms …

使用Python和MediaPipe实现手势控制音量(Win/Mac)

1. 依赖库介绍 OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它包含了数百个计算机视觉算法。 MediaPipe MediaPipe是一个跨平台的机器学习解决方案库&#xff0c;可以用于实时人类姿势估计、手势识…

EXSI 实用指南 2024 -编译环境 Ubuntu 安装篇(二)

1. 引言 在当今的虚拟化领域&#xff0c;VMware ESXi 是备受推崇的虚拟化平台&#xff0c;广泛应用于企业和个人用户中。它以卓越的性能、稳定的运行环境和丰富的功能&#xff0c;为用户提供了高效的硬件资源管理和简化的 IT 基础设施维护。然而&#xff0c;如何在不同操作系统…

LeetCode Day8|● 344.反转字符串(原地) ● 541. 反转字符串II(i可以大步跨越) ● 卡码网:54.替换数字(ACM模式多熟悉熟悉)

字符串part01 day8-1 ● 344.反转字符串整体思路代码实现总结 day8-2 ● 541. 反转字符串II整体思路代码实现总结 day8-3 ● 卡码网&#xff1a;54.替换数字题目解题思路代码实现总结 day8-1 ● 344.反转字符串 整体思路 字符串和数组的思路差不多 原地操作 代码实现 class…

非常好的新版网盘系统,是一款PHP网盘与外链分享程序,支持文件预览

这是一款PHP网盘与外链分享程序&#xff0c;支持所有格式文件的上传&#xff0c; 可以生成文件外链、图片外链、音乐视频外链&#xff0c;生成外链同时自动生成相应的UBB代码和HTML代码&#xff0c; 还可支持文本、图片、音乐、视频在线预览&#xff0c;这不仅仅是一个网盘&a…

算法思想总结:字符串

一、最长公共前缀 . - 力扣&#xff08;LeetCode&#xff09; 思路1&#xff1a;两两比较 时间复杂度mn 实现findcomon返回两两比较后的公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//两两比较 string retstrs[0];size…

MySQL里的累计求和

在MySQL中&#xff0c;你可以使用SUM()函数来进行累计求和。如果你想要对一个列进行累计求和&#xff0c;可以使用OVER()子句与ORDER BY子句结合&#xff0c;进行窗口函数的操作。 以下是一个简单的例子&#xff0c;假设我们有一个名为sales的表&#xff0c;它有两个列&#x…

Android之间互传消息之ServerSocket,Android服务端接收Socket发送的TCP

Android之间在在局域网下互传消息&#xff0c;咱就不用走云服务器了吧&#xff0c;让俩安卓设备&#xff0c;自己传呗 方式1 通过在安卓设备上搭建Web服务器接收数据&#xff0c;可参考 Android使用AndServer在安卓设备上搭建服务端(Java)(Kotlin)两种写法 方式2 本文章&…

Open3d入门 点云中的重要概念

点云是由一组三维空间中的点组成的数据结构&#xff0c;常用于计算机视觉、3D建模和地形图生成等领域。每个点包含空间坐标&#xff08;x, y, z&#xff09;以及其他属性&#xff08;如颜色、密度等&#xff09;。以下是一些重要的点云概念&#xff1a; 1. 体素 (Voxel) 体素…