vertikales CSS Dropdown Menü

Status
Nicht offen für weitere Antworten.
Tut mir Leid, dass ich schon wieder was Frage, aber, entgegen meinen Erwartungen das ich es allein schaffe (habs mir so einfach vorgestellt), schaffe ich es doch nicht, das Menü einzufügen. Ich habs jetzt schon bei einigen Layouts probiert, aber jedesmal verschiebt es mir das ganze Layout. Das Layout soll nichts besonders sein sondern:
- Um alles herum: Der Container (ca 800 px Breite)
-> Oben ein Header (ca. 120px Hoch)
-> Drunter ein kleines Div (ca. 40px hoch)
-> Drunter ein maincontent Div, das sich unterteilt in (von links nach rechts): Das Menü Div (für das Drop Down Menü), ein Info/Platzhalter Div, Content Div
->Drunter noch ein kleiner Footer
Skizze!!:
layoutvt3.png


Also nichts besonders, d.h ohne das sich der Footer mit hoch bewegt, oder das Layout fliessend ist. Scrollen auch ganz normal an der Browserleiste.
In das blaue soll das Menü.

So ich hab mich daran natürlich schon versucht und das kam dabei raus (die Flyout CSS für moderne Browser ist unverändert (siehe weiter vorne); um das Stylesheet des IE für das Menü hab ich mich noch nicht gekümmert, da ich es erst mal im FF zum Laufen bringen will)
Der Großteil des HTML Codes ist nur der unveränderte HTML Code des Menüs:
Code:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
html, body {
	height: 100%;
	margin: 0;
	padding: 0;
}
#container {
	width:900px;
	background-color:#FFFF00;
	margin: 0 auto;
	height: 100%;
}
#Header {
	height: 120px;
	width: 900px;
}
#maincontent {
	width: 900px;
	background-color:#00FF00;
	margin-top: 170px;
	height: 100%;
}
#Nav {
	float: left;
	background-color:#CC0000;
	height: 500px;
	width: 90px;
	margin-left: 20px;
}
#Info {
	float: left;
	background-color:#99FF33;
	width: 250px;
}
#content {
	float: right;
	background-color:#FFCC00;
	width:420px;
	margin-right: 20px;
}
-->
</style>
<link href="CSS/flyout_h.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="Header"></div>
<div id="maincontent">
<div id="Nav">
<div class="menu">

<ul>
<li><a class="hide" href="../menu/index.html" id="Home">HOME</a>

<!--[if lte IE 6]>
<a href="../menu/index.html" id="Home">HOME
<table><tr><td>
<![endif]-->

<ul>
<li><a href="#" title=" Latest News"><span>/</span>Latest News</a></li>
<li><a href="#" title="News"><span>/</span>News</a></li>

</ul>

<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->

</li>

<li><a class="hide" href="index.html">MEDIA</a>

<!--[if lte IE 6]>
<a href="index.html">MEDIA
<table><tr><td>
<![endif]-->

<ul>
<li><a href="#" title="Pics"><span>/</span>Pics</a></li>
<li><a href="#" title="Sub Menue"><span>/</span>Sun Menue</a></li>
<li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>
<li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>

</ul>

<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->

</li>

<li><a class="hide" href="../layouts/index.html">LAYOUTS</a>

<!--[if lte IE 6]>
<a href="../layouts/index.html">LAYOUTS
<table><tr><td>
<![endif]-->

<ul>
<li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>
<li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>

<li><a href="../layouts/body4.html" title="Cross browser fixed layout"><span>/</span>Fixed 3</a></li>
<li><a href="../layouts/body5.html" title="Cross browser fixed layout"><span>/</span>Fixed 4</a></li>
</ul>

<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->

</li>

<li><a class="hide" href="../boxes/index.html">BOXES</a>

<!--[if lte IE 6]>
<a href="../boxes/index.html">BOXES
<table><tr><td>
<![endif]-->

<ul>
<li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>
<li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>
</ul>

<!--[if lte IE 6]>
</td></tr></table>
</a>
<![endif]-->

</li>
</ul>

