2011-01-11 8 views
4

Ich bin auf einen älteren Code gestoßen, der SmartGWT verwendet. Ich vermute, dass die API auch in Standard-GWT vorhanden ist.Was bewirkt setWidth ("*") in CSS/SmartGWT?

widget.setWidth("*"); 

Unter Berücksichtigung der Tatsache, dass das gleiche Stück Code hat:

otherWidget.setWidth100(); 

ich nicht bewusst bin, dass CSS etwas hat:

width: *; 

So ... ist dieser Code legitim und wenn ja, was macht es ... oder nicht ?!

Vielen Dank im Voraus.

+1

Ich weiß nicht ... 'Auto', vielleicht? – BoltClock

Antwort

6

In SmartGWT .setWidth("*") bedeutet, nehmen Sie die Rest der verfügbaren Breite. Zum Beispiel, wenn Sie eine HPanel mit zwei Kindern haben und eines der Kinder hat setWidth("10%") dann implizit das Kind mit) wird 90% Breite haben. Auf diese Weise können Sie die Breite eines untergeordneten Elements ändern, ohne den anderen setWidth-Aufruf aktualisieren zu müssen.

+1

Es ist perfekt von der Vitrine gelichtet: http://www.smartclient.com/smartgwt/showcase/#layout_layout man kann die beiden festen Prozent-Spalte und den Rest sehen, wenn die Größe des Fensters geändert wird –

2

Bedenken Sie, dass Sie eine Panel mit zwei Kindern haben. Wenn Sie jetzt setWidth("*") für beide Kinder setzen, nimmt das erste Kind die erforderliche Breite und das zweite Kind wird erhalten, was noch übrig ist. Wenn Sie setWidth("60%") für das erste Kind und setWidth("*") für das zweite Kind festlegen, nimmt das erste Kind 60% der Breite des Bedienfelds und das zweite Kind die restlichen 40%.

.setWidth100();.setHeight100(); und diese 2 machen die Komponente die Leinwand füllen es in. Dieser Mittelwert eingestellt Breite & Höhe 100%, was setWidth("100%") und setHeight("100%") jeweils äquivalent ist.

Dies wird im Wesentlichen verwendet, wenn Sie die Breite des untergeordneten Bedienfelds nicht speziell festlegen möchten. Sie geben eine grobe Breite des ersten untergeordneten Bedienfelds an, und die Breite des zweiten untergeordneten Elements wird automatisch festgelegt.

Verwandte Themen