• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem bei der Erstellung eines responsive Menüs mit html/css ohne Javascript

hey, leider bin ich mit meinem Menü noch immer nicht dort, wo ich hin will.

Die Aktivierung/Klicken des Hamburger zum X klappt sehr schön, die Positionierung nicht ganz so.

kann mir bitte jemand sagen, wie man den Hamburger so verknüpft, dass der
  1. Hamburger immer vor "home" sichtbar ist.
  2. also das Menü auch bei bei großen viewports verschwinden lassen könnte und
  3. bei kleinen viewports, das menü als inline-block nach unten aufgeht und die untermenüs durch weiteres klicken noch weiter runter gehen - sowie Basti1012 das in #8 schon super hingekriegt hat.

ich habs nicht geschafft, dass ich das ich mein menü mit dem hamburger verknüpfe. Sorry für die Umstände.
CSS/HTML Code siehe #18/19/20.
den hamburger im html-code hab ich in Kommentar gesetzt, weil das menü sonst wieder so blöd verrutscht. um zu sehen, wo es hingehört, bitte die kommentarzeichen entfernen.

lg, AnSophie
 
Werbung:
du sagst ja das du die navigation nicht in deiner webseite mit rein bekommen tust. Hast du mal den Code deiner Seite ohne Navigation ? Oder nee skizze wie es aussehen soll. Wenn ich deinen Code so kopieren komtda nicht wirklich ein schönes Ergebniss raus. Wenn ich den ganzen Inhalt da weg lasse bis auf die Navigation dann sind wir wieder bei den code aus Post #8.
Soll die Navigation den so bleiben ( bis aufs aussehen )?
Wenn du dann schon eine fertige Seite hast brauch man die Navigation ja nur noch rein kopieren und etwas Css anpassen
 
Oje, ich glaub dann ist mein "design" wohl noch nicht ganz ausgereift. das ist meine Seite - habs jetzt etwas aufgeräumt - vielleicht ist es jetzt etwas besser zum durchsehen.
das nav ist noch drinnen - wenn du also den code ohne navigation sehen willst, nimm bitte im Html alles zwischen <nav> und </nav> und im css zwischen NAV A und NAV E raus . hoffe der rest ist nicht ganz zum schmeißen.

HTML:
<!DOCTYPE html>
<html lang="de-AT">

<head>

<title>Startseite</title>

<meta charset="UTF-8" />

<link href="stylesheet.css" type="text/css" media="all" rel="stylesheet" />

</head>

<body>
<a id="top" name="top"></a>
<header>
    <div class="container">        
        <a tabindex="-1" title="Zurück zur Startseite" href="index.html">
            <img class="header_logo" src="images/website-logo.jpg" alt="Logo"/>
            <h1>Text</h1></a>
            <p class="visitenkarte">Adresse
                                    <br>Adresse
                                    <br>
                                    <br>e-mail: <img class="kleines_bild" src="images/.jpg" alt="Mail-to" /></p>
    </div>
</header>

<nav>
   
   
   <!--
        <input type="checkbox" id="hamburg">
        <label for="hamburg" class="hamburg">
            <span class="line"></span>
            <span class="line"></span>
            <span class="line"></span>
        </label>
    -->
<ul class="navigation_menu">
       
        <li id="current" class="item"><a href="#">Home</a></li>  
           
        <li class="item"><a href="#">item1</a>
            <ul class="dropdown_navi">
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
            </ul>
        </li>
       
       <li class="item"><a href="#">item1</a>
            <ul class="dropdown_navi">
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
            </ul>
        </li>
   
        <li class="item"><a href="#">item2</a>
            <ul class="dropdown_navi">
                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                        <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>
               
                <li><a href="#">item1.1</a>
                     <ul class="submenu">
                        <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>
               
                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                         <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>
           
                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                         <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>
           
                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                         <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>

                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                         <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>

                <li><a href="#">item1.1</a>
                    <ul class="submenu">
                        <li><a href="#">item1.1.1</a></li>                      
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                        <li><a href="#">item1.1.1</a></li>
                    </ul>
                </li>
            </ul>
        </li>
       
       
        <li class="item"><a href="#">item1</a>
            <ul class="dropdown_navi">
                <li><a href="#">item1.1</a></li>
            </ul>
        </li>
       
     
            <li class="nav_lang_en"><a href="#">English</a></li>
            <li class="nav_lang_de"><a href="#">Deutsch</a></li>
   
    </ul>
   
</nav>


