• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Navigation auf ganze Seite ausbreiten

PolitikerNEU

New member
Also, ich habe folgendes Problem:
Ich möchte bei einer Seite, die eine Navigation am oberen Bildschirmrand verwendet, diese (die Navigation) auf die gesamte Seitenbreite ausdehnen, allerdings schaffe ich das nicht.
Ich kann nicht mit width:25% oder so arbeiten, weil ich zum Zeitpunkt des Schreibens der CSS noch nicht weiß, wieviele Navigationselemente die Seite enthalten wird (da die Navigation von einem Skript generiert wird)
Graphisch schaut das also so aus:
htmlprob.png


Seite:
asdf

Code (der hier von Relevanz ist):
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Dokumenttitel</title>
<style type="text/css">
/*<![CDATA[*/

.navigation ul>li
{
 background:#BBBBBB;
 border:0.07em gray groove;
}
.navigation /*Funktioniert nicht*/
{
 display: block;
 text-align:justify;
}
.navigation li:hover
{
 background:#D8D8D8;
}
.navigation .right
{
 float:right;
}
/*Diese CSS-Datei enthält alle technischen Anweisungen*/
* {
 position:relative; /*Um es als Ausgangspunkt für alles zu machen*/
 top:0;
 left:0;
 margin:0;
 padding:0;
}

/*Navigationselemente*/
.horizontal li
{
 display:inline;
}
/*]]>*/
</style>
</head>
<body>
<div class="navigation">
<ul class="navigation horizontal">
<li>Menü 1</li>
<li>Menü 2</li>
<li>Menü 3</li>
<li>Menü 4</li>
</ul>
</div>
</body>
</html>
 
PolitikerNEU schrieb:
Ich kann nicht mit width:25% oder so arbeiten, weil ich zum Zeitpunkt des Schreibens der CSS noch nicht weiß, wieviele Navigationselemente die Seite enthalten wird (da die Navigation von einem Skript generiert wird)
Dann hast Du Dein Script nicht im Griff.
 
PolitikerNEU schrieb:
Nun, ich werde jetzt sicherlich nicht mein CSS mit PHP generieren, so weit kommt es noch.
Dann laß es bleiben. Dir sollte jedoch klar sein, daß nur ein winziges Fragmentchen des CSS-Krempels von Deinem schönen Script zu basteln wäre...
 
ja, das ist mir schon klar ...
Aber das wäre kaum praktikabel.
Zuerst müsste in meinem Skript die Anzahl der in der 1. Ebene befindlichen Navigationselemente berechnen und dann alles hinschreiben (weil ich ja nur bei den Listenelementen, die in der 1. Ebene vorkommen, ein style="width: irgendwas;" setzen muss.

Ich glaub da wende ich dann doch eine Lösung mit Tabellen an, die ist zwar nicht schön, aber funktioniert mit deutlich weniger Aufwand. (Insbesondere hat man das Problem nicht, was passiert, wenn der Benutzer JavaScript deaktiviert hat, das man notwendigerweise braucht, um die größe der einzelnen Listenelemente bei jeder Größenveränderung neu zu berechnen)

aja: wenn ich es mit einer width-Angabe mache, muss ich
Code:
li {
 float: left;
 display:block;
}
schreiben, richtig?
 
Zuletzt bearbeitet:
PolitikerNEU schrieb:
Zuerst müsste in meinem Skript die Anzahl der in der 1. Ebene befindlichen Navigationselemente berechnen und dann alles hinschreiben (weil ich ja nur bei den Listenelementen, die in der 1. Ebene vorkommen, ein style="width: irgendwas;" setzen muss.
Ist Dir die Existenz von ' class="irgendwas"' bekannt?
 
die Existenz davon ist mir bekannt, wie man an meinem Codebeispiel sieht :)

aber mein Problem ist: Es gibt ein zentrales Stylesheet, das für die gesamte Seite verwendet wird.
Die Erzeugung der Navigation erfolgt aber über ein PHP-Skript, das auch mehrmals in derselben Datei vorkommen kann. Das heißt, ich kann das zentrale Stylesheet eben nicht verwenden, und style-Elemente kann man ja nicht einfach dorthin geben, wo man will, oder? (Also z. B. in den body-bereich)
 
wie schon gesagt: das mit width:irgendwas; ist keine Lösung, siehe auch den zweiten Grund, den ich genannt habe.

Aber es ist folgendes:
In der Seite können so viele Navigationen mit völlig unterschiedlichen Parametern vorkommen (beispielsweise eine horizontal, eine vertikal, mit anderem Inhalt ...).
Und welche Navigationen kommen, das ist am Anfang der Seite (also im Head-bereich) einfach noch nicht klar (da der Seiteninhalt vor allem über ein Späteres require('') generiert wird, das wiederum vom angeklickten Link, der eine Get-Variable setzt, bestimmt wird).
Und, um die Klassen erzeugen zu können, müsste das Skript im Head-bereich abgespielt werden, was es aber natürlich nicht werden kann, weil es ja erst im Body-bereich (wo es auch die Navigation hinschreibt) verwendet wird.

Das kann man meines Erachtens nicht in den Griff bekommen.

Aja: Das ist mein Navigations-Erzeugendes Skript:
Quellcode
 
Zurück
Oben