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

Rozwijane menu

Object Storage Arubacloud
0 głosów
240 wizyt
pytanie zadane 7 kwietnia 2017 w HTML i CSS przez Newaz Użytkownik (880 p.)
edycja 7 kwietnia 2017 przez Newaz

Witam

Nie wiem jak zrobić rozwijane menu, gdy dodałem liste ul, to header się wydłużył, a chce żeby ul pojawiało się jakby pod headerem http://imgur.com/o4Z3P0j. Proszę o pomoc.

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<meta name="descriptions" content="Witaj na naszej stronie www." />
	<meta name="keywords" content="rózne,kluczowe,słowa" /> 
	<title>Tytuł</title>
	<link rel="stylesheet" href="style.css" />
	<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
	<link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">

</head>
<body>

	
	<header>
		<div class="container">
			<img src="https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png"></img>
			<h1>Tutaj jest nagłówek na dwie linijki tekstu. Przykładowy tekst.</h1>
		<nav>
			<ol>
				<li><a href="#">Home</a></li>
				<li><a href="#">Ranking</a>
					<ul>
						<li><a href="#">Przykład</a></li>
						<li><a href="#">Example</a></li>
						<li><a href="#">Random</a></li>
						<li><a href="#">Pozdrowienia</a></li>
					</ul>
				</li>
				<li><a href="#">Projekty</a>
					<ul>
						<li><a href="#">Ostanie</a></li>
						<li><a href="#">Example</a></li>
						<li><a href="#">Random</a></li>
						<li><a href="#">Text</a></li>
						<li><a href="#">Losowy</a></li>
					</ul>
				</li>
				<li><a href="#">Drużyna</a>
					<ul>
						<li><a href="#">Programiści</a></li>
						<li><a href="#">Graficy</a></li>
						<li><a href="#">Serwisanci</a></li>
						<li><a href="#">Sieciowcy</a></li>
					</ul>
				</li>
				<li><a href="#">Kontakt</a>
				</li>
			</ol>
		</nav>
		</div>
	</header>
	

</body>
</html>
body
{
	padding: 0;
	margin: 0;
	font-family: 'Open Sans', sans-serif;
	background-color: #fff;
	background-color: #c4c4c4;
}

header
{
		background-color: #f4f4f4;
}
.container
{
	width: 1200px;
	background-color: #f4f4f4;
	overflow: hidden;
	margin: 0 auto;
	padding: 5px 0;
}
.container img
{
	width: 5%;
	float: left;
}
.container h1
{
	float: left;
	width: 35%;
	font-size: 30px;
	margin: 0;
	font-weight: 400;
	text-transform: uppercase;
	font-family: 'Open Sans Condensed', sans-serif;
	line-height: 30px;
}

nav
{
	float: right;
}
nav > ol
{
	list-style: none;
	float: left;
	margin: 0;
	padding: 19.2px 0;
}
nav > ol > li
{
	display: inline-block;
	padding: 0 5px;
}

nav > ol > li > a
{
	text-decoration: none;
	color: #000;
	padding: 4px;
	border-radius: 5px;
}
nav > ol > li > a:hover
{
	background-color: #000;
	color: #fff;
	padding: 4px;
	transition: background 0.4s ease-in-out;
}

nav > ol > li > ul
{
	list-style: none;
	margin: 0;
	padding: 0;
}

nav > ol > li > ul > li
{
	background-color: #d1d1d1;
	position: relative;
	z-index: 100;
}

 

2 odpowiedzi

0 głosów
odpowiedź 7 kwietnia 2017 przez Nicolaus Dyskutant (9,740 p.)

Musisz na sztywno ustawić wysokość nav: [LINK]

komentarz 7 kwietnia 2017 przez Newaz Użytkownik (880 p.)

Coś pokombinowałem i prawie mi wyszło, nie wiem czy jest to poprawnie okodowane ale prawie działa. Problem jest w tym ze rozwijane menu znika gdy próbuje najechać na jego element. 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<meta name="descriptions" content="Witaj na naszej stronie www." />
	<meta name="keywords" content="rózne,kluczowe,słowa" /> 
	<title>Tytuł</title>
	<link rel="stylesheet" href="style.css" />
	<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
	<link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">