<main>

         <div class="banner-1">
        <div class="container-1">
            <div class="aussage">
                <p>&bdquo;Lorem ipsum dolor sit amet, consectetur adipiscing elit.&rdquo;</p>
            </div>

            <div class="antwort">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vitae malesuada ipsum. Duis sit amet leo metus. Vivamus sed libero eleifend, auctor leo non, dignissim tortor. Maecenas quam enim, interdum vitae massa non, tincidunt maximus nisi. Suspendisse vehicula dui sed tempor interdum. Vestibulum pharetra dolor at felis auctor hendrerit. In vel risus dictum, condimentum leo et, tempus magna. Ut pretium semper mauris, nec mattis eros consequat quis.</p>

                <div class="weiterleitung">
                    <a href="#">mehr erfahren</a>
                </div>
            </div>
        </div>
    </div>


        <div class="banner-2">
            <div class="container-2">
                <div class="aussage2">
                    <p>&bdquo;Fusce vitae malesuada ipsum. Duis sit amet leo metus.&rdquo;</p>
                </div>

                <div class="antwort2">
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vitae malesuada ipsum. Duis sit amet leo metus. Vivamus sed libero eleifend, auctor leo non, dignissim tortor. Maecenas quam enim, interdum vitae massa non, tincidunt maximus nisi.</p>

                    <div class="weiterleitung2">
                        <a href="#">Angebot</a>
                    </div>
                </div>
            </div>

            <div class="container-3">
                <div class="aussage2">
                    <p>&bdquo;Vivamus sed libero eleifend, auctor leo non, dignissim tortor. &rdquo;</p>
                </div>

                <div class="antwort2"><p>Suspendisse vehicula dui sed tempor interdum. Vestibulum pharetra dolor at felis auctor hendrerit. In vel risus dictum, condimentum leo et, tempus magna. Ut pretium semper mauris, nec mattis eros consequat quis.</p>

                    <div class="weiterleitung3">
                        <a href="#">Erfahren Sie mehr!</a>
                    </div>
                </div>
            </div>
        </div>

   

       
   
</main>
<footer>
   
    <div class="banner-bottom">
        <div class="container-bottom">
           
            <div class="container">        
        <a tabindex="-1" title="Zurück zur Startseite" href="index.html">
            <img class="header_logo" src="images/website-logo.jpg" alt="Logo"/>
            <h1>Text</h1></a>
            <p class="visitenkarte">Adresse
                                    <br>Adresse
                                    <br>
                                    <br>e-mail: <img class="kleines_bild" src="images/.jpg" alt="Mail-to" /></p>
    </div>
           
            <div class="container-menu">
                <ul>
                        <li><a href="#">Startseite</a></li>
                        <li><a href="#">Produkte</a></li>
                        <li><a href="#">Preise</a></li>
                        <li><a href="#">Über mich</a></li>
                        <li><a href="#">Impressum</a></li>
                        <li><a href="#">Datenschutz</a></li>
                    </ul>
            </div>
           
            <div class="container-copy">
               
                <div class="copy-text">
                   
                        <hr width=100% ; color=#f8f8ff>
                    <br>
                 
                    <p>Name&copy; 2015 &ndash; <script type="text/javascript" src="website-funktionen.js"></script></p>
                </div>
           
               
            </div>
           
        </div>
    </div>
   
   
</footer>
</body>
</html>

lg
 
Zuletzt bearbeitet:
Werbung:
und hier das css - wieder in 2 teilen

CSS:
/* HTML Website Stylesheet Script 1.0*/
*
{
  margin: 0;
  padding: 0;
}

body
{
    background-color: #f8f8ff;
    background-position: center;
    background-position: top;
    font-family: Times New Roman;
    font-size: 1.35rem;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 90rem;
    letter-spacing: .02em;
}

a
{
    color: #3300CC;
}

/* -------------- HEADER A --------------*/
header
{
    background-color: #f8f8ff; /*#D9D8F0;*/
    background-image: url("images/.jpg") , url(images/.jpg);
    background-position: 35rem , right;
    background-repeat: no-repeat;
    margin: 1rem 0 0 0;
    padding: 2.5rem 0 2.5rem 0;
    border-left: 1px solid #660033;
    border-right: 1px solid #660033;
    border-top: 1px solid #660033;
    position: relative;
    background-size: contain;
}

header a
{
    color: #84041B;
    text-decoration: none;
}

header a:hover
{
    color: #84041B;
    text-decoration: underline;
}

.header_logo
{
    border: 1px solid black;
    float: left;
    height: 6rem;
    margin-right: 2.2rem;
    margin-top: 1.3rem;
    width: 6rem;
}

.container
{
    padding: 0 0 0 2.2rem;
    position: relative;
    display: table;
}

.container p, .container h1
{
    color: #84041B;
    font-size: 2rem;
    line-height: normal;
    text-align: left;
    padding: 4rem 0 0 0;
    margin: 4.5rem 0 0 0;
    font-variant: small-caps; 
}

.container .visitenkarte
{
    color: black;
    font-size: 1.4rem;
    line-height: 1.4rem;
    margin-top: 1rem;
    padding: 0 0 0 0;
}

.container .visitenkarte a
{
    color: #3300CC;
}

/* -------------- HEADER E --------------*/

/* -------------- NAV A --------------*/

nav
{
    border-right: 2px solid #660033;
    border-left: 2px solid #660033;
    background-color: #f8f8ff; /* #D9D8F0*/
    background-position: right;
    background-size: contain;
    position: relative;
    padding: 2rem 0 2rem 0;   
}


.navigation_menu
{
    color: #660033;
    height: 2.6rem;
    
    padding: 1rem 1rem 1rem 0;
    text-decoration: none;
}
.navigation_menu a
{
    color: #660033;
    text-decoration: none; 
}
.navigation_menu a:hover
{
    background-color: #660033;
    color: #f8f8ff;
    /*color: gold; */
      
}
.navigation_menu #current a
{
    /* background-color: navajowhite;
    color: gold;*/
    text-decoration: underline;
}

.navigation_menu .item
{
    display: inline-block;
    float: left;
    font-size: 1.8rem;
    font-variant: small-caps;
    font-weight: normal;
    padding: 0 0 0 2.2rem;
    text-align: left;
}

.navigation_menu .nav_lang_de
{
    display: inline-block;
    float: right;
    font-size: 1.4rem;
    font-variant: small-caps;
    font-weight: normal;
    padding: 0.5rem 1rem 0 1rem;
    text-align: left;
}

