• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[HTML & CSS] Menu 2 poziomowe rozwala się

0 głosów
485 wizyt
pytanie zadane 2 grudnia 2018 w HTML i CSS przez Thisisit Nowicjusz (190 p.)
edycja 3 grudnia 2018 przez Thisisit

Dobry, 

mam proste menu zagnieżdżone (2 poziomy). Ustawiłem sobie 1 poziom menu,a le jak najadę na 2 to poszerza mi się (ponieważ niewidoczny normalnie text jest dłuższy) . Jak zrobić aby pojawiało się pod menu bez rozszerzania głównej kategorii?

html 

<!-- Nav -->
    <nav class="menu">
        <div class="logo"><img src="img\logo.png" alt=""></div>

        <div class="div_menu">
            <ol class="ol_menu">
                <li class="li_category"><a class="a_category ofrerta" href="#"><i class="fas fa-caret-down"></i>&nbsp;&nbsp;Oferta
                    </a>
                    <ul class="ul_submenu">
                        <li class="li_submenu"><a class="a_submenu" href="#">Internet</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">Telewizja</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">Telefon</a></li>
                    </ul>
                </li>

                <li class="li_category"><a class="a_category" href="#">Biznes</a>
                </li>

                <li class="li_category"><a class="a_category" href="#"><i class="fas fa-caret-down"></i>&nbsp;&nbsp;Informacje
                    </a>
                    <ul class="ul_submenu">
                        <li class="li_submenu"><a class="a_submenu" href="#">Aktualności</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">Projekty unijne</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">RODO</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">Ciasteczka</a></li>
                    </ul>
                </li>

                <li class="li_category"><a class="a_category" href="#">Dla inwestorów</a></li>

                <li class="li_category"><a class="a_category" href="#"><i class="fas fa-caret-down"></i>
                        &nbsp;&nbsp;Pomoc </a>
                    <ul class="ul_submenu">
                        <li class="li_submenu"><a class="a_submenu" href="#">Ogólna</a></li>
                        <li class="li_submenu"><a class="a_submenu" href="#">Techniczna</a></li>
                    </ul>
                </li>
                <li class="li_category"><a class="a_category" href="#">Kontakt</a>

                </li>
            </ol>
        </div>
    </nav>

css 


*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Lato', sans-serif;
    background-image: url("../img/computer-820281.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
    opacity: 0.9;
}

nav.menu {
    display: flex;
    height: 62px;
    width: 90vw;
    background-color: rgb(221, 218, 218);
    top: 10px;
    left: calc(10);
    position: fixed;
    max-width: 1400px;
    left: 50%;
    transform: translateX(-50%);
    border: 1px solid #000;
}

div.logo img {
    height: 40px;
    margin: 10px;
}

div.menu {
    margin-right: 0;
}

ol.ol_menu {
    list-style-type: none;
    display: flex;
    position: absolute;
    right: 0;
    flex-grow: 0;
}

li.li_category {
   list-style-type: none;
   width: auto;
}

ul.ul_submenu {
   list-style-type: none;
   display: none;
   border-left: 1px solid  rgb(65, 64, 64);
   border-right: 1px solid  rgb(65, 64, 64);
   border-bottom: 1px solid  rgb(65, 64, 64);
}


li.li_category:hover > ul.ul_submenu {
    display: block;
}

li.li_submenu {
    background-color: rgb(221, 218, 218);
    text-align: center;
}

a.a_category  {
    display: flex;
    text-decoration: none;
    text-transform: uppercase;
    color: rgb(65, 64, 64);
    padding: 5px 10px;
    font-weight: 700;
    font-size: 15px;
    line-height: 50px;
    transition: .5s;
    text-align: center;
}

a:hover {
    color: #32bdd7;
    background-color: azure;
    width: 100%;
    opacity: 1;
}

a.a_submenu{
    line-height: 18px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    text-transform: uppercase;
    color: rgb(65, 64, 64);
    font-weight: 700;
    font-size: 15px;
    transition: .5s;
    text-align: left;
}

section.main {
    position: relative;
    top: 100px;
}

.fas {
    line-height: 50px;
}

2 odpowiedzi

0 głosów
odpowiedź 3 grudnia 2018 przez radek024 Szeryf (77,140 p.)
wybrane 3 grudnia 2018 przez Thisisit
 
Najlepsza
li > ul{
  position: absolute;
}

Tylko to nie jest okej rozwiązanie. Style masz określone dosć uniwersalnie, a należy pamiętać że stylizujemy tak, aby nie wpływać na resztę strony. Umieść odpowiednie klasy i wszystko będzie śmigać,

komentarz 3 grudnia 2018 przez Thisisit Nowicjusz (190 p.)
Już kilka godzin siedziałem nad tym projektem. Zaklasowałem każdy element. Edytuje je i nie ma pożądanego efektu. Nie mam najmniejszego pojęcia co zrobić aby po tym jak wysunie się nowe pod menu szerokość tego podstawowego nie rosła.

Zrobiłem aktualizację kodu w 1 poście.
komentarz 3 grudnia 2018 przez radek024 Szeryf (77,140 p.)

https://codepen.io/anon/pen/MzReao

Zobacz, dodałem ostatnią linijkę i działa to nadal. Musi coś być nie tak z tym jak używasz klas.

komentarz 3 grudnia 2018 przez Thisisit Nowicjusz (190 p.)

@radek024, O boże faktycznie... Nie wiem co gorsze: ze teraz po małej ilości kodu działa czy to że to obrzydliwie wygląda XD

 

Dziękuje Ci bardzo!

0 głosów
odpowiedź 3 grudnia 2018 przez Thisisit Nowicjusz (190 p.)
Zmieniłem odrobinę kod z pierwszego potsa. Dodałem klasy jednak nie mogę osiągnąć pożądanego efektu.

Podobne pytania

0 głosów
1 odpowiedź 376 wizyt
pytanie zadane 13 października 2015 w PHP przez Frendom Pasjonat (18,900 p.)
0 głosów
2 odpowiedzi 382 wizyt
pytanie zadane 4 lipca 2018 w HTML i CSS przez profsor500 Użytkownik (610 p.)
0 głosów
0 odpowiedzi 990 wizyt
pytanie zadane 2 listopada 2020 w HTML i CSS przez Igorek Mądrala (6,290 p.)

93,762 zapytań

142,717 odpowiedzi

323,368 komentarzy

63,359 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...