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

Problem z nawigacją i wysokością klas

VPS Starter Arubacloud
+2 głosów
293 wizyt
pytanie zadane 24 września 2016 w HTML i CSS przez ayo1001 Obywatel (1,890 p.)
edycja 25 września 2016 przez ayo1001

Cześć,

Mam 2 problemy:

1. Jak id="main" i class="content" ustawić na height: 100% (żeby były tej samej długości co id="sidebar"

2. Jak można uzyskać taki efekt na sidebarze:

- po zwinięciu pokazują się same ikonki

- po najechaniu (hover) widać Nazwę linku i podlinki

O takie coś mi chodzi:

https://zapodaj.net/6827ed09faaf7.jpg.html

https://zapodaj.net/0bdd6975cc3cf.jpg.html

 

Demo jest na codepen na początku postu.

 

HTML:

<!DOCTYPE html>
<html lang="pl">
	<head>

		<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />

	</head>
	<body>

		<div id="sidebar">
			<div class="logo"><b>Logo</b></div>
			<ul class="nav" id="side-menu">

				<li>
					<a href="#" class="active">
						<i class="glyphicon glyphicon-home"></i>
						<span>Home</span>
					</a>
				</li>

				<li>
					<a href="#">
						<i class="glyphicon glyphicon-hdd"></i>
						<span>Server</span>
						<span class="arrow"></span>
					</a>
					<ul class="nav nav-second-level collapse">
						<li>
							<a href="#">
								<span>Link #1</span>
							</a>
						</li>
						<li>
							<a href="#">
								<span>Link #2</span>
							</a>
						</li>
						<li>
							<a href="#">
								<span>Link #3</span>
							</a>
						</li>
						<li>
							<a href="#">
								<span>Link #4</span>
							</a>
						</li>
						<li>
							<a href="#">
								<span>Link #5</span>
							</a>
						</li>
					</ul>
				</li>

				<li>
					<a href="#">
						<i class="glyphicon glyphicon-briefcase"></i>
						<span>Information</span>
					</a>
				</li>

				<li>
					<a href="#">
						<i class="glyphicon glyphicon-tower"></i>
						<span>Center</span>
					</a>
				</li>

				<li>
					<a href="#">
						<i class="glyphicon glyphicon-bell"></i>
						<span>Notifications</span>
					</a>
				</li>

			</ul>
		</div>

		<nav class="navbar navbar-default navbar-static-top">

			<a href="#" title="Left Sidebar" class="button-left-sidebar trigger-toggle-sidebar">
				<span>Ukryj/Pokaz</span>
			</a>

		</nav>

		<main id="main">
			<div class="content">

				<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at faucibus diam, sed dapibus ligula. Mauris interdum sodales ullamcorper. Ut molestie ut elit non iaculis. In scelerisque luctus molestie. Mauris eu massa vel massa feugiat imperdiet. Vestibulum tristique, turpis sit amet varius dapibus, nunc enim vestibulum enim, ut scelerisque ex urna vitae turpis. In finibus pellentesque urna, et ornare mauris finibus non. Sed ac ipsum mauris.</p>

			</div>
		</main>

		<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
		<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
		<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/metisMenu/2.5.2/metisMenu.min.js"></script>

	</body>
</html>

CSS:

html {
	height: 100%;
	box-sizing: border-box;
}

body {
	position: relative;
	margin: 0;
	min-height: 100%;
}

.nav a {
	color: #FFF;
}

.nav>li>a:focus, .nav>li>a:hover {
    text-decoration: none;
    background-color: #999;
}

.navbar-default {
	background: #FFF;
	border: 0;
	margin: 0;
	margin-left: 180px;
	z-index: 999;
	border-bottom: 1px solid #EEE;
}

#sidebar {
	width: 180px;
	position: absolute;
	top: 0;
	bottom: 0;
	background-color: #000;
}

#main {
	margin-left: 180px;
	right: 0;
	z-index: 4;
	background: #F9F9F9;
	overflow: hidden;
}

.navbar {
	min-height: 40px;
}

.content {
	height: 100%;
	width: 100%;
	float: left;
	vertical-align: top;
}

.logo {
	color: #FFF;
	font-size: 14px;
	padding: 20px 15px;
}

.nav>li>a {
	padding: 10px 18px;
}

@media only screen and (max-width: 767px) {
	.navbar-nav .open .dropdown-menu {
	  position: absolute;
	  background: #FFF;
	  border: 1px solid #EEE;
	}
	.navbar-right .dropdown-menu {
		right: 0;
		left: auto;
	}
}