</head>
<body>

	
	<header>
		<div class="container">
			<img src="https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png"></img>
			<h1>Tutaj jest nagłówek na dwie linijki tekstu. Przykładowy tekst.</h1>
		<nav>
			<ol>
				<li><a href="#">Home</a></li>
				<li><a href="#">Ranking</a>
					<ul>
						<li><a href="#">Przykład</a></li>
						<li><a href="#">Example</a></li>
						<li><a href="#">Random</a></li>
						<li><a href="#">Pozdrowienia</a></li>
					</ul>
				</li>
				<li><a href="#">Projekty</a>
					<ul>
						<li><a href="#">Ostanie</a></li>
						<li><a href="#">Example</a></li>
						<li><a href="#">Random</a></li>
						<li><a href="#">Text</a></li>
						<li><a href="#">Losowy</a></li>
					</ul>
				</li>
				<li><a href="#">Drużyna</a>
					<ul>
						<li><a href="#">Programiści</a></li>
						<li><a href="#">Graficy</a></li>
						<li><a href="#">Serwisanci</a></li>
						<li><a href="#">Sieciowcy</a></li>
					</ul>
				</li>
				<li><a href="#">Kontakt</a>
				</li>
			</ol>
		</nav>
		</div>
	</header>
	

</body>
</html>
body
{
	padding: 0;
	margin: 0;
	font-family: 'Open Sans', sans-serif;
	background-color: #fff;
	background-color: #c4c4c4;
}

header
{
		background-color: #f4f4f4;
}
.container
{
	width: 1200px;
	background-color: #f4f4f4;
	overflow: hidden;
	margin: 0 auto;
	padding: 5px 0;
}
.container img
{
	width: 5%;
	float: left;
}
.container h1
{
	float: left;
	width: 35%;
	font-size: 30px;
	margin: 0;
	font-weight: 400;
	text-transform: uppercase;
	font-family: 'Open Sans Condensed', sans-serif;
	line-height: 30px;
}

nav
{
	float: right;
}
nav > ol
{
	list-style: none;
	float: left;
	margin: 0;
	padding: 19.2px 0;
}
nav > ol > li
{
	display: inline-block;
	float: left;
	padding: 0 5px;
}

nav > ol > li > a
{
	text-decoration: none;
	color: #000;
	padding: 4px;
	border-radius: 5px;
}
nav > ol > li > a:hover
{
	background-color: #000;
	color: #fff;
	padding: 4px;
	transition: background 0.4s ease-in-out;
}

nav > ol > li > ul
{
	list-style: none;
	margin: 0;
	padding: 0;
	position: absolute;
	margin-top: 24px;
	display: none;
}

nav > ol > li > ul > li
{
	background-color: #d1d1d1;
	position: relative;
	z-index: 100;
	padding: 2px 5px;
}

nav > ol > li:hover > ul
{
	display: block;
}

 

komentarz 7 kwietnia 2017 przez Nicolaus Dyskutant (9,740 p.)
Dzieje się tak, ponieważ ul oddaliłeś nieco od ol > li, więc gdy chcesz najechać na ul to jest przerwa pomiędzy ul i ol > li, więc nie ma hoveru musisz usunąć margin-top w ul
komentarz 7 kwietnia 2017 przez Newaz Użytkownik (880 p.)
Nie chce usuwać marginu. Ciekawe czy jest jakaś właściwość którą można przedłużyć czas trwania hovera, na pewno da sie to jakoś okodować
komentarz 7 kwietnia 2017 przez Nicolaus Dyskutant (9,740 p.)
Teorytycznie tego ul możesz wsadzić w diva i wtedy powinno działać
komentarz 7 kwietnia 2017 przez Newaz Użytkownik (880 p.)
Nie rozumiem ;p Jak ktoś ma jakiś pomysł to prosze napisać ;)
0 głosów
odpowiedź 7 kwietnia 2017 przez imklau Nałogowiec (42,090 p.)

http://codepen.io/noeemi/pen/EWBvpp

  • usunęłam position: absolute z ol > li> ul
  • dodałam szerokość dla elementów ol > li
  • ustawiłam wycentrowanie tekstu dla elementów ol > li
komentarz 8 kwietnia 2017 przez Newaz Użytkownik (880 p.)
przywrócone 8 kwietnia 2017 przez Newaz

Nie o to mi chodziło. 