.navigation_menu .nav_lang_en
{
    display: inline-block;
    float: right;
    font-size: 1.4rem;
    font-variant: small-caps;
    font-weight: normal;
    padding: 0.5rem 1rem 0 0;
    text-align: left;
}

.navigation_menu .dropdown_navi
{
    background-color: #f8f8ff;
    border: solid 0.1rem #660033;
    /*border-radius: 0.438rem;*/
    color: #660033;
    display: none;
    height: 5.125rem;
    left: 0;
    padding-left: 2.2rem;
    position: absolute;
    right: 0;
    top: 5.5rem;
}


.navigation_menu .dropdown_navi li
{
    /*border-bottom: 0.1rem solid #84041B;*/
    color: #660033;
    font-size: 1.4rem;
    font-weight: normal;
    list-style-type: none;
    margin: 0 0 0 0;
    padding: 1rem 0 1rem 0;
    text-align: left;
    /*white-space: nowrap;*/
    float: left;
    width: calc(100%/7);
    display: inline-block;
}

.navigation_menu .dropdown_navi li a
{
    color: #660033;
}

.navigation_menu .dropdown_navi li a:hover
{
    color: #f8f8ff;
    background-color: #660033;
}


.navigation_menu .dropdown_navi #current a
{
    color: #660033;
    /*background-color: navajowhite;*/
    text-decoration: underline;
}

.navigation_menu .dropdown_navi #current a:hover
{
    color: #f8f8ff;
    background-color: #660033;
}


.navigation_menu .dropdown_navi a
{
    color: #660033;
}


.navigation_menu li:hover .dropdown_navi
{
    display: inline-block;
}



.navigation_menu .dropdown_navi .submenu
{
    background-color: #f8f8ff;
    border: solid 0.1rem #660033;
    /*border-radius: 0.438rem;*/
    color: #660033;
    display: none;
    height: 5.125rem;
    position: absolute;
    right: 0;
    left: 0;
    top: 4.9rem;
    padding-left: 2.2rem;
}

.navigation_menu .dropdown_navi .submenu li
{
    color: #660033;
    font-size: 1.4rem;
    font-weight: normal;
    list-style-type: none;
    margin: 1rem 0 1rem 0;
    padding: 0 0 0 0;
    text-align: left;
    float: left;
    width: calc(100%/6);
    display: inline-block;
}

.navigation_menu .dropdown_navi .submenu li a
{
    color: #660033;
}

.navigation_menu .dropdown_navi .submenu li a:hover
{
    background-color: #660033;
    color: #f8f8ff;
    text-decoration: none;
}


.navigation_menu .dropdown_navi .submenu a
{
    color: #660033;
}

.navigation_menu li .dropdown_navi li:hover .submenu
{
    display: inline-flex;
}

.navigation_menu .dropdown_navi .submenu a:hover
{
    background-color: #660033;
    color: #f8f8ff;
    text-decoration: none;
}

/*Hamburger*/
label.hamburg
{
    display: block;
    background: #660033;
    width: 64px;
    height: 50px;
    position: relative;
    align-self: flex-start;
    margin-left: 2rem;
    border-radius: 5px;
    cursor: pointer;
}

input#hamburg
{
    display: none;
}

.line
{
    position: absolute;
    left: 8px;
    height: 4px;
    width: 48px;
    background: #fff;
    border-radius: 2px;
    display: block;
    transition: 0.3s;
    transform-origin: center;
}

.line:nth-child(1) { top: 12px; }
.line:nth-child(2) { top: 24px; }
.line:nth-child(3) { top: 36px; }

#hamburg:checked + .hamburg .line:nth-child(1)
{
   transform: translateY(12px) rotate(-45deg);
}

#hamburg:checked + .hamburg .line:nth-child(2)
{
   opacity: 0;
}

#hamburg:checked + .hamburg .line:nth-child(3)
{
   transform: translateY(-12px) rotate(45deg);
}

#hamburg:checked + .hamburg .line

/*Hamburger ende*/


/* -------------- NAV E --------------*/


}
 
CSS:
/* -------------- FONTS A --------------*/

main h1
{
    
    color: black;
    font-size: 1.9rem;
    font-variant: small-caps;
    text-align: left;
}
h2
{
    font-size: 1.7rem;
    font-variant: small-caps;
    text-align: left;
}
h3
{
    font-size: 1.5rem;
    font-variant: small-caps;
    text-align: left;
}
h4
{
    font-size: 1.3rem;
    font-variant: small-caps;
    text-align: left;
}

.highlight
{
    color: #84041B;
    font-size: 1.5rem;
    font-weight: bold;
}

abbr
{
   border-bottom: 0.1rem dotted #04B431;
   cursor: help;
 }
abbr[title]:after
{
    content: " (" attr(title) ")";
}
@media screen and (min-width: 1080px)
{
    abbr[title]
    {
        border-bottom: 0.1rem dotted #04B431;
        cursor:help;
    }
    abbr[title]:after
    {
        content: "";
    }
}



details
{
    cursor: pointer;
}
summary:
{
    border: none;
}
summary::-webkit-details-marker
{
    display: none;
}
summary:before
{
    content: "+";
    float: right;
    font-size: 1.9rem;
    font-weight: bold;
    margin-right: 1.875rem;
}
details[open] summary:before
{
    content: "\2013";
    font-size: 1.9rem;
    font-weight: bold;
    margin-right: 1.875rem;
}

