2015-04-21 4 views
5

Wie man die Breite von Div1 innerhalb einer scrollbaren Div2 zu Div2 Breite dynamisch ändert. Überprüfen Sie diese Jsfiddle http://jsfiddle.net/xdKrF/34/ Sie sehen, dass der grüne Hintergrund bei 1 Punkt (bei Standardbreite) stoppt. Ich möchte das div mit dem grünen Hintergrund auf das gesamte scrollbare div erweitern.Wie man die Breite von Div1 innerhalb einer scrollbaren Div2 zu Div2 Breite dynamisch ändert

Wichtige Voraussetzung, TEXT darf nie verändert werden und muss in 1 Zeile bleiben.

Hat jemand eine einfache Lösung? Complex/hacky Lösung, die ich mir vorstellen kann ist scrollbar wird 1000% Breite haben und wenn es nicht scrollbar ist, wäre es Standard/100%. Verwenden von @media.

HTML

<div id="container" style="overflow:auto"> 
<div id="content"> 
    Well hello 
</div> 
<p>TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT</p> 

CSS

#content{ 
white-space:nowrap; 
background:green; 
} 

Antwort

2

OK, ich habe eine Lösung gefunden.

Einen Behälter umwickeln und float:left; darauf auftragen.

http://jsfiddle.net/2ugbkb6r/

+0

habe ich float geändert: links mit display: inline-block weil irgendwie andere elemente außerhalb des divs den hintergrund bekommen ?? Werde testen, warum ich zur Gemeinschaft beitragen soll, wenn ich frei bin. – JaredT

+0

@JaredT Wegen der 'float: links;' Sie können ein div mit 'clear: both' hinzufügen, um dies zu lösen. Wie dieser: http://jsfiddle.net/t317hnLn/ –

+0

Oh cool. obwohl ID-Stick mit Inline-Block zur Vereinfachung. – JaredT

0

Hier ist der Code: ( JS Fiddle)

#content{ 
 
    white-space:nowrap; 
 
    background:green; 
 
} 
 
#container { 
 
    margin: 0 auto; 
 
    width: 90%; 
 
    overflow: auto; 
 
    word-wrap: break-word;  
 
}
<div id="container"> 
 
    <div id="content"> 
 
     Well hello 
 
    </div> 
 
    <p> 
 
     TEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT 
 
    </p> 
 
</div>

+0

Dies ist die Lösung für das Problem wäre, wenn jedoch die Hintergrundfarbe des ersten div erweitern möchten, anstatt den Text in den Bildschirm des Anpassens, benutzen Sie einfach Fixlängen für beide und overflow: hidden extra TEXT zu löschen –

+2

Ich glaube nicht, dass es was op will ... –

+0

Zusätzliche Texte sind wichtig! und der Text muss in 1 Reihe sein. – JaredT

2

Vielleicht ist es besser, aber es funktioniert. Einfach display:table; zu #container hinzufügen http://jsfiddle.net/xdKrF/36/

+0

nice solution greate. – ketan

+0

Ein bisschen Buggy für die anderen Divs. Überprüfen Sie dies http://jsfiddle.net/xdKrF/37/ – JaredT

+0

Sie werden Anzeige hinzufügen: Tabelle; zu Eltern. In meiner Variante ist es #container. In Ihrem gibt es 2 Eltern: #container und # container1. Nur Anzeige hinzufügen: Tabelle; zu # container1 –

Verwandte Themen