css布局两列等分如何写_通过 flex 1 或 grid fr 单位实现
发布时间 - 2026-01-25 00:00:00 点击率:次两列等分应优先用grid的1fr 1fr,语义清晰且不受内容干扰;若用flex:1,需确保父容器display:flex、子元素无固定宽度,并设min-width:0防长内容撑破。
用 flex: 1 实现两列等分的注意事项
直接给两个子元素都设 flex: 1 确实能等分,但前提是父容器必须是 display: flex,且子元素不能有固定宽度(如 width 或 min-width)干扰伸缩计算。
- 如果某列内容很长(比如超长 URL),默认会换行;若加了
white-space: nowrap,它可能撑破容器——此时需配合overflow: hidden或text-overflow: ellipsis -
flex: 1是flex-grow: 1; flex-shrink: 1; flex-basis: 0的简写,关键在flex-basis: 0:它让两列从“零宽度”开始按比例分配剩余空间,避免内容宽度影响均分逻辑 - 慎用
flex: 1 1 auto——flex-basis: auto会让元素先按自身内容宽度占位,再伸缩,容易导致不等宽
.container {
display: flex;
}
.col {
flex: 1;
}
.col:first-child {
background: #e0f7fa;
}
.col:last-child {
background: #ffccbc;
}用 grid 的 1fr 1fr 更直观可靠
grid 方案语义清晰、行为确定:两列各占 1 份可用轨道空间,不受内容尺寸干扰,也不依赖 flex-basis 魔法值。
-
1fr 1fr和repeat(2, 1fr)效果一致,后者更适合扩展为多列 - 若需要留间隙,优先用
gap(不是margin),它不会影响轨道计算,且自动避开容器边缘 - IE 不支持
fr单位(需回退到display: flex或float),但现代项目基本可忽略
.container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.col {
min-width: 0; /* 防止长内容撑破 */
}
为什么 min-width: 0 在两种方案里都常被忽略
浏览器默认给 flex/grid 子项设 min-width: auto,意味着它不会压缩到比内容最窄宽度还小——比如一个长单词或未换行的链接,会导致列宽失衡甚至溢出。
- 加
min-width: 0后,该列才真正遵守flex: 1或1fr
的分配规则
- 只对可能含长不可折内容的列加,不影响布局稳定性
- 和
overflow: hidden搭配时,记得同时设text-overflow: ellipsis和white-space: nowrap才生效
两列等分本身简单,但真实页面里内容不可控,min-width: 0 和内容截断处理才是决定是否“真等分”的关键。
# css
# 浏览器
# ai
# css布局
# overflow
# 为什么
# Float
# auto
# display
# margin
# flex
# 不受
# 撑破
# 换行
# 也不
# 才是
# 两种
# 能有
# 会让
# 不支持
# 很长
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用AWS免费套餐快速搭建高效网站?
如何快速生成可下载的建站源码工具?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
Laravel如何实现一对一模型关联?(Eloquent示例)
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何在Windows虚拟主机上快速搭建网站?
怎么用AI帮你为初创公司进行市场定位分析?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
node.js报错:Cannot find module 'ejs'的解决办法
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel如何创建自定义Artisan命令?(代码示例)
Swift开发中switch语句值绑定模式
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Python制作简易注册登录系统
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Python图片处理进阶教程_Pillow滤镜与图像增强
Laravel如何保护应用免受CSRF攻击?(原理和示例)
公司网站制作价格怎么算,公司办个官网需要多少钱?
lovemo网页版地址 lovemo官网手机登录
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
bootstrap日历插件datetimepicker使用方法
python中快速进行多个字符替换的方法小结
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
Laravel如何实现用户密码重置功能?(完整流程代码)
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
BootStrap整体框架之基础布局组件
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何快速搭建自助建站会员专属系统?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
打造顶配客厅影院,这份100寸电视推荐名单请查收
高防服务器租用指南:配置选择与快速部署攻略
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
再谈Python中的字符串与字符编码(推荐)
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
香港网站服务器数量如何影响SEO优化效果?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
简单实现Android文件上传
网站页面设计需要考虑到这些问题
Linux系统运维自动化项目教程_Ansible批量管理实战


