对齐 HTML 和 CSS 中的文本和图标
Aligning text and icons in HTML and CSS
我想要它,这样所有图标都在它们所在的位置,右边的文本需要在图标和文本之间增加 space,这样所有文本都从同一个位置开始。
像这样:
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
而不是:
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
<ul>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
</ul>
只需将这些文本放入标签中,然后添加几个像素的左填充。那会起作用的。如果可以 git 一些示例代码。解释会更容易。
.text{
padding-left: 20px;
}
<div class="elements">
<span></span>
<span class="text">Home</span>
</div>
要么使所有图标的宽度相同,要么使用 CSS 网格。
ul {
list-style: none;
padding: 0;
margin: 0;
}
ul.width i {
width: 1.5em;
}
ul.grid {
display: grid;
grid-template-columns: auto 1fr;
gap: 0 0.5em;
}
ul.grid > li {
display: contents;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<ul class="width">
<li><i class="fas fa-envelope"></i> <a href="example.com">envelope</a></li>
<li><i class="fas fa-graduation-cap"></i> <a href="example.com">graduation-cap</a></li>
<li><i class="fas fa-school"></i> <a href="example.com">school</a></li>
<li><i class="fab fa-instagram"></i> <a href="example.com">instagram</a></li>
<li><i class="fab fa-linkedin-in"></i> <a href="example.com">fa-linkedin-in</a></li>
</ul>
<br>
<ul class="grid">
<li><i class="fas fa-envelope"></i> <a href="example.com">envelope</a></li>
<li><i class="fas fa-graduation-cap"></i> <a href="example.com">graduation-cap</a></li>
<li><i class="fas fa-school"></i> <a href="example.com">school</a></li>
<li><i class="fab fa-instagram"></i> <a href="example.com">instagram</a></li>
<li><i class="fab fa-linkedin-in"></i> <a href="example.com">fa-linkedin-in</a></li>
</ul>
我想要它,这样所有图标都在它们所在的位置,右边的文本需要在图标和文本之间增加 space,这样所有文本都从同一个位置开始。
像这样:
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
而不是:
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
ICON TEXT
<ul>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
<li><i class"fa fa-icon"></i> <a href="example.com">Example</a></li>
</ul>
只需将这些文本放入标签中,然后添加几个像素的左填充。那会起作用的。如果可以 git 一些示例代码。解释会更容易。
.text{
padding-left: 20px;
}
<div class="elements">
<span></span>
<span class="text">Home</span>
</div>
要么使所有图标的宽度相同,要么使用 CSS 网格。
ul {
list-style: none;
padding: 0;
margin: 0;
}
ul.width i {
width: 1.5em;
}
ul.grid {
display: grid;
grid-template-columns: auto 1fr;
gap: 0 0.5em;
}
ul.grid > li {
display: contents;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<ul class="width">
<li><i class="fas fa-envelope"></i> <a href="example.com">envelope</a></li>
<li><i class="fas fa-graduation-cap"></i> <a href="example.com">graduation-cap</a></li>
<li><i class="fas fa-school"></i> <a href="example.com">school</a></li>
<li><i class="fab fa-instagram"></i> <a href="example.com">instagram</a></li>
<li><i class="fab fa-linkedin-in"></i> <a href="example.com">fa-linkedin-in</a></li>
</ul>
<br>
<ul class="grid">
<li><i class="fas fa-envelope"></i> <a href="example.com">envelope</a></li>
<li><i class="fas fa-graduation-cap"></i> <a href="example.com">graduation-cap</a></li>
<li><i class="fas fa-school"></i> <a href="example.com">school</a></li>
<li><i class="fab fa-instagram"></i> <a href="example.com">instagram</a></li>
<li><i class="fab fa-linkedin-in"></i> <a href="example.com">fa-linkedin-in</a></li>
</ul>