2016-10-18 21 views
1

ich eine Webseite zu machen und müssen Mitte-align 3 divs als Promo-Gehalt, wie folgt aus:-Center Text mit Bildern in Flexbox

enter image description here

Um diesen Abstand und die Ausrichtung zu erhalten, habe ich unsichtbare Bilder und machte dann auf mobilen versteckt, so erhalten sie ansprechbar, wie folgt aus:

<div id="promocontent"> 
    <img class="img-responsive" src="img/iconenope.png"> 
    <img class="img-responsive hidden hide-on-med-and-down" src="img/iconehidden.png"> 
    <img class="img-responsive" src="img/iconenope.png"> 
    <img class="img-responsive hidden hide-on-med-and-down" src="img/iconehidden.png"> 
    <img class="img-responsive" src="img/iconenope.png"><br><br> 
</div> 

CSS:

#promocontent { 
display: flex;     /* establish flex container */ 
flex-direction: row;   /* default value; can be omitted */ 
flex-wrap: nowrap;    /* default value; can be omitted */ 
justify-content: space-between; /* switched from default (flex-start, see below) */ 
padding: 5px; 
} 
Jetzt

, ich brauche Text auf dem Mitte-Boden dieser Bilder hinzufügen, so etwas wie:

enter image description here

Also, wie kann ich tun, dass (in Reaktion darauf arbeiten)? Richten Sie 2 Textzeilen aus (vielleicht 1, aber 2 wäre besser).

Vielen Dank.

Antwort

0

würde ich für den Abstand mit einem zusätzlichen Bild vermeiden und stützen sich nur auf justify-content: space-between

Fühlen Sie sich frei meine codepen zu überprüfen (im Grunde die gleiche wie Michaels) .

http://codepen.io/anon/pen/zKmaVJ

+0

Gibt es irgendwelche Vorteile? Wie ist das mit meinem Extra img falsch? – MucaP

+0

Nichts, außer dass Sie den Benutzer zwingen unnötiges Gewicht herunterzuladen. Wir wollen so wenig wie möglich - das ist gestalterische Perfektion. Sie können auch '' '' space-around''' ausprobieren, um mit dem Abstand zu experimentieren. – ilrein

+0

Danke. BTW, es hat funktioniert! – MucaP

1

#promocontent { 
 
    display: flex; 
 
    justify-content: space-between; 
 
    padding: 5px; 
 
} 
 
#promocontent > div { 
 
    display: flex; 
 
    flex-direction: column; 
 
    align-items: center;  /* horizontally center child elements */ 
 
    text-align: center;  /* horizontally center text on narrow screens; 
 
           see http://stackoverflow.com/q/39678610/3597276 */ 
 
}
<div id="promocontent"> 
 
    <div> 
 
    <img class="img-responsive" src="http://i.imgur.com/60PVLis.png" width="50" height="50" alt=""> 
 
    <h2>header text</h2> 
 
    <span>text text text text text</span> 
 
    </div> 
 
    <div> 
 
    <img class="img-responsive" src="http://i.imgur.com/60PVLis.png" width="50" height="50" alt=""> 
 
    <h2>header text</h2> 
 
    <span>text text text text text</span> 
 
    </div> 
 
    <div> 
 
    <img class="img-responsive" src="http://i.imgur.com/60PVLis.png" width="50" height="50" alt=""> 
 
    <h2>header text</h2> 
 
    <span>text text text text text</span> 
 
    </div> 
 
</div>

https://jsfiddle.net/x2rzj1cu/2/

+0

Funktioniert nicht. Spaced eins für jede Zeile. – MucaP

+0

Kannst du mehr Infos oder eine Demo veröffentlichen, wie du es willst? –

+0

Ich habe bereits geschrieben, es ist auf der Frage, der zweite img. – MucaP