Prawie się z tym uporałem, problem jest w tym, że lista ul znika gdy chce najechać na jej element (nie znikałaby gdybym usunął margin, ale nie chce tego robić). Domyślasz się jaki efekt chce osiągnąć?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="descriptions" content="Witaj na naszej stronie www." />
    <meta name="keywords" content="rózne,kluczowe,słowa" /> 
    <title>Tytuł</title>
    <link rel="stylesheet" href="style.css" />
    <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">
 
</head>
<body>
 
     
    <header>
        <div class="container">
            <img src="https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png"></img>
            <h1>Tutaj jest nagłówek na dwie linijki tekstu. Przykładowy tekst.</h1>
        <nav>
            <ol>
                <li><a href="#">Home</a></li>
                <li><a href="#">Ranking</a>
                    <ul>
                        <li><a href="#">Przykład</a></li>
                        <li><a href="#">Example</a></li>
                        <li><a href="#">Random</a></li>
                        <li><a href="#">Pozdrowienia</a></li>
                    </ul>
                </li>
                <li><a href="#">Projekty</a>
                    <ul>
                        <li><a href="#">Ostanie</a></li>
                        <li><a href="#">Example</a></li>
                        <li><a href="#">Random</a></li>
                        <li><a href="#">Text</a></li>
                        <li><a href="#">Losowy</a></li>
                    </ul>
                </li>
                <li><a href="#">Drużyna</a>
                    <ul>
                        <li><a href="#">Programiści</a></li>
                        <li><a href="#">Graficy</a></li>
                        <li><a href="#">Serwisanci</a></li>
                        <li><a href="#">Sieciowcy</a></li>
                    </ul>
                </li>
                <li><a href="#">Kontakt</a>
                </li>
            </ol>
        </nav>
        </div>
    </header>
     
 
</body>
</html>
body
{
    padding: 0;
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    background-color: #fff;
    background-color: #c4c4c4;
}
 
header
{
        background-color: #f4f4f4;
}
.container
{
    width: 1200px;
    background-color: #f4f4f4;
    overflow: hidden;
    margin: 0 auto;
    padding: 5px 0;
}
.container img
{
    width: 5%;
    float: left;
}
.container h1
{
    float: left;
    width: 35%;
    font-size: 30px;
    margin: 0;
    font-weight: 400;
    text-transform: uppercase;
    font-family: 'Open Sans Condensed', sans-serif;
    line-height: 30px;
}
 
nav
{
    float: right;
}
nav > ol
{
    list-style: none;
    float: left;
    margin: 0;
    padding: 19.2px 0;
}
nav > ol > li
{
    display: inline-block;
    float: left;
    padding: 0 5px;
}
 
nav > ol > li > a
{
    text-decoration: none;
    color: #000;
    padding: 4px;
    border-radius: 5px;
}
nav > ol > li > a:hover
{
    background-color: #000;
    color: #fff;
    padding: 4px;
    transition: background 0.4s ease-in-out;
}
 
nav > ol > li > ul
{
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    margin-top: 24px;
    display: none;
}
 
nav > ol > li > ul > li
{
    background-color: #d1d1d1;
    position: relative;
    z-index: 100;
    padding: 2px 5px;
}
 
nav > ol > li:hover > ul
{
    display: block;
}
 

 

1
komentarz 8 kwietnia 2017 przez imklau Nałogowiec (42,090 p.)
zamiast margin-top ustaw padding-top
komentarz 8 kwietnia 2017 przez Newaz Użytkownik (880 p.)
Udało mi się to już samemu zauważyć ale dla Ciebie też plusik ;) Chciałbym jeszcze, żeby ta rozwijana lista pojawiała się stopniowo (tak jak element listy ol) gdzie dodać właściwość transition?
komentarz 8 kwietnia 2017 przez imklau Nałogowiec (42,090 p.)
tej zmiany display: none na display: block transition nie obejmie ;)
Musiałbyś to usunąć i np dla listy ul dać opacity: 0, a dla hover opacity: 1.
Tylko, że wtedy ta lista tak jakby była na stronie ale po prostu przezroczysta ;p

Podobne pytania

0 głosów
1 odpowiedź 479 wizyt
pytanie zadane 3 maja 2023 w HTML i CSS przez HUBSON2912 Obywatel (1,300 p.)
0 głosów
1 odpowiedź 292 wizyt
pytanie zadane 18 września 2022 w HTML i CSS przez MacieKap Bywalec (2,400 p.)
+1 głos
1 odpowiedź 438 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...