/* -------------- FONTS E --------------*/

/* -------------- MAIN A --------------*/

main
{
    border-left: 1px solid #660033;
    border-right: 1px solid #660033;
    background-color: #f8f8ff;
    padding: 1rem 0 0 2.2rem;
    margin: 0 0 0 0;
}

.kleines_bild
{
    height: 1.3rem;
    vertical-align: -0.3rem;
    width: 10.5rem;
}
/* -------------- MAIN E --------------*/


/*_________________________________banner-startseite Anfang_________________________________*/
.banner-1
{
    background-color: #f8f8ff;
    padding: 3rem;
    display: flex;
    flex-direction: row;
}

.container-1
{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    background-color: #edf1f0;
    padding: 25px;
    flex-wrap: wrap;
}

.aussage
{
    padding: 15px;
    flex-basis: 35%;
}

.aussage p, .aussage2 p
{
    font-size: 1.5rem;
    color: #660033;
    font-family: Geneva, sans-serif;
    text-transform: none;
    line-height: 1.4;
}
.antwort
{
    padding: 25px;
    flex-basis: 55%;
}

.antwort p, .antwort2 p
{
    display: inline-block;
    color: #660033;
    font-family: Geneva, sans-serif;
    font-size: 1.2rem;
    text-transform: none;
    letter-spacing: .02em;
}

.antwort a, .antwort2 a
{
    white-space: nowrap;
}

.highlight
{
    color: #84041B;
    font-size: 1.5rem;
    font-weight: bold;
}

.weiterleitung
{
 
    align-items: center;
    flex-wrap: nowrap;
    padding: 1.5rem;
    flex-basis: 90%;
    text-align: end;
    flex-shrink: 0;
}

.weiterleitung a, .weiterleitung2 a
{
    border: 1px solid #660033;
    text-align: center;
    padding: 1.2rem 1.5rem 1.2rem 1.5rem;
    color: #660033;
    text-transform: uppercase;
    font-size: 1.1rem;
    align-content: flex-end;
    flex-basis: auto;
    text-decoration: none;
    white-space: nowrap;
    font-family: Geneva, sans-serif;
}

.banner-2
{
    background-color: #f8f8ff;
    padding: 3rem;
    display: flex;
    flex-direction: row;
}


.container-2
{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    background-color: #edf1f0;
    padding: 15px;
    flex-wrap: wrap;
    margin: 0 1.5rem 0 0;
}

.container-3
{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    background-color: #edf1f0;
    padding: 15px;
    flex-wrap: wrap;
    
}

.aussage2
{
    padding: 0.9rem;
    flex-basis: 40%;
}

.antwort2
{
    padding: 20px;
    flex-basis: 30%;
}

.weiterleitung2
{
 
    align-items: center;
    flex-wrap: nowrap;
    padding: 1.5rem;
    flex-basis: 50%;
    text-align: end;
    flex-shrink: 0;
}


.weiterleitung3 a
{
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 1rem 0 0 1.3rem;
    font-size: 1.1rem;
    flex-basis: auto;
    text-transform: uppercase;
    border: 1px solid #660033;
    height: 4rem;
    width: 16rem;
    text-decoration: none;
    color: #660033;
    display: inline-block;
    align-content: center;
    font-family: Geneva, sans-serif;
}



@media only screen and (max-width:700px)
{
    .container-1, .container-2,
    {
        flex-direction: column;
    }
    
    .container-3
    {
        flex-direction: column;
        margin-top: 2rem;
    }
    
    .aussage, .antwort, .weiterleitung, .aussage2, .antwort2, .weiterleitung2
    {   
        flex-direction: column;
    }
    
    .banner-1, .banner-2
    {
        flex-direction: column;
    }
}

/*_________________________________banner-startseite ende_________________________________*/


/* -------------- FOOTER A --------------*/
footer
{
    background-color: #DCDCDC;
    background-position: right;
    position: relative;
    color: #660033;
    font-size: 1.5rem;
    font-variant: small-caps;
    font-weight: normal;
    margin-bottom: 2.5rem;
    padding: 3rem 0 0 0;
    text-align: center;
    border-bottom: 1px solid #660033;
    border-right: 1px solid #660033;
    border-left: 1px solid #660033;
}

footer a
{
    color: #660033;
    text-decoration: none;
}

footer a:hover
{
    color: #84041B;
    text-decoration: underline;
}


/* -------------- FOOTER E--------------*/


/* -------------- FOOTER BANNER A--------------*/
.banner-bottom
{
    background-color: transparent;
    padding: 0;
}

.container-bottom
{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    
    background-color: transparent;
    padding: 25px 0 25px 0;
    flex-wrap: wrap;
}

.container-menu
{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: stretch;
    margin: 3.6rem 0 0 6rem;
    padding: 3rem 0 0 0;
    background-color: transparent;
    flex-wrap: wrap;
}

.container-menu ul
{
    text-align: left;
    list-style-type: none;
    line-height: 1.8;
    font-size: 1.2rem;
    padding: 3rem 1rem 0 0;
    text-transform: uppercase;
    font-family: Geneva, sans-serif;
}


.container-copy
{
    align-self: center;
    flex-basis: 100%;
    margin: 1rem;
    padding: 3rem 0 1rem 0;
 
}

.copy-text
{
    text-align: center;
}

