Ich habe ein sehr einfaches HTML, das Klartext und Symbolschriftarten mischt. Das Problem ist, dass Symbole nicht genau auf derselben Höhe wie der Text gerendert werden:
<div class="ui menu">
<a href="t" class="item"><i class="large home basic icon"></i><span class="nav-text"> Accueil</span></a>
<a href="" class="item"><i class="large camera retro icon"></i><span class="nav-text"> Créations</span></a>
<a class="item"><span class="nav-text">Qui-suis je </span><i class="large help basic icon"></i></a>
</div>
Irgendwelche Vorschläge, um das Problem zu beheben?
html
css
fonts
font-awesome
Fractaliste
quelle
quelle
Antworten:
In diesem Szenario können Sie, da Sie mit
inline
Elementen der Ebene arbeiten,vertical-align: middle
diespan
Elemente für die vertikale Zentrierung hinzufügen :.nav-text { vertical-align: middle; }
Alternativ können Sie das Set
display
des Mutterelementsflex
und Satzalign-items
ancenter
für vertikale Zentrierung :.menu { display: flex; align-items: center; }
quelle
Hier gibt es bereits einige Antworten, aber ich fand, dass Flexbox die sauberste und am wenigsten "hackige" Lösung ist:
parent-element { display: flex; align-items: center; }
Um Safari <8, Firefox <21 und Internet Explorer <10 zu unterstützen (Verwenden Sie diese Polyfüllung , um IE8 + 9 zu unterstützen), benötigen Sie Herstellerpräfixe:
parent-element { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
quelle
a
Element anzuwenden ? Wenn dies der Fall ist, ändern Siedisplay
die Verknüpfung, sodass ein Inline-Element in ein Blockelement konvertiert wird. Ich stimme nicht zu, dass dies die beste Lösung ist.inline-flex
anstelle von nurflex
vertical-align
kann einen Einheitswert annehmen, sodass Sie bei Bedarf darauf zurückgreifen können:{ display:inline-block; vertical-align: 5px; } { display:inline-block; vertical-align: -5px; }
quelle
Fügen Sie dies Ihrem CSS hinzu:
.menu i.large.icon, .menu i.large.basic.icon { vertical-align:baseline; }
DEMO
quelle
Um vertikal und horizontal zu zentrieren, verwenden Sie Folgendes:
position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
quelle
Stellen Sie
line-height
die vertikale Größe des Bildes ein und machen Sie es dannvertical-align:middle
wie Josh.Wenn das Bild ist
20px
, hätten Sie{ line-height:20px; font-size:14px; vertical-align:middle; }
quelle
<a>
Tags anwenden ?Hinzufügen zu den Spannweiten
vertical-align:baseline;
Hat bei mir aber nicht funktioniert
vertical-align:baseline; vertical-align:-webkit-baseline-middle;
hat funktioniert (auf Chrome getestet)
quelle
Sie können diese Eigenschaft verwenden:
vertical-align:middle;
.selector-class { float:left; vertical-align:middle; }
quelle
Verwenden von CSS Grid
HTML
<div class="container"> <i class="fab fa-5x fa-file"></i> <span>text</span> </div>
CSS
.container { display: grid; grid-template-columns: 1fr auto; align-items: center; }
Arbeitsbeispiel
quelle
Um die Antwort von Marian Udrea zu erweitern : In meinem Szenario habe ich versucht, den Text an einem Materialsymbol auszurichten. Materialsymbole haben etwas Seltsames, das verhindert hat, dass sie ausgerichtet werden. Keine der Antworten funktionierte, bis ich die hinzufügte
vertical-align
anstelle des übergeordneten Elements zum Symbolelement .Wenn sich das Symbol
24px
in der Höhe befindet:.parent { line-height: 24px; // Same as icon height i.material-icons { // Only if you're using material icons display: inline-flex; vertical-align: top; } }
quelle