</div>
</div>
</body>
</html>

</ul>

</div>
</div>
<div id="Info"></div>
<div id="content"></div>
</div>
<!--Ende maincontent-->
</div>
<!--Ende container-->
</body>
</html>
(Anmerkung: Oh Footer vergessen)

Folgende Probleme gibts dabei:
- Die beiden Div rechts neben dem Nav Div sind verschwunden im Browser (wahrscheinlich bedingt durch die Breite des Submenüs; Wie löst man so etwas: Divs neben einem Drop Down Menü ohne das sich diese verschieben?)
- Ist es möglich, dass man anstatt des langen HTML Codes des Menüs einen PHP Include Befehl benutzt? Also zur besseren Übersicht.

Ich hab mir das einfacher vorgestellt: Also dass man nur das Menü in ein Div einfügen muss und dann funktioniert das, aber irgendwie wills nicht klappen.
 
Zuletzt bearbeitet:
Du hast nach der Listennavigation u.a. zwei schliessende </div>-Tags zuviel notiert, weshalb sich #Info und #content nicht innerhalb, sondern außerhalb von #container befinden, und daher am unteren Seitenende angezeigt werden.

Zudem hast du für #Header und #maincontent eine höhere Breite gewählt, als für das umschliessende DIV #container.

Hiermit solltest du deinem Ziel ein Stückchen näher kommen:

Code:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
html, body {
        height: 100%;
        margin: 0;
        padding: 0;
}
#container {
        width:800px;
        background-color:#FFFF00;
        margin: 0 auto;
        height: 100%;
}
#Header {
        height: 120px;
        /*width: 900px;*/ /* Breite ergibt sich durch #container */
}
#maincontent {
        /*width: 900px;*/ /* Breite ergibt sich durch #container */
        background-color:#00FF00;
        margin-top: 170px;
        height: 100%;
}
#Nav {
        float: left;
        background-color:#CC0000;
        height: 500px;
        width: 90px;
        margin-left: 20px;
        display:inline; /* fixt "Double-Margin-Bug" im IE6 */
}
#Info {
        float: left;
        background-color:#99FF33;
        width: 250px;
}
#content {
        float: right;
        background-color:#FFCC00;
        width:420px;
        margin-right: 20px;
        display:inline; /* fixt "Double-Margin-Bug" im IE6 */
}
-->
</style>
<link href="http://projektpfinz.pr.ohost.de/Test/Men%FC2/flyout_h.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
     <div id="Header"></div>
     <div id="maincontent">
          <div id="Nav">
               <div class="menu">
                    <ul>
                        <li><a class="hide" href="../menu/index.html" id="Home">HOME</a>
                        <!--[if lte IE 6]>
                        <a href="../menu/index.html" id="Home">HOME
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href="#" title=" Latest News"><span>/</span>Latest News</a></li>
                                        <li><a href="#" title="News"><span>/</span>News</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class="hide" href="index.html">MEDIA</a>
                        <!--[if lte IE 6]>
                        <a href="index.html">MEDIA
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href="#" title="Pics"><span>/</span>Pics</a></li>
                                        <li><a href="#" title="Sub Menue"><span>/</span>Sun Menue</a></li>
                                        <li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>
                                        <li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class="hide" href="../layouts/index.html">LAYOUTS</a>
                        <!--[if lte IE 6]>
                        <a href="../layouts/index.html">LAYOUTS
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href="#" title="The zero dollar ads page"><span>/</span>News</a></li>
                                        <li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>
                                        <li><a href="../layouts/body4.html" title="Cross browser fixed layout"><span>/</span>Fixed 3</a></li>
                                        <li><a href="../layouts/body5.html" title="Cross browser fixed layout"><span>/</span>Fixed 4</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class="hide" href="../boxes/index.html">BOXES</a>
                        <!--[if lte IE 6]>
                        <a href="../boxes/index.html">BOXES
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>
                                        <li><a href="../layouts/body2.html" title="Cross browser fixed layout"><span>/</span>Fixed 2</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                    </ul>
               </div>
          </div>
          <div id="Info">info</div>
          <div id="content">content</div>
     </div>
