位置: IT常识 - 正文

flex布局优化(两端对齐,从左至右)(flex布局实战)

编辑:rootadmin
flex布局优化(两端对齐,从左至右) 文章目录前言方式一 nth-child方式二 gap属性方式三 设置margin左右两边为负值总结前言

推荐整理分享flex布局优化(两端对齐,从左至右)(flex布局实战),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:flex布局教程实例篇,flex布局flex:1,flex布局使用场景,flex布局使用场景,flex布局用法,flex布局使用场景,flex布局问题,flex布局问题,内容如对您有帮助,希望把文章链接给更多的朋友!

flex布局是前端常用的布局方式之一,但在使用过程中,我们总是感觉不太方便,因为日常开发中,大多数时候,我们想要的效果是这样的

即左右两端对齐并顶满,小盒子左右间距一致,并且从左至右排布。 今天主要就来讨论,通过css,有几种方式来实现,以及它们的优缺点。

方式一 nth-child<template> <div class="main"><div class="flex-box"><div class="item-box">...</div>...</div> </div></template>.flex-box {display: flex; // 设置成为flex模式 flex-wrap: wrap; // 允许换行}.item-box {width: 22%; // 以4个一行为例,有4个子盒子,3个间距margin-right: 4%; // 3 * 4 + 4 * 22 = 100margin-bottom: 20px; // 行与行之间也要设置边距。}// 如果一行是5个就是 5 + 5n.item-box:nth-child(4 + 4n) {// 当n为0时,即表示第一行最后一个元素,不需要右外边距,否则就超出 100%了。margin-right: 0 !important;}

优点:实现了我们想要的布局方案,代码量也并不复杂,基本没有兼容性的问题。

缺点1:当遇到下面这种情况时,该设置将会失效。

<template> <div class="main"><div class="flex-box"><div class="item-box">...</div><div class="item-box" style="display:none;"></div></div> </div></template>

这是因为nth-child是按照子盒子的个数来设置的,虽然其中一部分子盒子消失了,但它的元素依然存在,个数并没有变。

flex布局优化(两端对齐,从左至右)(flex布局实战)

缺点2: 不够灵活,如果在不同屏幕分辨率下,每行个数不一样(做响应式的时候经常会遇见这种情况),需要在不同分辨率下,多写一套样式代码。

@media screen and (max-width: 991px) { .flex-box {display: flex; // 设置成为flex模式 flex-wrap: wrap; // 允许换行}.item-box {width: 48%; // 以2个一行为例,有2个子盒子,1个间距margin-right: 4%; // 1 * 4 + 2 * 48 = 100margin-bottom: 20px; // 行与行之间也要设置边距。}// 如果一行是2个就是 2 + 2n.item-box:nth-child(2 + 2n) {// 当n为0时,即表示第一行最后一个元素,不需要右外边距,否则就超出 100%了。margin-right: 0 !important;} }方式二 gap属性.flex-box {display: flex; // 设置成为flex模式 flex-wrap: wrap; // 允许换行 gap: 4%; // 设置间距为4%}.item-box {width: 22%; // 以4个一行为例,有4个子盒子,3个间距 margin-bottom: 20px; // 行与行之间也要设置边距。}

优点: 显而易见,这种方式的代码量更少,更方便,并且不存在方式一的缺点1,即display:none;不会造成影响。

缺点1:gap目前还是一个很新的属性,对浏览器的兼容性并不高,尤其是不兼容ie11,如果项目对浏览器没有兼容性要求,可以使用gap,当然也可以换一种布局方式,display:grid;

缺点2:当然这种方式也需要对不同分辨率的设配,额外多写一套代码,但相对来说,也轻松许多。

方式三 设置margin左右两边为负值.flex-box {display: flex; // 设置成为flex模式 flex-wrap: wrap; // 允许换行 margin: 0 -2% 0 -2% // 间距为4%}.item-box {width: 21%; // 以4个一行为例,有4个子盒子,4个间距 4 * 21 + 4 * 4 = 100 margin: 0 2% 20px 2%; // 左右两边各2%,所以间距为4%}

优点:兼容性很好,能够兼容ie11,并且不存在display:none;时的问题。 缺点1:代码略微有些复杂,需要合理安排盒子宽度和间距的宽度,与前面的两种方式不同间距数量和盒子数量一致。需要分别设置左边距和右边距。

缺点2:需要对不同分辨率的设配,额外多写一套代码。

总结

三种方式中,第二种方式最简单,但兼容性有限;第一种方式代码量不少,兼容性适中,而且display:none;的问题严重,最后一种方式,最推荐,虽然有一些计算,并且也要合理分配宽度,但其兼容性最好,基本没啥场景不能适用,正所谓一招鲜,吃遍天。

至于缺点2,面对不同分辨率,每行数量会变化的问题,目前没有特别好的解决方案,都需要额外一套样式代码才能解决。

当然,你可以通过使用scss或者less,弄一个for循环,从一行2个到 10个 进行样式的封装,这样使用的时候,直接使用类名即可,比如 flex-row-6,flex-row-4等。

@for $i from 2 through 10 { .flex-row-#{$i} { display: flex; flex-wrap: wrap; .item { width: calc(96% / #{$i}) !important; margin-right: calc(4% / #{$i - 1}) !important; margin-bottom: 20px; } .item:nth-child(#{$i}n + #{$i}) { margin-right: 0 !important; } }}
本文链接地址:https://www.jiuchutong.com/zhishi/296133.html 转载请保留说明!

上一篇:山东项目系统慢问题分析和解决(山东省项目)

下一篇:Python 高性能 web 框架 - FastApi 全面指南(Python 高性能 pdf)

  • 斗鱼弹幕服务器没有连接成功(斗鱼弹幕服务器未连接)

    斗鱼弹幕服务器没有连接成功(斗鱼弹幕服务器未连接)

  • vivoz3i为什么设置里没有OTG(vivoz3屏幕设置)

    vivoz3i为什么设置里没有OTG(vivoz3屏幕设置)

  • 哈罗单车扫码开不了锁(哈罗单车扫码开锁后屏幕散光是什么情况)

    哈罗单车扫码开不了锁(哈罗单车扫码开锁后屏幕散光是什么情况)

  • 苹果13系统怎么删除软件(苹果13系统怎么降级)

    苹果13系统怎么删除软件(苹果13系统怎么降级)

  • magicui和emui的区别(magicui与emui)

    magicui和emui的区别(magicui与emui)

  • 手机屏幕发黄是什么原因造成的(手机屏幕发黄是质量问题吗)

    手机屏幕发黄是什么原因造成的(手机屏幕发黄是质量问题吗)

  • 小怪兽app蓝牙连不上(小怪兽app蓝牙连接失败)

    小怪兽app蓝牙连不上(小怪兽app蓝牙连接失败)

  • iphone11进网许可证贴在哪(iphone11的进网许可证)

    iphone11进网许可证贴在哪(iphone11的进网许可证)

  • 抖音7000音浪可以换多少人民币(抖音70000万音浪多少钱)

    抖音7000音浪可以换多少人民币(抖音70000万音浪多少钱)

  • 苹果提示灯怎么开启(苹果提示灯怎么不亮)

    苹果提示灯怎么开启(苹果提示灯怎么不亮)

  • 关闭系统休眠有影响吗(取消系统休眠)

    关闭系统休眠有影响吗(取消系统休眠)

  • ipad全球联保需要发票吗(ipad wifi版全球联保)

    ipad全球联保需要发票吗(ipad wifi版全球联保)

  • 粘贴快捷键ctrl加什么意思(电脑复制粘贴快捷键ctrl)

    粘贴快捷键ctrl加什么意思(电脑复制粘贴快捷键ctrl)

  • 电池损耗18%需要换吗(电池损耗18%需要换电池吗)

    电池损耗18%需要换吗(电池损耗18%需要换电池吗)

  • 在微信上怎样打顺风车(在微信上怎样打印)

    在微信上怎样打顺风车(在微信上怎样打印)

  • 华为nova5pro有红外线吗(华为nova5pro有红外线遥控吗?)

    华为nova5pro有红外线吗(华为nova5pro有红外线遥控吗?)

  • 陌陌互关多久能开视频(陌陌互关多久能上线)

    陌陌互关多久能开视频(陌陌互关多久能上线)

  • 怎么删除手机使用痕迹(怎么删除手机使用记录华为)

    怎么删除手机使用痕迹(怎么删除手机使用记录华为)

  • word怎么设置脚注(word怎么设置脚注尾注)

    word怎么设置脚注(word怎么设置脚注尾注)

  • iqoo灯带怎么开启(iqoo7有没有灯带)

    iqoo灯带怎么开启(iqoo7有没有灯带)

  • 酷狗本地音乐文件夹在哪里(酷狗本地音乐文件夹在哪里 手机)

    酷狗本地音乐文件夹在哪里(酷狗本地音乐文件夹在哪里 手机)

  • 苹果11与苹果11pro的区别(苹果11与苹果11pro推荐)

    苹果11与苹果11pro的区别(苹果11与苹果11pro推荐)

  • 滴滴禁止分享行程对方知道吗

    滴滴禁止分享行程对方知道吗

  • 腾讯文件删除的文件怎么恢复(腾讯文件删除的图片怎么恢复)

    腾讯文件删除的文件怎么恢复(腾讯文件删除的图片怎么恢复)

  • oppo手机怎么散热(oppo手机怎么样才能把那个)

    oppo手机怎么散热(oppo手机怎么样才能把那个)

  • 闲鱼怎么设置自动播放(闲鱼怎么设置自助下单)

    闲鱼怎么设置自动播放(闲鱼怎么设置自助下单)

  • cad怎么输入数字(cad怎么输入数字画矩形)

    cad怎么输入数字(cad怎么输入数字画矩形)

  • Mac安装系统提示副本损坏怎么办?Mac安装系统提示应用程序副本已损坏解决方法(mac系统安装出错)

    Mac安装系统提示副本损坏怎么办?Mac安装系统提示应用程序副本已损坏解决方法(mac系统安装出错)

  • spell命令  建立拼写检查程序(split命令用法)

    spell命令 建立拼写检查程序(split命令用法)

  • DEDECMS V5 常用统计SQL标签(dedecms配置)

    DEDECMS V5 常用统计SQL标签(dedecms配置)

  • 进项税转出会计分录如何做
  • 支付土地补偿款怎么做账务处理
  • 纳税人多缴税款的退还期限
  • 外商投资企业是民营企业吗
  • 正版手写
  • 地产股权收购公司的账务处理
  • 红字发票的蓝字发票要退回吗
  • 地下车库的成本核算
  • 会计差错更正业务处理怎么操作?
  • 付拍卖佣金入什么科目核算及会计分录怎么做?
  • 运输业应列入
  • 当月取得的进项必须当月勾选吗
  • 纳税申报成功
  • 发生的成本作为存货处理
  • 计提成本会计分录怎么做
  • 怎样冲减虚开发票的会计分录
  • 预交增值税附加税费减免吗
  • 管理会计的目标包括多选题
  • 发票选择确认平台怎么选
  • 中药饮片适用增值税税率
  • 建筑施工企业开立临时账户
  • 建筑公司材料费属于什么科目
  • 一般纳税人税控盘维护费会计分录
  • 库存成本与实际成本不符
  • BT模式建设项目怎么处理税收?
  • 委托代付工程款会计分录
  • 捐赠计提管理费的账务处理?
  • 办理股权转让麻烦吗
  • 汇算清缴所得税退回做账
  • mac终端更新系统
  • 办税员可以增加办税员吗
  • 营改增后定额材料单价的组成包括
  • 认证进项转出怎么操作
  • php的运行机制与什么有关
  • PHP:disk_free_space()的用法_Filesystem函数
  • 集团内部资金拆借利息增值税
  • 长期股权投资追加投资
  • laravel框架实现cms的体会
  • querywrapper多表联查
  • ChatGPT 能自己跑代码了!
  • python3.9怎么清屏
  • python 远程控制
  • 实际缴纳的增值税是什么意思
  • 资产负债表中应交税费为负数是什么意思
  • 为什么分红不影响损益
  • 微擎最新破解版
  • 以前年度多计提折旧
  • 善意取得虚开发票罪认定
  • 车辆购置税如何在电子税务局缴纳
  • 计提所得税后再结转本年利润吗
  • 银行开户费属于现金流量表的哪一类
  • 企业中间投入
  • 发票红冲操作流程
  • 开模具厂一年能挣多少钱
  • 外地施工企业异地施工
  • 工程投标保证金什么时候交
  • 结转收入会计分录怎么做
  • 公司自建房要交房产税吗
  • 主营业务成本可以设明细科目吗
  • 建筑服务红字发票需要填写备注吗
  • 会计上有哪些
  • 企业盘盈盘亏的固定资产先要计入待处理财产损益
  • 劳务派遣服务怎么做会计分录
  • 动态sql中返回数组的值
  • centos安装问题
  • ubuntu20.0安装
  • win7待机时间在哪调
  • win8怎么打开桌面
  • win8系统启动不了如何修复
  • css网页布局在线生成
  • perl中@_
  • cocos2d教程
  • javascript val
  • 详解各种汽油一吨等于多少升
  • Unite Beijing 2015大型活动
  • php curl获取cookie
  • 重庆电子税务局怎么绑定办税人员
  • 讲话和讲话精神的区别
  • 税收是初次分配的手段
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设