跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

CSS如何让列表项并排显示_将display设置为inline-block或flex

最轻量方案是给li设display: inline-block,但需处理换行符导致的4px间隙,推荐ul设font-size: 0再重置li字号;更可控的是ul设display: flex配合flex-wrap等属性;float会引发父容器塌陷且不支持现代布局需求。 list-item 怎么用 inline-block 并排显示 直接给
li
设
display: inline-block
是最轻量的方案,但默认会有看不见的空白间隙——这是换行符和空格被渲染成文本节点导致的。不是 bug,是 HTML 解析规则。 常见错误现象:
li
之间出现约 4px 的不可控缝隙,即使写了
margin: 0
也无效。 把
ul
的
font-size: 0
,再单独给
li
设回正常字号(比如
font-size: 16px
) 或者把
ul
的所有子节点写在一行,删掉
li
标签间的换行和空格(不推荐,可维护性差) 避免对
li
使用
vertical-align: baseline
(默认值),改用
top
或
middle
,否则基线对齐会放大间隙感 flex 布局下 ul/li 的正确写法 用
display: flex
更可控,但别直接写在
li
上——应该设在父容器
ul
上。否则每个
li
变成独立 flex 容器,失去“列表项”语义和布局联动。 使用场景:需要等宽、居中、自动换行或响应式间距时,
flex
比
inline-block
更可靠。 立即学习 “ 前端免费学习笔记(深入) ”;
ul
设
display: flex
,
flex-wrap: wrap
控制是否折行 用
justify-content
调水平对齐(
space-between
、
center
等),不用
text-align
li
默认是 flex item,不需要额外设
display
;若要等宽,可加
flex: 1
或固定
width
注意 Safari 旧版本对
flex: 1
在
li
上的支持不稳定,建议用
flex: 0 0 auto
+ 显式
width
为什么不能只靠 float:left
float
确实能让
li
并排,但它会让父
ul
高度塌陷——因为浮动元素脱离文档流。这不是“没写 clear”的问题,而是布局模型根本不同。 使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件 如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更 下载 常见错误现象:
ul
看起来高度为 0,背景色/边框消失,后续元素上移。 必须配合
overflow: hidden
或伪元素
::after { content: ""; display: table; clear: both; }
才能撑开父容器
float
不支持垂直居中、间隙控制、响应式重排,现代项目里纯属历史包袱 如果用了 CSS Grid 或 Flex 布局,再混用
float
会导致意外交互(比如
float
会被忽略) 移动端要注意的兼容性细节 iOS Safari 12.2 之前不支持
flex-wrap: wrap
在
ul
上的某些组合行为;Android WebView 对
inline-block
的基线计算也有差异。 性能影响:大量
li
用
flex
时,若频繁增删,比
inline-block
触发更多 layout 计算,但日常几十项完全无感。 加
ul { -webkit-flex-wrap: wrap; flex-wrap: wrap; }
覆盖老 iOS 避免在
li
上写
width: calc(33.333% - 10px)
这类复杂表达式,部分 Android 低版本解析出错 真要兼容 IE11?那就只能退回
inline-block
+ 字体大小归零法,别碰
flex
事情说清了就结束。真正麻烦的从来不是“怎么并排”,而是并排之后的对齐、换行、间隙、塌陷、缩放、语义——这些细节堆在一起,才让一个简单的列表变得需要反复调。

相关文章