@media only screen and (max-width: 1024px) {
	#main {
	  margin-left: 0;
	}
	#sidebar {
	  transform: translateX(-100%);
	}
	.sidebar-hidden #sidebar {
		transform: translateX(0);
		margin-top: 40px;
		z-index: 9999;
	}
	.sidebar-hidden #main { 
		margin-left: 0;
	}
	.sidebar-hidden .navbar-default {
		margin-left: 0; 
	}
	.navbar-default {
		margin-left: 0;

	}
	.sidebar-hidden #main .overlay {
		opacity: 1;
		bottom: 0;
	}
	.nav {
		background: #000;
	}
}

@media only screen and (min-width: 1024px) {
	.sidebar-hidden .footer { 
		left: 50px;
	}
	.sidebar-hidden #sidebar { 
		width: 50px;
	}
	.sidebar-hidden #sidebar span {
		display: none;
	}
	.sidebar-hidden #sidebar a {
		padding: 10px 18px;
	}
	.sidebar-hidden .navbar-default {
		margin-left: 50px;
	}
	.sidebar-hidden #main { 
		margin-left: 50px; 
	}
	.logo {
		font-size: 13px;
		padding: 20px 8px;
	}
}

JS:

/* ----------------------------------------
	Sidebar
---------------------------------------- */

$(function() {
	function LeftSidebar(){
		$("body").toggleClass("sidebar-hidden");
		$("body").hasClass("sidebar-hidden");
	}
	$('.trigger-toggle-sidebar').on('click', function() {
		LeftSidebar();
	});
});


/* ----------------------------------------
	metisMenu
---------------------------------------- */

$(function() {
	$('#side-menu').metisMenu();
});

 

komentarz 25 września 2016 przez ayo1001 Obywatel (1,890 p.)
Przerobiłem lekko kod, ale nadal pozostaje pytanie:

1. id="main" i class="content" ustawić na height: 100% (żeby były tej samej długości co id="sidebar"

2. Jak można uzyskać taki efekt na sidebarze:

- na zwiniętym sidebarze wyłączyć rozwijanie przycisków, a dać takie efekty

https://zapodaj.net/6827ed09faaf7.jpg.html

https://zapodaj.net/0bdd6975cc3cf.jpg.html

1 odpowiedź

0 głosów
odpowiedź 25 września 2016 przez pablop76 VIP (123,340 p.)

pyt 2

ul li{
width: 100%;
transition: all .5s;
}
ul li:hover{
width: 200%;
}

pyt 1

zmień


html {
...
overflow: hidden;
}

body {
...
height: 100%;
}

oraz daj

#main {
...
height: 100%;
}

 

komentarz 25 września 2016 przez ayo1001 Obywatel (1,890 p.)
Część 1:

Ten kod mi nic nie da. Nadal będzie problem z pokazaniem nazwy i rozwijaniem..

 

Część 2 i 3:

Jeżeli do html wrzucę overflow: hidden zniknie mi pasek przewijania, po co mi to?

Poza tym nawet jak bym inaczej zastosował Twój kod tzw. nie dodawał overflow: hidden do html, to wtedy sidebar nie bedzie miał height: 100%
1
komentarz 25 września 2016 przez pablop76 VIP (123,340 p.)
edycja 25 września 2016 przez pablop76

Ok. Do czego ma służyć   pokaż/ukryj ?

zobacz bez js

<!DOCTYPE html>
<html lang="pl">
<head>

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<style>
html {
height: 100%;
box-sizing: border-box;
}

body {
margin: 0;
height: 100%;
}
.nav{
white-space: nowrap;
}
.nav a {
color: #FFF;
}

.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #999;
}

.navbar-default {
background: #FFF;
border: 0;
margin: 0;
margin-left: 180px;
z-index: 999;
border-bottom: 1px solid #EEE;
}

#sidebar {
width: 180px;
position: absolute;
top: 0;
bottom: 0;
}

#main {
margin-left: 180px;
height: 100%;
right: 0;
z-index: 4;
overflow: hidden;
}

.navbar {
min-height: 40px;
}

.content {
height: 100%;
width: 100%;
float: left;
vertical-align: top;
}

.logo {
color: #FFF;
font-size: 14px;
padding: 20px 15px;
background: red;
text-align: center;
}

.nav>li>a {
padding: 10px 18px;
}
li a{
background: red;
width: 50px;
transition: width 1s;
}
li a:hover{
width: 180px;
}
span{
margin-left: 20px;
}
@media only screen and (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
position: absolute;
background: #FFF;
border: 1px solid #EEE;
}
.navbar-right .dropdown-menu {
right: 0;
left: auto;
}
}