/* -------------- FOOTER BANNER E--------------*/
@media print
{
    header, nav, footer
        {
            display: none;
        }
    p
        {
            font-size: 12pt;
        }
    h1, h2, h3, h4
        {
            font-size: 13pt;
            font-weight: bold;
            color: black;
        }
 
Werbung:
das aufräumen hat ja schon mal was gebracht, der erste Blick sieht schon mal 100% besser aus.
Dann kucke ich mal was mit der nav los ist oder wieman es anders machen kann
 
  1. Hamburger immer vor "home" sichtbar ist.
  2. bei kleinen viewports, das menü als inline-block nach unten aufgeht und die untermenüs durch weiteres klicken noch weiter runter gehen
Wie meinst du das ?
Normale ist es ja das der Hamburger erst sichtbar ist wenn man einen kleinen Bildschirm hat. Dann kann man durch klicken das Menü anzeigen.
Du sagst aber das der Hamburger immer sichtbar ist . Soll der immer da sein egal welche größe ?, und somit auch immer anklickbar ,so das man das Menü verschwinden lassen kann ?
 
ja das habe ich gemeint, aber, wenn ich so überlege, muss das nicht sein, das war eine spielerische idee. :)
ein hamburger der auftaucht, wenn kleiner bildschirm, reicht vollkommen. dafür aber immer links platziert.
 
Werbung:
WOW! - das ist ja echt cool geworden, du hast sogar die "banner" repariert und viel stylischer gemacht! Vielen Dank!!

Mir ist aufgefallen, das dass aufgeklappte hamburger-menü immer zuklappt, wenn man zu einem unterem Item scrollt (auf dem Laptop). Ist das, weil kein javascript integriert ist? Wäre es doch besser, wenn man hier js verwendet, so dass es auf klick offen bleibt?
und wie geht das nochmal, dass es sich über den content im main legt, und der content nicht nach unten "wegspringt"?

Das Design ist, glaub ich, noch nicht ideal?? es hebt sich im horizontalen nicht sehr übersichtlich ab.
vielleicht ist es doch besser wenn man die subitems pro item vertikal anstatt horizontal organisiert.

Was ließe sich daran verbessern/ändern/austauschen, dass es ein stylisches und vor allem ordentliches Menü wird, ausgehend von der Version in #30.

ansonsten hätte ich da noch zwei Theorie-Fragen:

1) ich hab mal gelesen, dass man pro html-unterseite jeweils nur eine id vergeben sollte, die restlichen zuweisungen sollten immer über class geführt werden? ist da was dran?

2) px sind für exakte, feste Größen; rem sind zwar auch feste Größen - sind aber "flexibler", weil skalierbar und sozusagen browserübergreifend. welche einheit sollte nun verwendet werden? soll man rem nur spezifisch hier und dort verwenden, oder im ganzen css durchgehend?


lg, ansophie
 
Mir ist aufgefallen, das dass aufgeklappte hamburger-menü immer zuklappt, wenn man zu einem unterem Item scrollt (auf dem Laptop). Ist das, weil kein javascript integriert ist?

Das verstehe ich gerade nicht, bei mir klappt nix zu wenn ich runter scrolle, aber mein Browser spinnt sowieso rum. Aber mit Javascript hat das eigentlich nix zu tun weil das Menü ohne JS läuft

Das Design ist, glaub ich, noch nicht ideal?? es hebt sich im horizontalen nicht sehr übersichtlich ab.
vielleicht ist es doch besser wenn man die subitems pro item vertikal anstatt horizontal organisiert.

Solange alle Wörter gleichlang sind sieht es ja ganz gut aus , nur wenn man da verschiedene lange Wörter hat sieht es wieder anders aus.mann könnte das vieleicht auch mit festen größen (px)anpassen doch dann wird das mit responsive auch nix mehr.
Ich persönlich finde die vertikalen Menüs einfacher . Die Horizontalen wie dieses hier hatte ich auch noch nicht gemacht , ein wunder das es überhaupt so gut geklappt hat.


1) ich hab mal gelesen, dass man pro html-unterseite jeweils nur eine id vergeben sollte, die restlichen zuweisungen sollten immer über class geführt werden? ist da was dran?

2) px sind für exakte, feste Größen; rem sind zwar auch feste Größen - sind aber "flexibler", weil skalierbar und sozusagen browserübergreifend. welche einheit sollte nun verwendet werden? soll man rem nur spezifisch hier und dort verwenden, oder im ganzen css durchgehend?

1 . Jo , eine ID muss einmalig sein je Seite. Wie du schon sagst machst du es mit Class oder du nimmst fortlaufende Id's zb ( menue1 , menue2 , menue3 usw ).

2. Da werde ich jetzt mal nicht zu viel zu sagen weil ich da schon so viele verschiedene antworte zu gelesen habe.
Du könntest erstmal hier was drüber lesen
https://www.w3.org/Style/Examples/007/units.de.html
dann noch das , falls du es noch nicht kennst
https://wiki.selfhtml.org/wiki/CSS/Wertetypen/Zahlen,_Maße_und_Maßeinheiten
 
Werbung:
Hey, ich hab gestern versucht, dass menü in vertikal zu verwandeln- war dann aber hauptsächlich mit troubleshooting beschäftigt. Eine Zeile schaffe ich, aber die submenüs klappen wieder nicht.

Was ist besser, neu schreiben oder dieses menü umwandeln?

Ps: seid neuestem funktioniert codepen.io nicht mehr. Wenn ich die seite öffne, ist alles schwarz - wie kann man dagegen vorgehen?
Bei der Fehlersuche, spuckt es den Hinweis aus, im Javascript liegt einn Syntaxrror in Zeile 41 und 42 (kein Scherz) vor.

