2016-09-11 2 views
1

Ich habe einen Button mit zwei Texten und einem Font-awesome Symbol. Die zwei Texte sollten linksbündig sein, während das Symbol zentriert sein sollte.Center Schriftart awesome Symbol in einem Container div

enter image description here

<div className="overlay"> 
    <span>Unifyed</span><br/> 
    <span style={{fontSize: "14px", textAlign: "left"}}>iOS Developer</span><br/> 
    <span><i className="icon fa fa-plus" /></span> 
</div> 

.overlay { 
    display: inline-block; 
    text-align: left; 
    background: rgba(0, 0, 0, .35); 
    padding-top: 15px; 
    padding-left: 15px; 
} 

Seit dem Text und das Symbol sind sowohl in overlay enthalten ist, ist es eine Möglichkeit, sie zu verschiedenen Stilen zuweisen? Ich habe versucht, den Text und das Symbol in zwei verschiedene overlay Klassen zu teilen, aber da es ein Overlay ist, müssen alle drei unter einem übergeordneten Container sein.

+0

versuchen Sie jede Textzeile oder das Symbol haben ihren eigenen Stil? Wenn ja, können Sie einfach jedem eine ID zuweisen und ihre CSS ändern – davidhu2000

+0

Ich kann das Styling nicht auf jedes "span" oder "i" anwenden. Ich muss es auf den übergeordneten Container anwenden. Wenn ich das Symbol zentrieren möchte, kann ich es nicht einfach auf das Symbol anwenden. – patrickhuang94

Antwort

6

<i> Tags sind nicht selbstschließend .... <i class="xxxxx"></i> und sie zusammen mit Spannweiten, werden immer als inline angezeigt ... es ändern oder Block-Block Inline.

Und vermeiden Sie die Verwendung von <br /> Tags würde Ihnen gut, wenn Sie jemals brauchen, um die Markup zu aktualisieren. <br /> Tags sind böse.

.overlay { 
 
    display: inline-block; 
 
    text-align: left; 
 
    background: rgba(0, 0, 0, .35); 
 
    padding-top: 15px; 
 
    padding-left: 15px; 
 
} 
 

 
/* below is added because clearly your CSS here is incomplete */ 
 

 
.overlay { width: 200px; height: 200px; } 
 
span { display: block; }
<div class="overlay"> 
 
    <span>Unifyed</span> 
 
    <span style="fontSize: 14px;">iOS Developer</span> 
 
    <span style="text-align: center;"><i class="icon fa fa-plus"></i></span> 
 
</div> 
 

 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" />

+0

Er sollte das "" -Tag an erster Stelle nicht verwenden. Dort gibt es einen Platz für semantisches HTML. – Ricky

+0

Einverstanden. mehr ein Fall für Absätze als Spannen. – Scott

+0

Danke für die prägnante Erklärung :) Ich werde diese Vorschläge auch im Hinterkopf behalten. – patrickhuang94

2

einfach nur auf das Symbol in andere div innerhalb Overlay div hinzufügen und aply text-align: center;

.overlay { 
 
    display: inline-block; 
 
    text-align: left; 
 
    background: rgba(0, 0, 0, .35); 
 
    padding:15px; 
 
} 
 

 
.overlay .icon{ 
 
    text-align:center; 
 
    padding:8px 0; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/> 
 
<div class="overlay"> 
 
    <span>Unifyed</span><br/> 
 
    <span style={{fontSize: "14px", textAlign: "left"}}>iOS Developer</span><br/> 
 
    <div class="icon"> 
 
     <span><i class="fa fa-plus" aria-hidden="true"></i></span> 
 
    </div> 
 
    
 
</div>

Verwandte Themen