@media only screen and (max-width: 1024px) {
#main {
margin-left: 0;
}
#sidebar {
transform: translateX(-100%);
}
.sidebar-hidden #sidebar {
transform: translateX(0);
margin-top: 40px;
z-index: 9999;
}
.sidebar-hidden #main { 
margin-left: 0;
}
.sidebar-hidden .navbar-default {
margin-left: 0; 
}
.navbar-default {
margin-left: 0;

}
.sidebar-hidden #main .overlay {
opacity: 1;
bottom: 0;
}
.nav {
background: #000;
}
}

@media only screen and (min-width: 1024px) {
.sidebar-hidden .footer { 
left: 50px;
}
.sidebar-hidden #sidebar { 
width: 50px;
}
.sidebar-hidden #sidebar span {
display: none;
}
.sidebar-hidden #sidebar a {
padding: 10px 18px;
}
.sidebar-hidden .navbar-default {
margin-left: 50px;
}
.sidebar-hidden #main { 
margin-left: 50px; 
}
.logo {
font-size: 13px;
padding: 20px 8px;
}
}

</style>
</head>
<body>

<div id="sidebar">
<div class="logo"><b>Logo</b></div>
<ul class="nav" id="side-menu">

<li>
<a href="#" class="active">
<i class="glyphicon glyphicon-home"></i>
<span>Home</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-hdd"></i>
<span>Server</span>
<span class="arrow"></span>
</a>
<ul class="nav nav-second-level collapse">
<li>
<a href="#">
<span>Link #1</span>
</a>
</li>
<li>
<a href="#">
<span>Link #2</span>
</a>
</li>
<li>
<a href="#">
<span>Link #3</span>
</a>
</li>
<li>
<a href="#">
<span>Link #4</span>
</a>
</li>
<li>
<a href="#">
<span>Link #5</span>
</a>
</li>
</ul>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-briefcase"></i>
<span>Information</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-tower"></i>
<span>Center</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-bell"></i>
<span>Notifications</span>
</a>
</li>

</ul>
</div>

<main id="main">
<div class="content">

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at faucibus diam, sed dapibus ligula. Mauris interdum sodales ullamcorper. Ut molestie ut elit non iaculis. In scelerisque luctus molestie. Mauris eu massa vel massa feugiat imperdiet. Vestibulum tristique, turpis sit amet varius dapibus, nunc enim vestibulum enim, ut scelerisque ex urna vitae turpis. In finibus pellentesque urna, et ornare mauris finibus non. Sed ac ipsum mauris.</p>

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

 

komentarz 25 września 2016 przez ayo1001 Obywatel (1,890 p.)
Zacznę od początku, do kodu który wkleiłem na samym początku chce dodać ten efekt co wkleiłeś przed chwilą, czyli po kliknięciu pokaż/ukryj i najechaniu na "Center" jest takie coś:

https://zapodaj.net/6827ed09faaf7.jpg.html

ale trzeba w nim uwzględnić, że przycisk "Server" jest rozwijany (kliknij na ten przycisk) i po kliknięciu pokaż/ukryj ma się pojawić to:

https://zapodaj.net/0bdd6975cc3cf.jpg.html

czyli trzeba po dodaniu klasy "sidebar-hidden" zablokować możliwość rozwijania przycisków i zamienić je na dropdown, żeby po najechaniu na "Server" wyświetlały się jako submenu.

Czyli podsumowując to co widzisz na 2 zdjęciach (po kliknięciu przycisku pokaż/ukryj) chce uzyskać.

Co do wysokości chce, żeby sidebar zawsze miał height: 100%, albo więcej w zależności jaka długość będzie content tzw. jeżeli content będzie miał height: 1500px to chce ,żeby sidebar też miał 1500px
komentarz 26 września 2016 przez pablop76 VIP (123,340 p.)

Może coś takiego ?

<!DOCTYPE html>
<html lang="pl">
<head>

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<style>
html {
min-height: 100%;
box-sizing: border-box;
}

body {
margin: 0;
min-height: 100%;
}
.nav{
white-space: nowrap;
}
.nav a {
color: #FFF;
}

.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #999;
}

.navbar-default {
background: #FFF;
border: 0;
margin: 0;
margin-left: 180px;
z-index: 999;
border-bottom: 1px solid #EEE;
}

#sidebar {
width: 180px;
position: absolute;
min-height: 100%;
background: blue;
}

#main {
margin-left: 180px;
height: 100%;
right: 0;
z-index: 4;
}

.navbar {
min-height: 40px;
}