Lg
 
Wenn man weiß was man tut kann man das wohl auch einfach umschreiben.
Als Anfänger sollte man css löschen und wohl neu machen. Dadurch versteht man es wahrscheinlich schneller wenn man weiß wofür man was erstellt hat . Wenn man da einfach die Css auf gut glück ändert ist es auch nicht wirklich lernhaft. Du willst ja auch was lernen .
An besten erstellst du erst die eine ebene bis <nav><ul><li><li></ul></nav>
wenn du das angepasst hast gehst du einen tiefer bis <nav><ul><li><ul><li></li></ul><li></ul></nav>
Wenn du das hast sind die nächsen ebenen nicht mehr großartig anders . Der Css pfad (falscher ausdruck aber weiß den richtigen namen gerade nicht) wird halt nur länger,doch im großen und ganzen bleibt es dann gleich.


Ist bei Codepen alles schwarz oder nur der Linnk zum Menü ?
Lösch mal deine Cache , meistens hilft das schon bei solchen Fehlern
 
Zuletzt bearbeitet:
ich werds so probieren wie du sagst und mich wieder melden wenns recht ist.

- mir scheint, als würde sich, wenns um "pfade zu ebenen" geht, ein denkfehler einschleichen - so wie beim rechnen, da hab ich meine fehler in die nächsten Rechenschritte mitgeschleppt - ausmerzen konnte ich diese "Gabe" bis heute nicht so richtig. vielleicht und hoffentlich krieg ich wenigstens beim css den dreh noch raus.

wenn ich codepen direkt aufrufe ist alles schwarz, wenn ich zb deine links aufrufe sind nur die drei boxen html/css/js schwarz, das ergebnis kann ich unten sehen.

es liegt wahrscheinlich an meiner chrome-browser-version (hab auf meinem macbook air von mitte 2011 noch 10.7.5 oben, und bin mir nicht sicher, ob ich auf high sierra (oder gar mojave) updaten soll bzw. kann - falls dazu jemand was sagen kann - auch wenn hier etwas offthread).
einzig was doch wieder dagegen spricht, es hat auf anderen browsern früher normal funktioniert.

lg, ansophie
 
Werbung:
Ich möchte den Thread "weiterknüpfen" und bitte um eure Hilfe.

Mit der Vorlage von Basti1012 und www.youtube.com/watch?v=B4d7Ct9wngs&t=23s
habe ich mein jetziges Menü nachgebaut.

Die Punkte die ich erfüllen möchte: Responsive, Flexbox, Dropdown (3Ebenen) durch klicken, nicht "nur" über hover.

zusätzliche Quellen, jede einzelne aber mit eigenen Hürden:

a) www.youtube.com/watch?v=7aGLkT4y4ls&t=2000s - ist ohne flex, hätte aber gern die Klickvariante in die tieferliegenden ebenen umgesetzt.

b) www.youtube.com/watch?v=8QKOaTYvYUA&t=2178s - ist mit flex, aber kein dropdown, außerdem macht er später mit grid weiter, und das will ich nicht.


dass aufgeklappte hamburger-menü immer zuklappt, wenn man zu einem unterem Item scrollt

www.youtube.com/watch?v=mCSy9z3H3Ow&t=213s - bei 0:47 sieht man was ich gemeint habe, ,man ist dann mit dem Cursor unterhalb des Menüs, obwohl in diesem Beispiel eigentlich das Portfolio käme. Daher würde ich die Klickversion bevorzugen wie im 1. Video.

ich hab versucht zu kombinieren ich komme aber nur soweit wie im Code unten:



1) es klappt nicht, dass mein Menü im kleinen viewport auf hamburger und column umspringt und

2) Ich kriege das Hamburger-Toggle nicht eingebunden - würde mich noch immer nicht stören, wenn der auch im großen Viewport vor der ersten Menüzeile sichtbar bleibt. auch weil ich gerne einen fixed-shrinking header hätte.

3) in weiterer Folge komm ich gar nicht dazu, die toggle/Klickversion wie im video a) einzubauen.


4) wenn das mit javascript einfacher/besser geht, wie wäre das dann umzusetzen??
(Ich weiß es ist dazu die falsche Abteilung aber Doppelposting vermeide ich jetzt mal. Auf meine erste JS-Anfrage werd ich später noch zurückkommen.)


HTML:
<nav>
  
    <div class="main-nav">
        <input type="checkbox" id="hamburg">
        <label for="hamburg" class="hamburg">
            <span class="line"></span>
            <span class="line"></span>
            <span class="line"></span>
        </label>   
        <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Services</a>
                <ul class="submenu">
                    <li><a href="#">Android Dev</a></li>
                    <li><a href="#">iOS Dev</a></li>
                    <li><a href="#">Web Dev</a>
                        <ul class="submenu-2">
                            <li><a href="#">Node.js</a></li>
                            <li><a href="#">PHP</a></li>
                            <li><a href="#">Python</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li><a href="#">Downloads</a></li>
            <li><a href="#">FAQs</a>
                <ul class="submenu">
                    <li><a href="#">Android</a></li>
                    <li><a href="#">iOS</a></li>
                </ul>
            </li>
            <li><a href="#">About</a></li>
        </ul>
    </div>
</nav>

CSS:
nav{
    border: 1px solid thistle;
    /*display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;*/
    padding: 1rem 3rem;
}




