zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Horizontales Menü, Zeilenumbruch verhindern?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 16.09.2008, 09:44
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.09.2008
Beiträge: 3
basti0071 befindet sich auf einem aufstrebenden Ast
Unglücklich Horizontales Menü, Zeilenumbruch verhindern?

Hi zusammen,

ich bastele gerade an einem horizontalen Menü mit vertikalem DropDown. Das funktioniert auch, ich habe ein grundlegenderes Problem: das Menü kann u.U. sehr viele Menüpunkte enthalten, so dass die erste Zeile breiter als der Bildschirm wird. Ich möchte dann horizontal scrollen müssen, keinen Zeilenumbruch. Das bekomme ich leider nicht hin

Folgender (vereinfachter) Code als Beispiel für das Zeilenumbruch-Problem, nicht für das Menü:
Code:
<style type="text/css">
* { padding:0; border:0; margin:0; }

#navigationContainerDiv {
	background-color:#AAAAAA;
	padding:0;
	min-width:100%;
	height:20px;
}

navigationFirstLine, #navigationFirstLine ul {
    margin:0;
    list-style:none;
}

#navigationFirstLine li {
    float:left;
}

.classTopLevel {
	background-color:#AAAAAA;
	font-family:Verdana, Helvetica, sans-serif;
	text-transform: uppercase;
	height:20px;
	font-size:11px;	
	line-height:20px;
	font-weight: bold;
}
</style>
Code:
<div id="navigationContainerDiv">
<div id="navigationFirstLine">
  <ul id="idTopLevelUl">
       <li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
	<li class="classTopLevel">Text01 &nbsp;</li>
  </ul>
</div>
</div>
Je nach Auflösung und Fensterbreite muss man ggf. noch ein paar LIs drunter kopieren, aber dann bekommt man einen Zeilenumbruch, sowohl in FF als auch im IE.

Hat dazu jemand eine Idee? Ich wäre sehr dankbar ...

Gruß,
Basti
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 16.09.2008, 10:00
Benutzer
neuer user
 
Registriert seit: 13.09.2008
Ort: Chemnitz
Beiträge: 31
Hensens befindet sich auf einem aufstrebenden Ast
Standard

Hi,

schau Dir bitte das hier mal an.

Noch eine kurze Anmerkung:
Dein Markup finde ich nicht besonders sauber, die Klassifizierungen der Listenpunkte sind unnötig, da sie via Nachfahrenselektoren im CSS angesprochen werden können. Und was sollen diese Leerzeichen innerhalb der Links? Abstände werden mit margin oder padding vorgenommen, aber doch nicht mit HTML. Wozu die beiden <div>? Entferne sie und übertrage die Formatierung auf <ul>.

Liebe Grüße
Andreas
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 16.09.2008, 10:26
Benutzerbild von hubspe
Eisen 7 ole....
XHTMLforum-Kenner
 
Registriert seit: 22.06.2007
Ort: Passau
Beiträge: 7.086
hubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblickhubspe ist ein wunderbarer Anblick
Standard

Moin,

Zitat:
Zitat von Hensens Beitrag anzeigen
Hi,
Und was sollen diese Leerzeichen innerhalb der Links?
es gibt eine Methode, den bei mit display:inline; entstehenden "Whitespace" durch hinzufügen einer Leerstelle vor dem schließenden </a> zu entfernen.

Ist natürlich nicht nötig, da das Problem bei float für li nicht auftritt.

Vielleicht hat er da nur was durcheinandergeworfen.
__________________
Ein mehrfacher Gruß aus dem Südosten
Klaus
Mit Zitat antworten
  #4 (permalink)  
Alt 16.09.2008, 10:36
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.09.2008
Beiträge: 3
basti0071 befindet sich auf einem aufstrebenden Ast
Standard

Hi Andreas,

zuerst mal danke für die schnelle Antwort. Ja, du hast Recht, das Markup ist unsauber. Es war halt nur als schnelles Beispiel gedacht, um das Problem zu verdeutlichen (habe das eigentliche Menü auf das Wesentliche zusammen gestrichen, da sind z.B. die beiden DIVs übrig geblieben; die Leerzeichen hab ich nur schnell reingeklimpert ... normalerweise sind da noch LIs mit Grafiken zwischen, das ging so einfach schneller - hat keinen wirklichen Hintergedanken).

Zu deinem white-space-Vorschlag: leider löst das das Problem nicht; ich behalte dem Umbruch, auch mit white-space:nowrap. Selbst wenn ich alle LIs in eine gaaanz lange Zeile schreibe und dann mit white-space: pre arbeite, bricht er um ...



Grüße,
Basti


/edit:

noch mal der Code, diesmal sauber:

Code:
<html><head>
<style type="text/css">
* { padding:0; border:0; margin:0; }

 ul {
	background-color:#AAAAAA;
	min-width:100%;
	height:20px;
    list-style:none;
	/*white-space: nowrap;*/
}

 li {
    float:left;
	background-color:#AAAAAA;
	font-family:Verdana, Helvetica, sans-serif;
	text-transform: uppercase;
	height:20px;
	font-size:11px;	
	line-height:20px;
	font-weight: bold;
	margin-right: 10px;
	/*white-space: nowrap;*/
}

</style>
</head>
<body>

 <ul>
    <li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
	<li>Text</li>
  </ul>

</body></html>