<!--Ende maincontent-->
</div>
<!--Ende container-->
</body>
</html>
 
Hm danke, immer diese komischen Fehler.

Noch zur anderen Frage: Ist das mit dem PHP Include möglich? Wenn ja wie muss ich dann im einzelnen vorgehen?
Vielleicht so:
- Ein neues PHP Dokument erstellen, in dies dann den HTML Code des Menüs reinschreiben.
- Die Endung des jetzigen HTML Dokumentes (mit dem Layout) in .php umbenennen und an die gewünschte Stelle "<? include ("datei.php"); ?> " einfügen.

Hat dies dann den gleichen Effekt, wie jetzt im Moment (alles in einer Datei)?

EDIT: Im Moment liegen die CSS Dateien in dem Ordner /CSS/. In den CSS Datein ist als Hintegrundbild für das menü angegeben: "opaque.png". D.h. das die Bilder jetzt auch in den CSS Ordner müssen. Ist es irgendwie möglich diese Hintergrundbilder in images/opaque.png zu bekommen ohne die komplette Websitenadresse aufzuschreiben?
 
Zuletzt bearbeitet:
flyout.php:
PHP:
<?php
echo "<div class=\"menu\">
                    <ul>
                        <li><a class=\"hide\" href=\"../menu/index.html\" id=\"Home\">HOME</a>
                        <!--[if lte IE 6]>
                        <a href=\"../menu/index.html\" id=\"Home\">HOME
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href=\"#\" title=\" Latest News\"><span>/</span>Latest News</a></li>
                                        <li><a href=\"#\" title=\"News\"><span>/</span>News</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class=\"hide\" href=\"index.html\">MEDIA</a>
                        <!--[if lte IE 6]>
                        <a href=\"index.html\">MEDIA
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href=\"#\" title=\"Pics\"><span>/</span>Pics</a></li>
                                        <li><a href=\"#\" title=\"Sub Menue\"><span>/</span>Sun Menue</a></li>
                                        <li><a href=\"#\" title=\"The zero dollar ads page\"><span>/</span>News</a></li>
                                        <li><a href=\"#\" title=\"The zero dollar ads page\"><span>/</span>News</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class=\"hide\" href=\"../layouts/index.html\">LAYOUTS</a>
                        <!--[if lte IE 6]>
                        <a href=\"../layouts/index.html\">LAYOUTS
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href=\"#\" title=\"The zero dollar ads page\"><span>/</span>News</a></li>
                                        <li><a href=\"../layouts/body2.html\" title=\"Cross browser fixed layout\"><span>/</span>Fixed 2</a></li>
                                        <li><a href=\"../layouts/body4.html\" title=\"Cross browser fixed layout\"><span>/</span>Fixed 3</a></li>
                                        <li><a href=\"../layouts/body5.html\" title=\"Cross browser fixed layout\"><span>/</span>Fixed 4</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                        <li><a class=\"hide\" href=\"../boxes/index.html\">BOXES</a>
                        <!--[if lte IE 6]>
                        <a href=\"../boxes/index.html\">BOXES
                        <table><tr><td>
                        <![endif]-->
                                    <ul>
                                        <li><a href=\"../layouts/body2.html\" title=\"Cross browser fixed layout\"><span>/</span>Fixed 2</a></li>
                                        <li><a href=\"../layouts/body2.html\" title=\"Cross browser fixed layout\"><span>/</span>Fixed 2</a></li>
                                    </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->
                        </li>
                    </ul>
               </div>";
?>
index.php:
PHP:
<div id="container">
     <div id="Header"></div>
     <div id="maincontent">
          <div id="Nav">
               <?php
                    include 'flyout.php';
               ?>
          </div>
          <div id="Info">info</div>
          <div id="content">content</div>
     </div>
