CSS布局问题:并排div的中间文本如何固定不受左侧文本长度影响
问题根因
你当前用inline-block做水平排列,元素会按照文档流依次占位,左侧配送员姓名变长自然会挤占后续元素的位置,同时你给.taskboardesc加的left属性仅对设置了position定位的元素生效,对inline-block元素无效,所以没有起到固定位置的作用。
解决方案
直接启用你已经注释掉的flex布局,给三个水平排列的区域分别设置宽度规则即可,无需修改PHP代码,仅替换CSS即可:
.taskboardheader { display: flex; align-items: center; /* 三个区域之间的间距,可根据需求调整数值 */ gap: 24px; margin-bottom:20px; padding:10px 5px 2px; } /* 左侧配送员姓名区域规则 */ .taskboardheader > a:first-child { /* 左侧固定宽度,可根据实际需求调整 */ width: 200px; white-space: nowrap; overflow: hidden; /* 姓名过长时自动显示省略号,避免撑破布局 */ text-overflow: ellipsis; } .taskboardesc { /* 中间备注区域固定宽度,不会被挤压也不会自动拉伸,数值可自行调整 */ flex: 0 0 400px; padding: 5px 0 2px; /* 删掉原有的left、inline-block相关规则 */ } /* 右侧日期区域规则 */ .task-board-date1 { /* 右侧固定宽度,可自行调整 */ width: 180px; text-align: right; }
调整完后三个区域宽度完全独立,左侧姓名长度变化不会影响中间备注的位置。
内容的提问来源于stack exchange,提问作者Slim_Shady
相关产品推荐
相关产品推荐

