Probleme in <div> + <li> Formatierung

Probleme in <div> + <li> Formatierung

Beitragvon theghostdog » 06.11.2006, 21:15

Hallo zusammen,

eigentlich denk ich ist mein Problem ganz einfach. Ich habe eine Navigation, die in einem div steckt. Das soll eine blaue Hintergrundfarbe haben mit Rahmen, darin wird mir eine Navigation generiert, als <li>. So diese soll schön neben einander stehen und einfach nur float left und weiß sein. Soweit die Theorie. Hier mal der Template Code:

Code: Alles auswählen
<div class="header-nav">
  <ul class="nav1st">
       <li><a href="index.php?article_id=1">Punkt1</a></li>
       <li><a href="index.php?article_id=39">Punkt2</a></li>
       <li><a href="index.php?article_id=20">Punkt3</a></li>
      ...
  </ul>          
</div>


meine CSS dazu:

Code: Alles auswählen
.header-nav {
   background-color: #6078B5;
   border-top: 1px solid #D1d1d1;
   border-bottom: 1px solid #D1d1d1;

}

.header-nav ul.nav1st li {

   float: left;
   list-style: none;
   padding-left: 5px;
   padding-right: 5px;
}

.header-nav ul.nav1st a,
.header-nav ul.nav1st a:link {
   color: #fff;
   font-family: Tahoma, Arial, sans-serif;
   font-size: small;
   font-weight: bold;
   text-decoration: none; 
}


Mein Problem: Irgendwie hängt die <ul> unter dem blauen div und nicht in diesen. Erst wenn ich auch für ul.nav1st li einen blauen background definiere ist dieser auch blau. Warum? Kann mir jemand helfen. Hoffe habe begreiflich machen können was ich will.

Danke schon mal.
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon Laus » 07.11.2006, 07:50

Hallo

Das ist ein reines IE Problem. Definiere für den IE ein eigenes Style und binde es per Conditional Comments ein.
Darin gibst du dann zB. deiner .header-nav ein height:50px; und deiner .header-nav ul.nav1st li ein margin-top:15px; dann wird es in Opera ,FF und IE gleich angezeigt.
Lachen ist kein schlechter Anfang und bei weitem das beste Ende.
(Oscar Wilde)
Benutzeravatar
Laus
Moderator
 
Beiträge: 1229
Registriert: 25.02.2006, 00:30
Wohnort: Furth im Wald

Beitragvon cssfreak » 07.11.2006, 09:43

Ahmmm....nur eine kleine frage!!!

wieso machst du überhaupt einen div um deine liste???
Würd mich nur interessieren!!!

und im CSS wäre meiner Meinung nach statt float:left;
ein display:inline; schöner!!!!

aber das is ja ansichtssache :)

würd mich aber trozdem interessieren warum du diesen div machst!!!!
cssfreak
Gelegenheitsleser
 
Beiträge: 38
Registriert: 09.10.2006, 08:32

Beitragvon Laus » 07.11.2006, 09:58

Habe mir schon seit längerer Zeit abgewöhnt solche Fragen zu stellen. Bekam darauf meistens sehr unqualifizierte Antworten die in endlosen und vor allem fruchtlosen Diskussionen endeten. darum jeder wie er will. :wink: Nur bei besonders ungünstigen oder nicht funktionierenden Konstruktionen gebe ich noch solche Ratschläge. Viele denken sich sowiso :wayne:

Gruß Xaver
Lachen ist kein schlechter Anfang und bei weitem das beste Ende.
(Oscar Wilde)
Benutzeravatar
Laus
Moderator
 
Beiträge: 1229
Registriert: 25.02.2006, 00:30
Wohnort: Furth im Wald

Beitragvon cssfreak » 07.11.2006, 10:04

alles klar...danke!!! :D

aber du als CSS experte....findest du nicht auch das man bei einer liste besser display:inline; schreiben sollte....da ersparrt man sich wieder das lästige clear!!!!

