2017-02-23 1 views
-1

Ich bin auf einem ziemlich kniffligen CSS-Problem stecken. Dies ist, was das Banner für eine unsere Seiten sieht derzeit wie:Machen Sie zwei divs mit variabler Breite neben und zentriert zur gleichen Zeit

enter image description here

Und hier ist der entsprechende HTML-Code:

<div style="width: 50%; overflow: hidden; margin: 0 auto; line-height: 40px"> 
    <div style="float: right"> 
     <i class="glyphicon project-switcher glyphicon-chevron-down"></i> 
    </div> 
    <div> 
     <h4 style="white-space: nowrap; overflow:hidden; 
        text-overflow: ellipsis">Some Project Title</h4> 
    </div> 
</div> 

Wie Sie sehen können, gibt es Raum zwischen dem Projekttitel und das Dropdown-Menü Glyphon, das wie ein kleiner nach unten zeigender weißer Pfeil aussieht.

Wir möchten erreichen, dass der Projekttitel unmittelbar neben dem Glyphon steht, aber auch der Titel und das Glyphon selbst in der Mitte des Bildschirms zentriert sind. So etwas ist, was wir wollen:

enter image description here

ich eine Reihe von Beiträgen hier gelesen habe, auf SO in Bezug auf ein div mit dem anderen flexiblen festen machen, aber ich kann nicht einen Weg zu beantragen, dass auf denen findet vorliegender Fall. Eigentlich weiß ich nicht einmal, wie ich eine Lösung für dieses Problem formulieren soll. Deshalb bitte ich um Hilfe.

+0

sollten Sie verwenden * Flexbox * Tim. –

Antwort

1

sich auch unter Snippet

<div style="width: 50%; overflow: hidden; margin: 0 auto; line-height: 40px; text-align:center; border:1px solid #000"> 
 
    
 
    <div style=" display: inline-block; vertical-align: middle; max-width:90%"> 
 
     <h4 style="white-space: nowrap; overflow:hidden; 
 
        text-overflow: ellipsis;">Some Project TSome Project TSome Project TSome Project TSome Project TSome Project TSome Project TSome Project TSome Project T</h4> 
 
    </div> 
 
    <div style="display: inline-block; vertical-align: middle;"> 
 
     <i class="glyphicon project-switcher glyphicon-chevron-down">i</i> 
 
    </div> 
 
</div>

+0

Dies schien auf dem Desktop zu funktionieren, aber beim Testen in mobilen Geräten hat es nicht funktioniert, und dies verhindert auch, dass die Ellipse funktioniert. –

+0

Können Sie mir die Ausgabe auf Handy zeigen, auch müssen Sie feste Breite zu 'h4' geben, um Ellipsen zu arbeiten – aje

+0

Dies ist eine der Anforderungen, dass die '

' Variable Breite haben kann, weil wir nicht wissen, wie lange der Titel könnte sein. Wir möchten, dass der Titel den gesamten verfügbaren Platz einnimmt, mit Ausnahme der Glyphe. –

0

wie diese versuchen, kann es funktionieren ...

 <div style="width: 50%; overflow: hidden; margin: 0 auto; line-height: 40px"> 


     <h4 style="white-space: nowrap; overflow:hidden; 
        text-overflow: ellipsis">Some Project Title <i class="glyphicon project-switcher glyphicon-chevron-down"></i></h4> 

</div> 
0

display: flex; justify-content: center; werden die 2 Elemente in der Mitte zentriert (zentriert horizontal). Und align-items: center wird sie vertikal zentrieren.

Dann können Sie order auf die Kinder verwenden, um die Elemente neu zu ordnen, so dass die Glyphe auf der rechten Seite ist, obwohl es vor der h4 in der Markup kommt. Oder Sie könnten einfach diese 2 Elemente in Ihrem HTML neu anordnen.

<div style="width: 50%; overflow: hidden; margin: 0 auto; line-height: 40px; display: flex; align-items: center; justify-content: center;"> 
 
    <div style="order: 1;"> 
 
    <i class="glyphicon project-switcher glyphicon-chevron-down">(glyph)</i> 
 
    </div> 
 
    <div> 
 
    <h4 style="white-space: nowrap; overflow:hidden; text-overflow: ellipsis">Some Project Title</h4> 
 
    </div> 
 
</div>

+0

Hi Michael, das funktionierte im Desktop-Modus (und es funktioniert natürlich in Ihrer Demo), aber es hatte Probleme in der mobilen Ansicht. Insbesondere wurden Titel und Glyphe in der mobilen Ansicht abgeschnitten. –

+0

@TimBiegeleisen willst du noch Hilfe? Sieht so aus, als hättest du bereits eine Antwort akzeptiert. –

+0

Die andere Antwort funktionierte für mich, aber danke für das Posten. Die Sache ist, ich habe eine mobile Sicht. –

Verwandte Themen