Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Ausschreibungssprachen und clientseitige Programmierung > HTML, XML und CSS > [CSS] Blockelement mit automatischer Breite
Antwort
 
Themen-Optionen
Alt 19.02.2008, 14:34   Nach oben    #1
$traight-$hoota
Erfahrener Benutzer
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
Standard [CSS] Blockelement mit automatischer Breite

Ich möchte ein Blockelement (in diesem Fall address) so anordnen, dass es nicht die gesamte Breite des verfügbaren Platzes einnimmt, sondern lediglich so breit wird, wie der enthaltene Text es erfordert (im Beispiel also bei einer nichtproportionale Schriftart ca 15 em).
HTML-Code:
<address>Max Mustermann
Hauptstraße 1
12345 Neustadt</address>
Prinzipiell sollte sowas ja per width:auto lösbar sein, normale Blockelemente werden damit aber genau so breit, dass sie in das umgebende Element reinpassen, also 100% - (margin + border + padding).
Als möglich Lösungen hab ich folgendes gefunden (mit width:auto)
  • position:absolute - denkbar schlechteste lösung, da dann irgendwie anders der platz freigehalten werden muss (z. B. ein duplikat des elements mit position:relative und visibility:hidden)
  • float:left - dazu muss aber ein Element folgen, dass clear:left als Eigenschaft besitzt
  • display:table-cell - funktioniert ohne mehraufwand, ist aber imo nicht sehr sauber, einfach eine tabellenzelle in der gegend stehen zu haben, und funktionert nicht im IE (zumindest bis 6)
Oder steh ich jetzt nur irgendwie auf dem schlauch und es gibt ne ganz einfache Lösung??
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.02.2008, 16:33   Nach oben    #2
Xean
Erfahrener Benutzer
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 421
Standard

Zitat:
Zitat von $traight-$hoota Beitrag anzeigen
[...], dass es nicht die gesamte Breite des verfügbaren Platzes einnimmt, sondern lediglich so breit wird, wie der enthaltene Text es erfordert
Wie wäre es mit einem display:inline? Dann brauchst du kein position und kein width.
Xean ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.02.2008, 22:24   Nach oben    #3
$traight-$hoota
Erfahrener Benutzer
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
Standard

das zerhaut mir das ganze aber erst total. das address-feld ist eben ein block-element.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 10:49   Nach oben    #4
dago
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard

Wenn ich dich richtig verstanden habe, dann geht es dir wahrscheinlich um den Rand. Der Rand soll sich immer am Text orientieren. Allerdings die Zeile nur diesen Text enthalten.

Also ich würde es so lösen:
HTML-Code:
<p><address>Max Mustermann
Hauptstraße 1
12345 Neustadt</address></p>
address natürlich in ein "inline" Element umwandeln.
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 12:05   Nach oben    #5
$traight-$hoota
Erfahrener Benutzer
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
Standard

Also mir geht es darum, dass es so angezeigt werden soll, wie auf dem Screenshot:

Also das Address-Feld ist nur so groß, wie der Text, der Teil rechts bleibt frei.
Dazu verwende ich diesen CSS-Code:
css Code:
  1. address {
  2.     display: table-cell;
  3.     padding: 0.5em 1em;
  4.     white-space: pre;
  5.     width: 20em;
  6. }
Die Breitenangabe per width fungiert dabei lediglich als Mindestbreite für Elemente mit kurzen Zeilen, dass die nicht so mikrig aussehen (min-width scheint keinen Effekt bei display:table-cell zu haben); bei dem Screenshot hat es aber keine Auswirkungen, da das Feld breiter asl 20 em ist.

Also ich denke, dass das eigentlich eine ganz gute Lösung ist, die auch von allen getesteten Browsern so angezeigt wird, wie ich es mir wünsche (außer IE < 6). Das "Problem" sehe ich nun als gelöst an und ich glaube nicht, dass es noch eine andere (einfache) Möglichkeit gibt.
Aber vielen Dank für eure Hilfe!
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:06 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44