oder.....ich mein ich bin auch ned so der experte....find das aber trozdem erwähnenswert!!!!

vieleicht lieg ich auch falsch :)
cssfreak
Gelegenheitsleser
 
Beiträge: 38
Registriert: 09.10.2006, 08:32

Beitragvon Laus » 07.11.2006, 10:36

Ich gebe dir da in deiner Meinung völlig recht und würde es selbst auch nie anders machen , denn dafür ist display inline ja da :wink: .
Mann kann aber bei so kleinem Codeschnippseln die die meisten OPs hier einstellen ja nicht wissen was sie in ihrem ach so geliebten Div (das in den meisten Fällen gar nicht notwendig ist, weil man ja praktisch jedes inline Element formatieren kann) vorher und nachher noch eingefügt haben bzw. einfügen werden.
Einen wenigstens ansatzweise Vollständigen Code des Problemteiles oder noch besser einen Link zum Problem erhält man hier unaufgefordert nur in den wenigsten Fällen. Der weitaus größte teil der Poster hier kommt aus dem "Lager der Tabellenlayouts" und versucht nun mit Divs die Struktur der Tabellen zu ersetzen was natürlich vollkommener Quatsch ist und meist zu ungeahnten Problemen führt. :wink: Aber aller Anfang ist eben schwer,
und man hilft wo man eben kann :-D
Lachen ist kein schlechter Anfang und bei weitem das beste Ende.
(Oscar Wilde)
Benutzeravatar
Laus
Moderator
 
Beiträge: 1229
Registriert: 25.02.2006, 00:30
Wohnort: Furth im Wald

Beitragvon cssfreak » 07.11.2006, 10:45

danke....auf so eine antwort hab ich gehoft!!!

ich bin doch nicht verrückt !!!! aaaa;)

immerhin sind es die kleinigkeiten die das Gesamtbild ausmachen....deshalb finde ich solche sachen auch sehr wichtig!!!

gut....nochmal danke!!!! :D
cssfreak
Gelegenheitsleser
 
Beiträge: 38
Registriert: 09.10.2006, 08:32

Beitragvon theghostdog » 07.11.2006, 14:23

Hallo zusammen,

erst mal vielen Dank für eure antworten. ich werde es heute abend sofort testen. eigentlich habe ich das gefühl das der IE es richtig anzeigt und der Opera mist baut. ich habe gestern noch etwas gespielt und es nie hinbekommen das beide den gleichen abstand des divs zum ober und unterliegenden element anzeigen und der text schön in der mitte steht. wenn man mit der höhe spielt bekommt man zwar den text rein in das div aber dann ist bei opera der text an der unteren linie ausgerichtet und beim ie an der oberen. so ein sch***. zu dem div:

ich habe meine gesamte seite so aufgebaut das sie aus div blöcken besteht. die navigation generiere ich über eine funktion in meinem cms, die fühlt dann das entsprechende div für den header bereich.

dann zu der frage: display:inline. Kenn ich nicht, was tut das? Für Erklärungen bin ich immer dankbar, man lernt nie aus.

könnte es sein das man die gewünschte navigation gänzlich ohne <li>, also nur mit <a> erreicht? oder muß man dann jeden link in ein div einpacken (habe ich oft gesehen, warum? keine ahnung).

vielen dank

gruß jan
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon cssfreak » 07.11.2006, 14:31

aloo!!!!

display:inline; schreibt einfach alle <li> elemente die in deiner Liste sind in eine Zeile....d.h. du baruchsd kein float!!!!!
den genau für so etwas ist dieses display eigentlich gedacht!!!!

natürlich würde es auch ohne listen gehen....denn man kann im CSS jedes HTML element definieren!!!

DOCH!!!! wenn man das CSS ausschalten...oder zum beispiel ausdrucken möchte....dann ist das ohne listen sehr unübersichtlich!!!
gibt sicher noch mehrere verschieden punkte die FÜR listen sprechen aber das finde ich zum beispiel sehr wichtig!!!

