2017-04-21 4 views
0

J'ai une ligne où l'étiquette et un bouton doivent être affichés. L'étiquette doit être alignée à gauche, le bouton doit être aligné à droite. L'étiquette doit prendre tout l'espace dont le bouton n'a pas besoin. Le texte de l'étiquette ET le texte du bouton étant dynamique, aucune longueur fixe ne peut être utilisée.Aligner div côte à côte avec le premier en prenant toute la largeur dont le second div n'a pas besoin

Comment puis-je y parvenir sans utiliser Javascript?

.label 
 
{ 
 
    background-color: yellow; 
 
    float: left; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
} 
 

 
.buttoncontainer 
 
{ 
 
    text-align: right; 
 
}
<div class="container"> 
 
    <div class="header"> 
 
    <div class="label">This is the label that could get pretty long so that it has to be made smaller with ellipsis so it doesn't take multiple lines are overflows the button</div> 
 
    <div class="buttoncontainer"> 
 
     <button>Zoom in</button> 
 
    </div> 
 
    </div> 
 
    <div class="#body"> 
 
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie 
 
    </div> 
 
</div>

+0

question similaire ici: http://stackoverflow.com/questions/1260122/expand-a-div-to-take-the-remaining-width. – vv01f

Répondre

0

m'a dit d'utiliser des tables pour les données des tableaux. Mais c'est la seule façon que je peux penser pour le faire fonctionner sans JS. Il n'est pas nécessaire de changer les éléments div en éléments de table. Il sera contrôlé dans le CSS.

https://jsfiddle.net/xmww2koh/

Votre tête deviendra la table

.header {display: table} 

Et vos deux autres conteneurs les cellules. Ensuite, mettez une largeur sur le bouton seulement.

.label {display: table-cell;} 
.buttonContainer {display: table-cell; width: 100px;} 

Cela fera en sorte que l'étiquette occupera toute la largeur non utilisée par le bouton.

+0

Hey, ce n'est pas exactement ce que je cherche ... La largeur du bouton devrait être dynamique ET l'étiquette ne devrait avoir qu'une seule ligne et devrait être tronquée avec des ellipses. Des idées comment je peux y parvenir? – kaljak

+0

J'ai trouvé une solution, sur une autre question. Cela a déjà été demandé auparavant. C'est la deuxième réponse avec les upvotes. http://stackoverflow.com/questions/14826992/text-overflow-ellipsis-in-table-cell-without-width – Gezzasa

0

Cochez cette case. J'ai conçu en utilisant la table. J'espère que cela aide.

.label{ 
 
    background-color: yellow; 
 
    float: left; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
} 
 
.btn{ 
 
    width: 75px; 
 
}
<div class="container"> 
 
    <table><tr> 
 
    <td class="label">This is the label that could get pretty long so that it has to be made smaller with ellipsis so it doesn't take multiple lines are overflows the button</td> 
 
    <td><button class="btn">Zoom in</button></td> 
 
    </tr></table> 
 
    <div class="#body"> 
 
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie 
 
    </div> 
 
</div>

+0

C'est une largeur folle pour le bouton. Voulez-vous dire px? – Gezzasa

+0

Vérifie maintenant. Je me suis concentré sur la structure. Changez la largeur du bouton selon vos besoins. Serait-ce difficile? – Sharmila

0

Utilisez ce code CSS, espérons qu'il vous aidera.

.label 
{ 
    background-color: yellow; 
    float: left; 
    width:85%; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
} 

.buttoncontainer 
{ 
    text-align: right; 
    float:right; 
    width:15%; 
} 
0

.label 
 
{ 
 
    background-color: yellow; 
 
    float: left; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
    float:left; 
 
    width:85%; 
 

 
} 
 

 
    
 

 
.buttoncontainer 
 
{ 
 
    text-align: right; 
 
    float:left; 
 
width:15%; 
 
}
<div class="container"> 
 
    <div class="header"> 
 
    <div class="label">This is the label that could get pretty long so that it has to be made smaller with ellipsis so it doesn't take multiple lines are overflows the button</div> 
 
    <div class="buttoncontainer"> 
 
     <button>Zoom in</button> 
 
    </div> 
 
    </div> 
 
    <div class="#body"> 
 
Weit hinten, hinter den Wortbergen, fern der Länder Vokalien und Konsonantien leben die Blindtexte. Abgeschieden wohnen sie in Buchstabhausen an der Küste des Semantik, eines großen Sprachozeans. Ein kleines Bächlein namens Duden fließt durch ihren Ort und versorgt sie mit den nötigen Regelialien. Es ist ein paradiesmatisches Land, in dem einem gebratene Satzteile in den Mund fliegen. Nicht einmal von der allmächtigen Interpunktion werden die Blindtexte beherrscht – ein geradezu unorthographisches Leben. Eines Tages aber beschloß eine kleine Zeile Blindtext, ihr Name war Lorem Ipsum, hinaus zu gehen in die weite Grammatik. Der große Oxmox riet ihr davon ab, da es dort wimmele von bösen Kommata, wilden Fragezeichen und hinterhältigen Semikoli, doch das Blindtextchen ließ sich nicht beirren. Es packte seine sieben Versalien, schob sich sein Initial in den Gürtel und machte sich auf den Weg. Als es die ersten Hügel des Kursivgebirges erklommen hatte, warf es einen letzten Blick zurück auf die Skyline seiner Heimatstadt Buchstabhausen, die Headline von Alphabetdorf und die Subline seiner eigenen Straße, der Zeilengasse. Wehmütig lief ihm eine rhetorische Frage über die Wange, dann setzte es seinen Weg fort. Unterwegs traf es eine Copy. Die Copy warnte das Blindtextchen, da, wo sie herkäme wäre sie 
 
    </div> 
 
</div>