.content {
height: 100%;
width: 100%;
float: left;
vertical-align: top;
}

.logo {
color: #FFF;
font-size: 14px;
padding: 20px 15px;
background: red;
text-align: center;
}

.nav>li>a {
padding: 10px 18px;
}
li a{
background: red;
width: 50px;
transition: width 1s;
}
li a:hover{
width: 180px;
opacity: 1;
}
span{
margin-left: 30px;
transition: opacity 2s;
opacity: 0;
}
li a:hover span{
width: 180px;
opacity: 1;
}
.collapse{
display: block;
position: absolute;
z-index: 99;
margin-left: 50px;
}
ul li ul a{
display: none!important;
height: 0px;
transition; all 2s;
}
ul li:hover ul li a{
display: block!important;
height: 40px;
}

@media only screen and (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
position: absolute;
background: #FFF;
border: 1px solid #EEE;
}
.navbar-right .dropdown-menu {
right: 0;
left: auto;
}
}

@media only screen and (max-width: 1024px) {
#main {
margin-left: 0;
}
#sidebar {
transform: translateX(-100%);
}
.sidebar-hidden #sidebar {
transform: translateX(0);
margin-top: 40px;
z-index: 9999;
}
.sidebar-hidden #main { 
margin-left: 0;
}
.sidebar-hidden .navbar-default {
margin-left: 0; 
}
.navbar-default {
margin-left: 0;

}
.sidebar-hidden #main .overlay {
opacity: 1;
bottom: 0;
}
.nav {
background: #000;
}
}

@media only screen and (min-width: 1024px) {
.sidebar-hidden .footer { 
left: 50px;
}
.sidebar-hidden #sidebar { 
width: 50px;
}
.sidebar-hidden #sidebar span {
display: none;
}
.sidebar-hidden #sidebar a {
padding: 10px 18px;
}
.sidebar-hidden .navbar-default {
margin-left: 50px;
}
.sidebar-hidden #main { 
margin-left: 50px; 
}
.logo {
font-size: 13px;
padding: 20px 8px;
}
}

</style>
</head>
<body>

<div id="sidebar">
<div class="logo"><b>Logo</b></div>
<ul class="nav" id="side-menu">

<li>
<a href="#" class="active">
<i class="glyphicon glyphicon-home"></i>
<span>Home</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-hdd"></i>
<span>Server</span>
<span class="arrow"></span>
</a>
<ul class="nav nav-second-level collapse">
<li>
<a href="#">
<i class="glyphicon glyphicon-triangle-right"></i>
<span>Link #1</span>
</a>
</li>
<li>
<a href="#">
<i class="glyphicon glyphicon-triangle-right"></i>
<span>Link #2</span>
</a>
</li>
<li>
<a href="#">
<i class="glyphicon glyphicon-triangle-right"></i>
<span>Link #3</span>
</a>
</li>
<li>
<a href="#">
<i class="glyphicon glyphicon-triangle-right"></i>
<span>Link #4</span>
</a>
</li>
<li>
<a href="#">
<i class="glyphicon glyphicon-triangle-right"></i>
<span>Link #5</span>
</a>
</li>
</ul>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-briefcase"></i>
<span>Information</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-tower"></i>
<span>Center</span>
</a>
</li>

<li>
<a href="#">
<i class="glyphicon glyphicon-bell"></i>
<span>Notifications</span>
</a>
</li>
</ul>
</div>

<main id="main">
<div class="content">

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi at faucibus diam, sed dapibus ligula. Mauris interdum sodales ullamcorper. Ut molestie ut elit non iaculis. In scelerisque luctus molestie. Mauris eu massa vel massa feugiat imperdiet. Vestibulum tristique, turpis sit amet varius dapibus, nunc enim vestibulum enim, ut scelerisque ex urna vitae turpis. In finibus pellentesque urna, et ornare mauris finibus non. Sed ac ipsum mauris.</p>

</div>
</main>
</script>
</body>
</html>

Jeżeli chodzi o wysokość sidebara to będzie się rozciągał jeżeli będzie miał więcej treści powyżej wysokości okna przeglądarki.

komentarz 26 września 2016 przez ayo1001 Obywatel (1,890 p.)
Nie o to mi chodzi, dzięki za starania, zrobię trochę inny efekt.

Podobne pytania

+1 głos
1 odpowiedź 202 wizyt
0 głosów
2 odpowiedzi 320 wizyt
0 głosów
1 odpowiedź 154 wizyt

93,005 zapytań

141,971 odpowiedzi

321,252 komentarzy

62,344 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...