<!--Ende maincontent-->
</div>
<!--Ende container-->
EDIT: Im Moment liegen die CSS Dateien in dem Ordner /CSS/. In den CSS Datein ist als Hintegrundbild für das menü angegeben: "opaque.png". D.h. das die Bilder jetzt auch in den CSS Ordner müssen. Ist es irgendwie möglich diese Hintergrundbilder in images/opaque.png zu bekommen ohne die komplette Websitenadresse aufzuschreiben?
Dann passt du eben in der CSS-Datei den relativen Pfad zur Grafik an: "../images/opaque.png". :rolleyes:

Siehe auch Grafikreferenz definieren.
 
K danke. Eine Frage vorerst noch: Ich weiß nicht ob du das absichtlich abgekürzt hast, aber braucht die index.php keinen Doctype bzw. <head><body>?
 
Hi,

ich hab hier den Quellcode auf das DIV-Konstrukt beschränkt, und eine kleine Abkürzung genommen. ;)
 
K hab ich mir gedacht, denn bei mir hats nur mit Doctype usw. geklappt. Soweit erst mal keine Fragen mehr. Danke für Alles

Gruß
 
Ich bins schon wieder. Leider gibt es ein Problem mit dem IE6 (zumindest bei mir). Ich hab mal das ganze hochgeladen:
...
Im FF funktioniert soweit alles ganz gut (wie man sieht natürlich noch nicht fertig, aber es geht nur ums Layout). Sobald ich allerdings die Seite mit dem IE 6 öffnen will dann verschiebt sich das rechte content Div unter das Info Div. Leider kann ich keinen Fehler Finden. Im FF funktionierts ja schlieslich auch.

Die Quellcodes:
Index.php
Code:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<link rel="stylesheet" media="all" type="text/css" href="CSS/flyout_h.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="CSS/flyout_h_ie.css" />
<![endif]-->
<link href="CSS/screenIE.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
  <div id="head"></div>
  <div id="maincontent">
    <div id="Nav">
      <?php
                    include 'Navigation.php';
               ?>
    </div>
    <div id="Info"> [...TEXT INFO]</div>
    <div id="content"> [....TEXT CONTENT]</div>
  </div>
  <!--Ende maincontent-->
</div>
<!--Ende container-->
</body>
</html>
CSS:
Code:
@charset "utf-8";
a {
	text-decoration: none;
}
a:hover {
	color: #FF0000;
	text-decoration: underline;
}
html {
	height:100%;
	width:100%;
	max-height:100%;
	padding:0;
	margin:0;
	border:0;
}
body {
	height:100%;
	width:100%;
	max-height:100%;
	padding:0;
	margin:0;
	border:0;
	font-size: 13px;
	color: #000000;
	background-image: url(../images/back.png);
	background-repeat: no-repeat;
	background-attachment: fixed;
	background-position: right top;
}
#container {
	height: 100%;
	width: 800px;
	margin: 0 auto;
}
#head {
	width:940px;
	height:300px;
}
#maincontent {
	overflow:hidden;
	width:800px;
}
#maincontent #Nav {
	width:90px; /*Breite linker Content*/
	height:100%;
	float:left;
	margin-left:30px;
}
#maincontent #Info {
	width:199px;
	height:100%;
	float:left;
}
#maincontent #content {
	width:440px;
	height:auto;
	float:right;
	margin-right: 30px;
	overflow: auto;
	border-left-width: 1px;
	border-left-style: solid;
	border-left-color: #333333;
	padding-right: 5px;
	padding-left: 5px;
}
#foot {
	width:940px;
	height:30px;
 
Zuletzt bearbeitet:
Ich tippe da mal auf den "Double-Margin-Bug" im IE bei floatenden Elementen, indem er die margin-Werte verdoppelt, und empfehle dir:

Code:
#maincontent #Nav {
	width:90px; /*Breite linker Content*/
	height:100%;
	float:left;
	margin-left:30px; 
	display:inline;
}

#maincontent #content {
	width:440px;
	height:auto;
	float:right;
	margin-right: 30px; 
	overflow: auto;
	border-left-width: 1px;
	border-left-style: solid;
	border-left-color: #333333;
	padding-right: 5px;
	padding-left: 5px;
	display:inline;
}
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück