ถามเรื่องการแสดงผล CSS ของIE6 ( เมนู drop down ไม่แสดงผลใน IE6 )
เพราะว่าใน IE6 ไม่รองรับ CSS การเขียนแบบ Hover ที่ตัว Element ครับ
ul li:hover แบบนี้ใน ie6 ใช้งานไม่ได้ครับ
ีul li a:hover แบบนี้ถึงจะทำงานได้ครับ ใน ie6
อาจจะต้องมี javascript เข้ามาช่วยในการ ดักจับ Event ว่า เมื่อ li hover แล้วค่อยทำอะไรต่อไป
อาจจะมีวิธีที่ดีกว่านี้ แต่ปกติที่ผมทำจะใช้รูปแบบนี้ครับ
Date :
2011-01-10 23:26:13
By :
LindyFralin
จะใส่หัวหรือท้ายก็ได้ครับผม ขอให้อยู่ใน <HTML> ก็พอ
var sfEls = document.getElementById("content").getElementsByTagName("ul");
เป็นการระบุตัว Target ที่เราต้องการทำครับ โดยการ Access DOM เข้าไปที่ละ Level
อย่างเช่นตัวอย่างนี้เขาต้องการ Add Event ที่ตัว UL
ถ้าเขียนเป็น html ก็จะเป็น
<div id="content"><ul>
ประมาณนี้อะครับ
ถ้าเป็นของคุณอาจจะเป็น
var sfEls = document.getElementById("menu").getElementsByTagName("ul");
แต่ตัวอย่างของคุณยังไม่มี ID อาจจะต้องสร้าง ID ขึ้นมาไว้เพื่อให้ทำงานได้นะครับ และตัวงานของคุณอาจจะต้องระบุ Tartget ถึง LI ก็ลอง Acess ดูทีละ Level ครับ
หรืออาจะสร้าง ID ที่ตัว UL แล้ว Acess ไปถึง LI ก็ได้ครับ น่าจะง่ายกว่า
ถ้ายังไม่เข้าใจก็บอกนะครับ
พอดีอธิบายไม่เก่ง ออกแนวมวยวัดอะครับ
Date :
2011-01-11 11:20:29
By :
LindyFralin
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<script type="text/javascript">
// suckerfish hover effect for ie6
sfHover = function() {
// specify hovered element and div in which it sits
var sfEls = document.getElementById("menu").getElementsByTagName("ul");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" hover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" hover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="menu_style.css" type="text/css" />
</head>
<body>
<br>
<br>
<div class="menu">
<div id="menu">
<ul>
<li><a href="#" >Home</a></li>
<li><a href="#" id="current">Products</a>
<div id="menu">
<ul>
<li><a href="#">Drop Down CSS Menus</a></li>
<li><a href="#">Horizontal CSS Menus</a></li>
<li><a href="#">Vertical CSS Menus</a></li>
<li><a href="#">Dreamweaver Menus</a></li>
</ul>
</div>
</li>
<li><a href="/faq.php">FAQ</a>
<div id="menu">
<ul>
<li><a href="#">Drop Down CSS Menus</a></li>
<li><a href="#">Horizontal CSS Menus</a></li>
<li><a href="#">Vertical CSS Menus</a></li>
<li><a href="#">Dreamweaver Menus</a></li>
</ul>
</div>
</li>
<li><a href="/contact/contact.php">Contact</a></li>
</ul>
</div>
</div>
</body>
</html>
ประมาณนี้หรือเปล่าครับ แต่ก็ยังไม่ได้ล่ะครับ TT____TT
Date :
2011-01-11 13:41:14
By :
thandon
เขียน jquery ได้ไหมครับ
pure javascript ผมไม่ได้ศึกษามากอะครับ
Date :
2011-01-11 14:30:58
By :
LindyFralin
ตอนนี้ศึกษาจากเว็ปนี้อยู่ครับ
http://www.dynamicdrive.com/style/csslibrary/item/jquery_multi_level_css_menu_2/
Date :
2011-01-11 14:47:55
By :
thandon
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="menu_style.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('#menu li').mouseenter(function(){
$(this).find('ul').css("display","block");
}).mouseleave(function(){
$(this).find('ul').css("display","none");
})
});
</script>
<style type="text/css">
.menu{
border:none;
border:0px;
margin:0px;
padding:0px;
font: 67.5% "Lucida Sans Unicode", "Bitstream Vera Sans", "Trebuchet Unicode MS", "Lucida Grande", Verdana, Helvetica, sans-serif;
font-size:14px;
font-weight:bold;
}
.menu ul{
background:#333333;
height:35px;
list-style:none;
margin:0;
padding:0;
}
.menu li{
float:left;
padding:0px;
}
.menu li a{
background:#333333 url("images/seperator.gif") bottom right no-repeat;
color:#cccccc;
display:block;
font-weight:normal;
line-height:35px;
margin:0px;
padding:0px 25px;
text-align:center;
text-decoration:none;
}
.menu li a:hover, .menu ul li:hover a{
background: #2580a2 url("images/hover.gif") bottom center no-repeat;
color:#FFFFFF;
text-decoration:none;
}
.menu li ul{
background:#333333;
display:none;
height:auto;
padding:0px;
margin:0px;
border:0px;
position:absolute;
width:225px;
z-index:200;
/*top:1em;
/*left:0;*/
}
.menu li:hover ul{
display:block;
}
.menu li li {
background:url('images/sub_sep.gif') bottom left no-repeat;
display:block;
float:none;
margin:0px;
padding:0px;
width:225px;
}
.menu li:hover li a{
background:none;
}
.show{
}
.menu li ul a,{
display:block;
height:35px;
font-size:12px;
font-style:normal;
margin:0px;
padding:0px 10px 0px 15px;
text-align:left;
}
.menu li ul a:hover, .menu li ul li:hover a{
background:#2580a2 url('images/hover_sub.gif') center left no-repeat;
border:0px;
color:#ffffff;
text-decoration:none;
}
.menu p{
clear:left;
}
</style>
</head>
<body>
<br>
<br>
<div class="menu" >
<ul id="menu">
<li><a href="#" >Home</a></li>
<li><a href="#" id="current">Products</a>
<ul>
<li><a href="#">Drop Down CSS Menus</a></li>
<li><a href="#">Horizontal CSS Menus</a></li>
<li><a href="#">Vertical CSS Menus</a></li>
<li><a href="#">Dreamweaver Menus</a></li>
</ul>
</li>
<li><a href="/faq.php">FAQ</a>
<ul>
<li><a href="#">Drop Down CSS Menus</a></li>
<li><a href="#">Horizontal CSS Menus</a></li>
<li><a href="#">Vertical CSS Menus</a></li>
<li><a href="#">Dreamweaver Menus</a></li>
</ul>
</li>
<li><a href="/contact/contact.php">Contact</a></li>
</ul>
</div>
</body>
</html>
เสร็จแล้วนะครับ
ผมลอง Test ให้แล้วใช้งานได้ปกติครับผม บน IE6
Date :
2011-01-12 00:46:17
By :
LindyFralin
สิ่งที่ผมแก้ มีดังนี้
Code (PHP)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('#menu li').mouseenter(function(){
$(this).find('ul').css("display","block");
}).mouseleave(function(){
$(this).find('ul').css("display","none");
})
});
</script>
import jquery มาจาก Google
Code (PHP)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
function on load page
Code (PHP)
<script type="text/javascript">
$(function(){
$('#menu li').mouseenter(function(){
$(this).find('ul').css("display","block");
}).mouseleave(function(){
$(this).find('ul').css("display","none");
})
});
</script>
ผมเพิ่ม ID ให้กับ UL id="menu" ครับ
Code (PHP)
<div class="menu" >
<ul id="menu">
<li></li>
.....
</ul>
</div>
Date :
2011-01-12 00:49:37
By :
LindyFralin
โอ้ ขอบพระคุณมากๆครับ
หลังจากผมนั่งงมเองมาเกือบ 2-3 วัน
Date :
2011-01-12 04:46:10
By :
thandon
Load balance : Server 04