首页 > 其他分享 >[CSS] flexbox 布局中,让其元素均匀排列且如何均匀元素之间的 column-gao 和 row-gap 的计算公式

[CSS] flexbox 布局中,让其元素均匀排列且如何均匀元素之间的 column-gao 和 row-gap 的计算公式

时间:2024-09-23 17:15:30浏览次数:8  
标签:flex flexbox column 22% 元素 gap 均匀 row

图1- 均匀排列,column-gao 和 row-gap 都是均匀的,不通过 margin 隔开元素

要达到上图效果,可以通过 margin,但是每一行首元素和尾元素都要单独处理,通过 nth-child 选择器设置。

也可以让每一个元素宽度都是父元素宽度的 25%,然后子元素宽度再一点点调试向下减一点点,比如 22% 合适,并且需要设置 justify-content: space-between 或者其他,但如果最后一行元素不满4个,根据实际场景也达不到最佳效果。

图2 - justify-content: space-between

因此,通过我自己调试总结的规律得出的一条公式:

设一行 n 个子元素,子元素的宽度为 w%,column-gap(100% - n * w%) / (n - 1)row-gapcolumn-gap / 2,其中,column-gap 和 row-gap 的结果都向下取整。

如图1,我需要一行 4 个子元素,我设计子元素宽度 22%,那么 column-gap 就是 (100% - 4 * 22%) / 3 = 4%,row-gap 就是 4% / 2 = 2%

.flexbox {
  width: 22%;
  height: 150px;
}

.container {
  width: 500px;
  height: 1000px;
  border: 1px solid red;
  /* flex */
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-start;
  /* flex */

  /* flex-gap */
  column-gap: 4%;
  row-gap: 2%;
  /* flex-gap */
}

标签:flex,flexbox,column,22%,元素,gap,均匀,row
From: https://www.cnblogs.com/Himmelbleu/p/18427405

相关文章

  • HTML中的列表、表格、媒体元素和内联框架
    HTML中的列表、表格、媒体元素和内联框架本章目标会使用有序列表、无序列表和定义列表实现数据展示(重点)会使用表格实现数据会使用媒体元素在网页中播放视频(重点)会使用html5结构元素进行网页布局(重点)一、列表1.无序列表ul:unorderedlist快捷键:ul>li*5>aul>li>img+p......
  • 数据结构之线性表——LeetCode:82. 删除排序链表中的重复元素 II,21. 合并两个有序链
    82.删除排序链表中的重复元素II题目描述82.删除排序链表中的重复元素II给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。运行代码classSolution{public:ListNode*deleteDuplicates(ListNode......
  • 前端——元素类型+文字样式
    一、元素类型1.块级元素>块级标签:div p h1~h6 ul ol li dldtddhrbr等 还有表格标签 table特征:1.独占一行 不会共享一行的位置 2.不设置宽度 默认是继承父级宽度100% 结构上没有父级那就是浏览器 3.高度不设置默认由内容撑开 ......
  • 移除链表元素
    移除链表元素思路:1.首先判断链表是否为空,若为空直接返回head(null)2.若链表不为空,让prev记住要删除节点的前一个位置,cur指向要删除的元素位置,若cur指向的val==要删除的值,就让prev.next指向cur.next3.因为cur是从head的下一个节点位置开始判断的,就没有判断头节点是否为要......
  • 返回数组中的最大元素个数
    /***返回数组中的最大元素个数*约束:*数组大小1<=size<=10to5*数组元素大小1<=arrList[i]<=10to7*@paramcandles*@return*/publicstaticintbirthdayCakeCandles(List<Integer>candles){if(cand......
  • [Java基础]安全删除列表元素
    普通遍历中删除ArrayList<Integer>arr=newArrayList<>();arr.add(1);arr.add(2);arr.add(3);arr.add(4);arr.add(5);for(Integeri:arr){if(i==2){arr.remove(i......
  • Vue学习笔记6:分别使用纯JavaScript和Vue的v-if 指令来有条件地渲染网页元素
    0缘起有时我们的网页需要根据需要用户的选择展示不同的页面元素。例如:<p>你喜欢哪种水果?</p><p> <label> <inputtype="radio"value="苹果"name="fruit"/> 苹果 </label></p><p> <label> <inputtype="ra......
  • Leetcode 378. 有序矩阵中第 K 小的元素
    1.题目基本信息1.1.题目描述给你一个nxn矩阵matrix,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个不同的元素。你必须找到一个内存复杂度优于O(n^2)的解决方案。1.2.题目地址https://leetcode.cn/problem......
  • [leetcode刷题]面试经典150题之5多数元素元素(简单)【附Boyer-Moore 投票算法(摩尔投票法
    很有意思的一个题,想了半天没想出来,最后发现两行代码就做出来了。写完后学习到还可以用Boyer-Moore投票算法,能减小空间复杂度,我把它写在后面,可以进一步学习。题目  多数元素给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊......
  • 每日一题:Leetcode-347 前K个高频元素
    力扣题目解题思路java代码力扣题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1]提示:1<=nu......