CSS 分发内联元素主要涉及如何控制内联元素(inline elements)在容器中的排列和分布方式。内联元素是指那些不会独占一行的元素,如 <span>
, <a>
, <strong>
等,它们默认会在一行中从左到右排列。
text-align
属性text-align
是最基本的内联元素水平分布方式:
.container {
text-align: left; /* 左对齐(默认) */
text-align: center; /* 居中对齐 */
text-align: right; /* 右对齐 */
text-align: justify; /* 两端对齐 */
}
Flexbox 提供了更强大的内联元素分布控制:
.container {
display: flex;
justify-content: flex-start; /* 左对齐 */
justify-content: center; /* 居中对齐 */
justify-content: flex-end; /* 右对齐 */
justify-content: space-between; /* 两端对齐,项目间间隔相等 */
justify-content: space-around; /* 每个项目两侧间隔相等 */
justify-content: space-evenly; /* 项目间和边缘间隔完全相等 */
}
CSS Grid 也可以用于内联元素的分布:
.container {
display: grid;
grid-auto-flow: column;
justify-content: start | center | end | space-between | space-around | space-evenly;
}
inline-block
和 vertical-align
对于需要垂直对齐的内联元素:
.inline-element {
display: inline-block;
vertical-align: top | middle | bottom | baseline;
}
原因:HTML 中的换行和空格被解析为空白字符。
解决方案:
<div><span>Item1</span><span>Item2</span></div>
.inline-element {
margin-right: -4px;
}
.container {
font-size: 0;
}
.inline-element {
font-size: 16px; /* 重置子元素字体大小 */
}
原因:不同高度的内联元素默认基线对齐。
解决方案:
.inline-element {
vertical-align: top; /* 或 middle/bottom */
}
原因:容器宽度不足导致内联元素换行。
解决方案:
white-space: nowrap
防止换行:.container {
white-space: nowrap;
overflow-x: auto; /* 添加滚动条 */
}
.container {
display: flex;
flex-wrap: nowrap;
}
text-align
inline-block
配合 vertical-align