Geändert von basti0071 (16.09.2008 um 10:49 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 16.09.2008, 10:53
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 28.01.2005
Beiträge: 11.775
fricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz sein
Standard

Deinem sauberen Code fehlt die Doctype-Angabe.

Die white-space-Eigenschaft wirkt nicht bei Floats. Wohl aber bei inline und inline-block.
Mit Zitat antworten
  #6 (permalink)  
Alt 16.09.2008, 10:57
{ display: random;}
XHTMLforum-Kenner
 
Registriert seit: 08.09.2004
Ort: Stuttgart
Beiträge: 5.034
andir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblick
Standard

Wenn Du die li's floatest, nimmst Du sie aus dem inline-Kontext raus, no-wrap kann dann nicht mehr funktionieren.
Gib ihnen display:inline mit und streiche das float, das sollte dein Problem lösen.

Edit: zu spät
__________________
Grüsse Andreas- auch mal wieder da...

Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams)
Wiedergelesen: > hier und hier

[Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte
Mit Zitat antworten
  #7 (permalink)  
Alt 16.09.2008, 12:29
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 16.09.2008
Beiträge: 3
basti0071 befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank euch beiden, dass white-space bei gefloateten Objekten nicht greift, wusste ich nicht. Wieder was gelernt
Mit Zitat antworten
  #8 (permalink)  
Alt 01.12.2008, 14:13
Neuer Benutzer
neuer user
 
Registriert seit: 01.12.2008
Ort: wo die Sonne scheint
Beiträge: 3
Dämn Dän befindet sich auf einem aufstrebenden Ast
Standard

Hallo Leute!

Ich habe im Grunde genau das gleich Problem ... ich möchte einen Zeilenumbruch in einer horizontalen Liste verhindern, wenn das Browserfenster zu klein wird. Dieser Umbruch zerschießt mir nämlich das gesamte Layout

Hier mal das HTML-Zeugs (wie oben schon, einfach zusätzliche Listenelemente hinzufügen, wenn der beschriebene Effekt nicht auftritt):

HTML-Code:
<div id="nav_main">
           <ul>
            <li><a href="#">Button 1</a></li>
            <li><a href="#">Button 2</a></li>
            <li><a href="#">Button 3</a></li>
            <li><a href="#">Button 4</a></li>
            <li><a href="#">Button 5</a></li>
            <li><a href="#">Button 6</a></li>
           </ul>
         </div>
und jetzt noch das dazugehörige CSS:

Code:
#nav_main {
    width: 100%;
    overflow: hidden;
    float: left;
    display: inline;
    background: red;
    line-height: 0;
  }

  #nav_main ul {
    display: inline;
    float: left;
    margin: 0;
    margin-left: 50px;
    padding: 0;
  }

  #nav_main ul li {
    display: inline;
    float: left;
    font-size: 1.0em;
    line-height: 1em;
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
noch eine kleine Anmerkung: ich habe im Zusammenhang mit dem zuvor beschriebenen Vorgang schon nahezu jede Kombination ausprobiert, jedoch nicht einmal den gewünschten Effekt erzielt. Getestet wurde mit dem FF3 und dem IE7.
Den float-Befehl habe ich auch schon rausgenommen und es hat nicht funktioniert ... außerdem habe ich statt dem roten Hintergrund eine Grafik drin, die wird nicht mehr angezeigt, wenn float fehlt oO so ein sch**** xD

Ich hoffe mal, ihr könnt mir helfen ... denn so langsam verliere ich die Geduld ... -.-

MfG
Dän
Mit Zitat antworten
  #9 (permalink)  
Alt 01.12.2008, 14:21
Benutzerbild von heiko_rs
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 18.09.2005
Ort: Berlin
Beiträge: 9.848
heiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblickheiko_rs ist ein wunderbarer Anblick
Standard

Die li dürfen nicht floaten, und white-space geht an ul, sonst wirkt es nur innerhalb der li. Wirf dann bei allen Elementen float, overflow und display raus (nur li behält letzteres).
__________________
Wer keinen Link auf seine problembehaftete Seite posten kann, weil diese noch nicht online ist: Testcase bauen, online stellen, Link posten.
Internet-Grundregel: Unbekannte Begriffe googeln! (Erspart 99% aller Nachfragen.)
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 01.12.2008, 15:09
Neuer Benutzer
neuer user
 
Registriert seit: 01.12.2008
Ort: wo die Sonne scheint
Beiträge: 3
Dämn Dän befindet sich auf einem aufstrebenden Ast
Standard

hmm ... also in dem Beispielchen hats geklappt ... aber in meinem Projekt net?! ... komische Sache!
Gibt es noch weitere Ideen, die ich verwenden/ausprobieren/testen könnte?
Danke für die flotte Antwort

Geändert von Dämn Dän (01.12.2008 um 15:17 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Stichwörter
div, verhindern, zeilenumbruch

Themen-Optionen
Ansicht

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fliesendes horizontales Menü 100% Breite Overtone CSS 0 01.05.2010 16:19
Darstellungsproblem flohpapa CSS 3 16.12.2009 08:55
horizontales Menü sarahg CSS 9 10.02.2009 14:25
Horizontales Menü Problem unter IE6 Xtremo CSS 8 14.02.2007 10:58
Zeilenumbruch verhindern Steakfred CSS 1 26.04.2006 10:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:30 Uhr.