.main-nav a {
    align-items: center;
    background-color: #ffffff;
    border: 1px solid #add29f;
    color: #add29f;
    display: flex;
    
    font-size: 1.2rem;
    font-weight: 200;
    justify-content: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.3s;
    
    z-index: 500;
}
.main-nav a:hover {
    background: #add29f;
    color: #ffffff;
    text-decoration: none;
}


.main-nav ul {
    list-style-type: none;
    display: flex;
    /*border: 1px solid pink;*/
}

.main-nav li {
    width: 100%;
    text-align: center;
    position: relative;
    /*border: 2px solid gold;*/
}

.main-nav li:hover .submenu > li {
    display: block;
    flex-direction: column;
    top: 0px;
    /*border: 1px solid red;*/
}

.submenu li {
    display: none;
    position: absolute;
    top: 0px;
    /*border: 1px solid green;*/
}

.submenu {
    display: flex;
    flex-direction: column;
    position: absolute;
    width: 100%;
}

.submenu li {
    position: relative;
    /*border:2px solid purple;*/
    z-index: 500;
}

.submenu li:hover .submenu-2 li {
    display: block;
}

.submenu-2 li {
    display: none;
}
.submenu-2 {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0px;
    left: 100%;
    width: 100%;
    z-index: 500;
    /*border: 1px solid red;*/
}

#hamburg{
  position:absolute;
  left:-861px;
  display:none;
}

label{
  display:none;
}
@media screen and (max-width:900px) {
  label{
    display:block;
  }
  #hamburg:checked  ~ #menu{
 
    display:none;
  }
.line {
    position: absolute;
    left: 8px;
    height: 2px;
    width: 38px;
    background-color: #add29f;
    border-radius: 2px;
    display: block;
    transition: 0.3s;
    transform-origin: center;
}
label.hamburg {
    display: block;
    background: #ffffff;
    width:56px;
    height: 32px;
    position: relative;
    /*margin-left: auto;
    margin-right: auto;*/
    /*border-radius: 4px;*/
    cursor:pointer;
    border: 1px solid #add29f;
    margin: 0.5rem 0.5rem 0.5rem 0;
}

input#hamburg {
    display:none;
}
    
.line:nth-child(1) { top: 6px;}
.line:nth-child(2) { top: 14px;}
.line:nth-child(3) { top: 22px;}

#hamburg + .hamburg .line:nth-child(1){
    opacity: 1;
}
#hamburg:checked + .hamburg .line:nth-child(1){
    opacity: 1;
}
 
#hamburg + .hamburg .line:nth-child(2){
    opacity:1;
}
#hamburg:checked + .hamburg .line:nth-child(2){
    opacity:0;
}
#hamburg + .hamburg .line:nth-child(3){
    opacity: 1;
}
 #hamburg:checked + .hamburg .line:nth-child(3){
    opacity: 1;
}
}


@media only screen and (max-width:1200px){
    .main-nav{
        flex-direction: column;
    }
}

lg, AnSophie
 
hey. ich hab Punkt 1 selbst geschafft. hier der aktualisierte Code.

in Kombi mit Frage 3, versteh ich noch nicht, wie es funktioniert , dass im kleinen Viewport - wenn man auf Services - web dev geht, abgesehen davon dass es nicht erst auf klick aufgeht, FAQ und About unterhalb sichtbar bleiben.

HTML:
<nav>
<ul class="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">Services</a>
                <ul class="submenu-1">
                    <li><a href="#">Android Dev</a></li>
                    <li><a href="#">iOS Dev</a></li>
                    <li><a href="#">Web Dev</a>
                        <ul class="submenu-2">
                            <li><a href="#">HTML</a></li>
                            <li><a href="#">Javascript</a></li>
                            <li><a href="#">PHP</a></li>
                            
                        </ul>
                    </li>
                </ul>
            </li>
            <li><a href="#">Downloads</a></li>
            <li><a href="#">FAQs</a>
               <ul class="submenu-1">
                    <li><a href="#">Android</a></li>
                    <li><a href="#">iOS</a></li>
                </ul>
            </li>
            <li><a href="#">About</a></li>
        </ul>
</nav>

CSS:
nav{
    border: 1px solid thistle;
    padding: 3rem;
}

.menu{
    /*border: 1px solid black;*/
    list-style-type: none;
    display: flex;
    flex-direction: row;
    justify-content: center;
    
}

.menu li{
    
    
    width:100%;
    position: relative;
}


.menu li a{
    border: 1px solid #add29f;
    color: #add29f;
    display: flex;
    justify-content: center;
    font-weight: 200;
    font-size: 1.2rem;
    text-transform: uppercase;
    padding: 0 2rem;
    z-index: 500;
}

.menu li a:hover{
    text-decoration: none;
    background-color: #add29f;
    color: white;
}

.submenu-1{
    display: flex;
    flex-direction: column;
    list-style-type: none;
    position: absolute;
    background-color: #ffffff;
    z-index: 500;
    /*border: 1px solid blue;*/
    justify-content: center;
}

.menu li .submenu-1{
    position: absolute;
    /*border: 2px solid lightgreen;*/
    width: 100%;
}

.submenu-1 li{
    display: none;
    position: relative;
    /*border: 1px solid pink;*/
}

.submenu-2{
    /*border: 1px solid red;*/
    background-color: white;
    z-index: 500;
    list-style-type: none;
    display: flex;
    flex-direction: column;
    position: absolute;
    width: 100%;
    left: 100%;
    z-index: 500;
    top: 0;
}