sooo....zu deinem <a> nochmal.....weis jetzt nicht welches CMS du verwendest....aber zum Beipiel die Originalversion von Wordpress schreibt alles in Listen....natürlich kann man das umschreiben....aber wenns schon läuft...warum sollte man!!!!

Noch ein Tipp zu deinem Post....ein Link zu der "Fehlerhaften" oder Problematischen Seite ist ft sehr hilfreich!!!
valid xhtml & css
cssfreak
Gelegenheitsleser
 
Beiträge: 38
Registriert: 09.10.2006, 08:32

Beitragvon theghostdog » 07.11.2006, 19:41

hidiho,

also ich schiebe heut mal ne version auf den server, damit ihr auch mal schauen könnt. ich habe das erzeugungsmodul vom redaxo cms so umgeschrieben das er jetzt auf das div verzichtet und ich bin der zielsetzung schon näher, allerdings noch nicht ganz. ich habe für die <ul> einen hintergrund definiert und gesagt display: inline. opera zeichnet es auch schön von linken rand bis rechten rand. ie allerdings nicht. da fehlt links ein stück. was hilft? ansonsten bis nachher, hoff ich.

das mit den div finde ich ganz gut da der code dadurch eine gewisse struktur hat. man hat so elemente welche man über die cms aktion generien kann und durch die klassen die man dem div zuordnet bekommt man sowas wie getrennte namespaces. das ist fein.
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon theghostdog » 08.11.2006, 17:44

hi,

hier mal ein link:

link

Ich hätte gern das der Balken hinter der Hauptnavigation durchläuft, die Schrift in der Mitte steht und der Abstand nach oben und unten gleich ist. DAs alles natürlich ;) für IE und Opera/FF.

PS: Wie kann man den Text automatisch mittig ausrichten?? also nicht über margin-left/rigth???
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon theghostdog » 08.11.2006, 18:20

hi,

hier mal ein link:

link

Ich hätte gern das der Balken hinter der Hauptnavigation durchläuft, die Schrift in der Mitte steht und der Abstand nach oben und unten gleich ist. DAs alles natürlich ;) für IE und Opera/FF.

PS: Wie kann man den Text automatisch mittig ausrichten?? also nicht über margin-left/rigth???
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon theghostdog » 08.11.2006, 18:20

hi,

hier mal ein link:

link

Ich hätte gern das der Balken hinter der Hauptnavigation durchläuft, die Schrift in der Mitte steht und der Abstand nach oben und unten gleich ist. DAs alles natürlich ;) für IE und Opera/FF.

PS: Wie kann man den Text automatisch mittig ausrichten?? also nicht über margin-left/rigth???
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon theghostdog » 08.11.2006, 18:21

hi,

hier mal ein link:

link

Ich hätte gern das der Balken hinter der Hauptnavigation durchläuft, die Schrift in der Mitte steht und der Abstand nach oben und unten gleich ist. DAs alles natürlich ;) für IE und Opera/FF.

PS: Wie kann man den Text automatisch mittig ausrichten?? also nicht über margin-left/rigth???
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20

Beitragvon theghostdog » 08.11.2006, 19:06

hi,

hier mal ein link:

link

Ich hätte gern das der Balken hinter der Hauptnavigation durchläuft, die Schrift in der Mitte steht und der Abstand nach oben und unten gleich ist. DAs alles natürlich für IE und Opera/FF.

PS: Wie kann man den Text automatisch mittig ausrichten?? also nicht über margin-left/rigth???


danke.
theghostdog
Gelegenheitsleser
 
Beiträge: 38
Registriert: 08.10.2006, 22:20


Moderatoren: Laus, Moderatoren

Ähnliche Beiträge zu "Probleme in <div> + <li> Formatierung"

Zurück zu: CSS für Anfänger

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste