menu achter een plaatje weergeven
avancleef - 17/08/2012 13:25 (laatste wijziging 17/08/2012 13:27)
Nieuw lid
Beste,
ik heb de volgende css code:
.menu .audio-tab {
width:100px;
min-height:80px;
position:absolute;
top:35px;
left:-9999px;
z-index:1;
background:#666666;
}
.menu .options ul li.test:hover {
background:#0066FF;
}
.menu .audio-tab {
width : 100px ;
min-height : 80px ;
position : absolute ;
top : 35px ;
left : -9999px ;
z-index : 1 ;
background : #666666 ;
}
.menu .options ul li.test :hover {
background : #0066FF ;
}
Wat ik nu graag wil bereiken is het volgende.
De onderste code die moet aangepast worden dat zodat wanneer er een hover is op de "li" met de klasse naam 'test' dat de division met de klasse naam audio-tab een left:0px; krijgt.
Echter krijg ik het op geen enkele mogelijkheid voor elkaar. Het zou dus iets moeten worden van:
.menu .options ul li.test:hover THEN .menu .options ul li .audio-tab {
left:0px;
}
.menu .options ul li.test :hover THEN .menu .options ul li .audio-tab {
left : 0px ;
}
Probleem is dat ik als plaatje een menu heb wat niet vierkant of rechthoekig is en dat de tabs die eruit komen er dus ACHTER moeten komen (vandaar een z-index).
Het plaatje van het menu loopt een beetje bol (rond) af aan de onderkant, en ik wil dus dat de menu's mooi achter het plaatje te voorschijn komen.
Hopelijk kan iemand mij vertellen hoe ik dit (met enkel CSS, geen jQuery dus) voor elkaar kan krijgen.
15 antwoorden
Gesponsorde links
larssy1 - 17/08/2012 13:31
MySQL beginner
avancleef schreef:
...
De onderste code die moet aangepast worden dat zodat wanneer er een hover is op de "li" met de klasse naam 'test' dat de division met de klasse naam audio-tab een left:0px; krijgt.
...
Dit bedoel je??
li.test:hover .audio-tab {
left: 0;
}
li.test :hover .audio-tab {
left : 0 ;
}
avancleef - 17/08/2012 13:39
Nieuw lid
Ja precies. Echter werkt dat niet, omdat de division met de naam audio-tab NIET in de li (lijst element) staat omdat dan de z-index niet werkt. Deze staat buiten het lijst element.
Mijn HTML code even ter voorbeeld:
<!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>Website</title>
<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.23.custom.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
<script src="js/jquery-1.8.0.min.js"></script>
<script src="js/jquery-ui-1.8.23.custom.min.js"></script>
</head>
<body>
<div class="wrapper">
<div class="menu">
<div class="options">
<ul>
<li><a href="#" title="Home" onclick="return false">Home</a></li>
<li class="test"><a href="#" title="Audio" onclick="return false">Audio</a></li>
</ul>
</div>
<div class="tab audio-tab">
</div>
</div>
<div class="content">
content
</div>
</div>
</body>
</html>
<!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" > <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / >
<link rel = "stylesheet" type = "text/css" href = "css/ui-lightness/jquery-ui-1.8.23.custom.css" media = "screen" / > <link rel = "stylesheet" type = "text/css" href = "css/style.css" media = "screen" / >
<li ><a href = "#" title = "Home" onclick = "return false" > Home
</ a ></ li > <li class = "test" ><a href = "#" title = "Audio" onclick = "return false" > Audio
</ a ></ li > <div class = "tab audio-tab" >
content
larssy1 - 17/08/2012 13:49
MySQL beginner
jquery?
<script type="text/javascript">
$('.test').hover() {
$('.audio-tab').css("left", "0px");
}
</script>
<script type="text/javascript">
$('.test').hover() {
$('.audio-tab').css("left", "0px");
}
</script>
avancleef - 17/08/2012 13:57
Nieuw lid
klopt, zo ver was ik ook haha maar als ik dan met de muis er niet meer op sta dan blijft hij staan.
Als ik dit tegen ga met jQuery, dan komt het menu na een "hover" wel netjes te voorschijn maar zo gauw als ik van de hover af ben, en het menu zou blijven staan met normaal CSS, klapt het menu vervolgens weer weg door de jQuery code.
Enig idee / suggestie hoe ik dat aan zou moeten pakken?
Alvast hartelijk dank voor je snelle en goede reacties!
larssy1 - 17/08/2012 14:31 (laatste wijziging 20/08/2012 11:26)
MySQL beginner
Nou, je zult wel de hover en 'unhover' moeten afhandelen inderdaad..
De left heeft een standaard waarde, en een nieuwe waarde.
<script type="text/javascript">
$('.test').hover(function() {
$('.audio-tab').css("left", "0px"); // nieuwe waarde
},function() {
$('.audio-tab').css("left", "5px"); // standaard waarde
});
</script>
< script type= "text/javascript" >
$( '.test' ) . hover( function ( ) {
$( '.audio-tab' ) . css( "left" , "0px" ) ; // nieuwe waarde
} , function ( ) {
$( '.audio-tab' ) . css( "left" , "5px" ) ; // standaard waarde
} ) ;
</script>
Als je in je css bestand dezelfde standaard waarde gebruikt, zal er zich geen probleem moeten voor doen.
---
audio-tab punten toegevoegd
GroundZero - 20/08/2012 11:11
Lid
Ik ga het dadelijk meteen eens proberen, dankjewel! ik laat je de uitkomst weten!
larssy1 - 20/08/2012 11:25 (laatste wijziging 20/08/2012 13:16)
MySQL beginner
GroundZero schreef:
Ik ga het dadelijk meteen eens proberen, dankjewel! ik laat je de uitkomst weten!
zie trouwens dat r bij audio-tab een punt ervoor mis. moet je even kijken of die nodig is toe te voegen.
---
Voor de zekerheid even getest.. In mijn geval met margin-left, dat zul je dus nog even moeten aanpassen.
<script type="text/javascript">
$(document).ready( function() {
$('.test').hover(function() {
$('.audio-tab').css("margin-left", "0px"); // nieuwe waarde
},function() {
$('.audio-tab').css("margin-left", "5px"); // standaard waarde
});
});
</script>
< script type= "text/javascript" >
$( document) .ready ( function ( ) {
$( '.test' ) .hover ( function ( ) {
$( '.audio-tab' ) .css ( "margin-left" , "0px" ) ; // nieuwe waarde
} , function ( ) {
$( '.audio-tab' ) .css ( "margin-left" , "5px" ) ; // standaard waarde
} ) ;
} ) ;
</ script>
avancleef - 20/08/2012 15:08 (laatste wijziging 20/08/2012 15:30)
Nieuw lid
Hoi larssy1, dankjewel voor je snelle antwoord!
echter werkt het niet bij mij helaas.
Als ik op de knop hover dan komt het menu inderdaad mooi tevoorschijn, en wanneer ik van de knop af ga dan verdwijnt hij ook MAAR...
hoe kan ik nu met mijn muis pijl op het menu komen? want als ik van de knop af ga (geen hover meer) dan verdwijnt het menu
Groetjes
P.S. onderstaand mijn code, ook heb ik een screenrecording gemaakt van enkele secondes zodat je kan zien wat er gebeurd als ik met de muis hoven en un-hover.
http://www.sendspace.com/file/p428ot
Mijn 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>Website</title>
<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.23.custom.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
<script src="js/jquery-1.8.0.min.js"></script>
<script src="js/jquery-ui-1.8.23.custom.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(e) {
$('#design-button').hover(function(){
$('#menu-design').css('left', '30px');
}, function(){
$('#menu-design').css('left', '9999px');
});
});
</script>
</head>
<body>
<div class="wrapper">
<div class="header">
<img src="images/header.png" alt="Studiobizz - header" />
</div>
<div class="menu">
<div class="menu-background">
<ul>
<li><a href="/" title="">Home</a></li>
<li><a href="#" title="Design" id="design-button" onclick="return false;">Design</a></li>
<li><a href="#" title="Audio & Recording" id="audio-en-recording-button" onclick="return false;">Audio & Recording</a></li>
</ul>
</div>
<div class="menu-design" id="menu-design">
<ul>
<li><a href="" title="">Optie 1</a></li>
<li><a href="" title="">Optie 2</a></li>
<li><a href="" title="">Optie 3</a></li>
<li><a href="" title="">Optie 4</a></li>
<li><a href="" title="">Optie 5</a></li>
</ul>
</div>
</div>
<div class="content">
</div>
</div>
</body>
</html>
<!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" > <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / >
<link rel = "stylesheet" type = "text/css" href = "css/ui-lightness/jquery-ui-1.8.23.custom.css" media = "screen" / > <link rel = "stylesheet" type = "text/css" href = "css/style.css" media = "screen" / >
<script language = "javascript" type = "text/javascript" > $(document).ready(function(e) {
$('#design-button').hover(function(){
$('#menu-design').css('left', '30px');
}, function(){
$('#menu-design').css('left', '9999px');
});
});
<img src = "images/header.png" alt = "Studiobizz - header" / > <div class = "menu-background" > <li ><a href = "/" title = "" > Home
</ a ></ li > <li ><a href = "#" title = "Design" id = "design-button" onclick = "return false;" > Design
</ a ></ li > <li ><a href = "#" title = "Audio & Recording" id = "audio-en-recording-button" onclick = "return false;" > Audio
& Recording
</ a ></ li > <div class = "menu-design" id = "menu-design" > <li ><a href = "" title = "" > Optie 1
</ a ></ li > <li ><a href = "" title = "" > Optie 2
</ a ></ li > <li ><a href = "" title = "" > Optie 3
</ a ></ li > <li ><a href = "" title = "" > Optie 4
</ a ></ li > <li ><a href = "" title = "" > Optie 5
</ a ></ li >
@charset "UTF-8";
/* CSS Document */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, vide, imgo {
margin:0;
padding:0;
border:none;
outline:none;
}
body {
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
.wrapper {
width:986px;
margin:25px auto;
overflow:hidden;
}
.header {
width:986px;
height:289px;
float:left;
}
.menu {
width:986px;
height:90px;
position:relative;
float:left;
}
.menu .menu-background {
width:986px;
height:90px;
position:absolute;
top:0px;
left:0px;
z-index:2;
background-image:url(../images/menu.png);
background-repeat:no-repeat;
}
.menu .menu-background ul {
list-style:none;
margin:24px 0 0 20px;
}
.menu .menu-background ul li {
display:inline-block;
padding:0 12px 0 12px;
font-size:16px;
}
.menu .menu-background ul li a:link, .menu .menu-background ul li a:visited {
color:#FFFFFF;
text-decoration:none;
}
.menu .menu-design {
min-width:100px;
min-height:40px;
position:absolute;
top:40px;
left:-9999px;
background:#999999;
padding:30px 10px 10px 10px;
}
.menu .menu-design ul li {
display:block;
font-size:16px;
}
.menu .menu-design ul li a:link, .menu .menu-design ul li a:visited {
color:#FFFFFF;
text-decoration:none;
}
.content {
width:986px;
min-height:200px;
float:left;
margin-top:25px;
background:#000066;
}
@charset "UTF-8";
/* CSS Document */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center ,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed ,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, vide, imgo {
margin : 0 ;
padding : 0 ;
border : none ;
outline : none ;
}
body {
font-family :Arial , Helvetica, sans-serif ;
font-size : 12px ;
}
.wrapper {
width : 986px ;
margin : 25px auto ;
overflow : hidden ;
}
.header {
width : 986px ;
height : 289px ;
float : left ;
}
.menu {
width : 986px ;
height : 90px ;
position : relative ;
float : left ;
}
.menu .menu-background {
width : 986px ;
height : 90px ;
position : absolute ;
top : 0px ;
left : 0px ;
z-index : 2 ;
background-image : url ( ../images/menu.png ) ;
background-repeat :no- repeat;
}
.menu .menu-background ul {
list-style : none ;
margin : 24px 0 0 20px ;
}
.menu .menu-background ul li {
display :inline- block;
padding : 0 12px 0 12px ;
font-size : 16px ;
}
.menu .menu-background ul li a:link , .menu .menu-background ul li a:visited {
color : #FFFFFF ;
text-decoration : none ;
}
.menu .menu-design {
min-width : 100px ;
min-height : 40px ;
position : absolute ;
top : 40px ;
left : -9999px ;
background : #999999 ;
padding : 30px 10px 10px 10px ;
}
.menu .menu-design ul li {
display : block ;
font-size : 16px ;
}
.menu .menu-design ul li a:link , .menu .menu-design ul li a:visited {
color : #FFFFFF ;
text-decoration : none ;
}
.content {
width : 986px ;
min-height : 200px ;
float : left ;
margin-top : 25px ;
background : #000066 ;
}
GroundZero - 21/08/2012 10:19 (laatste wijziging 21/08/2012 10:31)
Lid
hey larssy1 dankjewel, ik ga het meteen eens proberen! laat vanmiddag weten of het lukt. Nogmaals hartelijk dank voor je snelle reactie met oplossing!
P.S. Ik wou dat er een CSS only manier was, maar het probleem zit hem in het volgende:
Normaal is een menu blok (vierkant). Nu is dat dus NIET het geval. Een A element (link) word als een "block" weergegeven en dus vierkant.
Omdat het menu NIET vierkant is, ga je van het A element af voordat je op het menu staat dat dan verschijnt, en dus verdwijnt het menu dus weer.
Ik mail je de link naar de pagina zodat je het kunt zien.
larssy1 - 22/08/2012 02:46
MySQL beginner
ik kan het misschien wel werkend voor je maken, maar dan wordt er geen jquery gebruikt.. en komt het submenu bij het main menu te staan..
dan wordt het dus alsnog CSS based..
Met jquery gaat dit iig niet lukken denk ik.
GroundZero - 22/08/2012 11:53
Lid
CSS only was ook mijn voorkeur geweest om eerlijk te zijn. Als je het werkend zou krijgen dan ben ik je eeuwig dankbaar, ben inmiddels al bijna een week aan het zoeken naar een oplossing haha.
Groetjes
avancleef - 23/08/2012 09:39
Nieuw lid
Ik heb het nog enkele keren geprobeerd maar tot op heden geen oplossing... iemand nog met ideeën die ik kan proberen?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.