.submenu-2 li{
    display: none;
    position: relative;
}

.menu li:hover .submenu-1>li{
    display: block;
    flex-direction: column;
}

.submenu-1 li:hover .submenu-2 li{
    display: block;
    flex-direction: column;
}

@media only screen and (max-width:1200px){
    .menu {
        flex-direction: column;
    }
    
    .menu li{
        width: 100%;
    }
    .menu li a{
        justify-content: flex-start;
    }
    
    .submenu-1 li a{
        padding-left: 4rem;
    }
    
    .submenu-2{
        left:0;
        top: auto;
    }
    
    .submenu-2 li a{
        padding-left: 8rem;
    }
}

lg, ansophie
 
wäre es nicht einfacher wenn du was fertiges nehmen tust ?
Wenn ich das alles richtig verstehen tue willst du ein Menü das bei kleinen view auf Hamburger umspringen tut.
Dann soll das hover weg und mit Click ausgetauscht werden .

Zusätzlich soll dein Menü über 3 Ebenen gehen.

Es wäre einfacher wenn du was fertiges nimmst und dir das anpassen tust.
Deinen Jetzigen Code immer wieder neu anpassen zu müßen ist ja auch nicht gerade toll. Für dich zum lernen ist es vieleicht gut dann lernst du gleich was wofür ist.

Wenn zb ich dir da den Hamburger einbaue oder die click Variante , mußt du ersmal wieder schecken was ich gemacht habe . Dann änderst du wieder was und ich muß kucken.
Das geht alles , nur solltest du wissen was du machen willst ?.

Gerade die 3 Ebenen ist für Anfänger auch nicht leicht. Wie du in dein Code merken tust kommst du an download , faqs, und about gar nicht dran.

Auf den ersten blick ist das einer meinung auch der falsche weg. Du setzt die <li> auf display none und beim hovern auf block. das solltest du mal auf die <ul> Elemente anwenden , das sollte bessere Ergebnisse bringen
 
Werbung:
hallo,

ich glaube, ich bin mit dem Menü schon ein Stück weitergekommen.
ich habe jetzt nur mit deiner Vorlage aus #30 gearbeitet und nur von horizontal in vertikal umgewandelt und farbe und größe verändert, ohne strukturelle Veränderungen vorzunehmen.

bevor ich das Endprodukt hier reinstell (jetzt sind noch ganz viele /**/ drinnen, damit ich meine eigenen Veränderungen vom Ursprung her nachvollziehen kann) gibt es noch ein paar Hürden zu nehmen. daher mal 3 theoretische Fragen.

da habe ich jetzt den Hamburger mit diesem Code
HTML:
<input type="checkbox" id="hamburg">
        <label for="hamburg" class="hamburg">
            <span class="line"></span>
            <span class="line"></span>
            <span class="line"></span>
        </label>
.
und die einzelnen Menüpunkte die tieferliegende Ebenen haben, hätte ich, wie schon erwähnt, gern clickable.

Nach der Vorlage https://codepen.io/Tont/pen/hdsev
hätte ich das jetzt mal so eingesetzt (siehe Zeile 3 und 4 von <input bis </label>).
HTML:
<ul id="menu">
    <li class="item"><a href="#">
        <input type="checkbox" id="check01"/>
        <label for="check01">Home</label>
        </a>
            <ul class="zu">
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
                <li><a href="#">item1.1</a></li>
            </ul>
    </li> </ul>

mir ist nicht klar, wie ich das im CSS ansprechen und entsprechend stylen soll, wenn ich schon label und input habe. und wie der Pfeil ohne sonderzeichen zustande kommt ist mir auch nicht klar.

und wenn ich jetzt eben verschiedene menüpunkte habe, muss ich dann nur das check01, check02, check03 pro Menüpunkt bezeichnen?
die Recherche im Netz hat leider nicht sehr geholfen.

die 2. Frage - sofern die sich theoretisch ohne Code beantworten lässt-

kommst du an download , faqs, und about gar nicht dran.
müsste ich da nicht die ul-elemente zu den submenus mit position: absolute ansprechen, damit die nach untenhin dableiben und nicht "wegspringen" also um es bildlich zu beschreiben eine schachtel in der schachtel aber die dritte schachtel beibt unten dran.

3.Frage

der letzte Menü-Punkt in der Horizontalen geht 2 Ebenen tief. einmal runter und dann left: 100%. Leider liegt die 2. Ebene außerhalb des Browserfenster. Gibt es einen Trick wie ich das begrenzen kann?

sorry für die chaotische Fragerei.

lg, ansophie
 
Kannst du mal deinen Code bei Codepen posten ?.
Das ist einfacher wenn man das sieht wie du es bis hetzt gemacht hast .

zu frage 3.
Ja zur andere Seite einblenden.

Wo kommt der Pfeil her ohne Sonderzeichen ?.
Ja , das habe ich zwar so auch noch nicht gesehen , aber ist nee coole Idee.
Der Pfeil wird durch den Border erstellt
Code:
label:after{
  content:"";
  position:absolute;
  display:block;
  top:50%;
  right:5px;
  width:0;
  height:0;
  border-top:4px solid rgba(255,255,255,.5);
  border-bottom:0 solid rgba(255,255,255,.5);
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  transition:border-bottom .1s, border-top .1s .1s;
  }

Bei deinen anderen Fragen kann ich ich was genaueres sagen wenn man es sieht .
 
Zurück
Oben