2017-04-14 11 views
1

Ich habe Probleme mit der Positionierung von Text auf der vertikalen und horizontalen Mitte meines Hintergrundbildes. Mein Hintergrundbild ist ein Abzeichen, das immer die gleiche Größe haben sollte, mein Text oben ist eine Zahl mit 1 oder 2 Ziffern. All das zusammen ist meine Überschrift.Zentrum Text auf Hintergrundbild

HTML:

<h1> 
    <span class="playerlevel"> 
    <strong>12</strong> 
    </span> 
    player 
    <span class="playertag"> #tag</span> 
</h1> 

CSS

.playerlevel strong { 
    height: 28px; 
    width: 28px; 
    padding: 0; 
    margin: 0; 
    line-height: 28px; 
    font-size: 18px; 
    font-weight: normal; 
    text-align: center; 
    background-image: url(http://i.imgur.com/IuhiyzQ.png); 
    color: #fff; 
} 

.playertag { 
    font-size: 1rem; 
} 

Wie das Ergebnis sollte wie folgt aussehen:

enter image description here

Was meinen Code erstellt:

enter image description here

JSFiddle:

https://jsfiddle.net/nafhLz1w/

+1

So: https://jsfiddle.net/3kmzh34m/ – Mazz

Antwort

1

Verwenden Hintergrund-Größe als Abdeckung mit einer gewissen Polsterung

Schnipsel unten

.playerlevel strong { 
 
    height: 28px; 
 
    width: 28px; 
 
    padding: 0; 
 
    margin: 0; 
 
    line-height: 28px; 
 
    font-size: 18px; 
 
    font-weight: normal; 
 
    text-align: center; 
 
    background-image: url(http://i.imgur.com/IuhiyzQ.png); 
 
    background-size:cover; 
 
    padding:10px; 
 
    color: #fff; 
 
} 
 

 
.playertag { 
 
    font-size: 1rem; 
 
}
<h1> 
 
    <span class="playerlevel"> 
 
    <strong>12</strong> 
 
    </span> 
 
    player 
 
    <span class="playertag"> #tag</span> 
 
</h1>

0

Sie benötigen 2 Eigenschaften festlegen: background-size: cover; und eine Polsterung z.B. padding: 10px;

JsFiddle: https://jsfiddle.net/hwkkr877/

+0

sieht nicht aus wie eine feste Lösung zu mir: http://i.imgur.com/puu0FwT.png. Offensichtlich hätte ich auch nur die Werte durchgehen können, bis es zu meinem Beispiel passt. Auch scheint es auf der y-Achse zu wiederholen – kentor

+0

Wiederholung konnte deaktiviert werden, indem die Hintergrund-Wiederholung: No-Repeat; Eigentum. Wie folgt: https: // jsfiddle.net/nafhLz1w/5/ –

1

Fügen Sie einfach 'display: inline-block;' zu deinem CSS.

1

Ich glaube, Sie haben nur die oder display:inline-block Attribut fehlt.

hinzufügen es wird die Nummer angezeigt ordnungsgemäß auf dem Hintergrundbild machen: https://jsfiddle.net/nafhLz1w/1/

Nebenbei bemerkt: Ich jedoch nicht den Eindruck erwecken, obwohl alles dies in einem H1-Tag zu wickeln, dass kein guter Weg ist, das zu handhaben . Wickeln Sie es lieber in ein div-Element oder ein anderes Blockelement.

+0

Ich dachte das gleiche, aber ich konnte keinen besseren Weg finden, um das Bild + Text direkt vor der Überschrift – kentor

+1

platzieren Sie könnten dann das Display verwendet haben: Inline-Block-Element oder Sie könnten wahrscheinlich Verwenden Sie auch die background-size: cover-Eigenschaft, um das zu tun, wie unten gezeigt von Benutzer: repzero –

+0

Wie folgt: https://jsfiddle.net/nafhLz1w/3/ –

0

Dieses sicher funktioniert.

.playerlevel { 
display: inline-block; 
} 

.playerlevel strong { 
background-image: url("http://i.imgur.com/IuhiyzQ.png"); 
background-size: contain; 
color: #fff; 
display: inline-block; 
font-size: 14px; 
font-weight: normal; 
height: 28px; 
line-height: 28px; 
margin: 0; 
padding: 0; 
text-align: center; 
width: 28px; 
}