การสร้าง active เมนู อย่างง่าย ด้วย css และ php
ตัวอย่างโค้ดต่อไปนี้ เป้นหนึ่งในหลายวิธี ในการกำหนด สถานะการ active ของลิ้งค์ปัจจุบัน
โดยอาศัย php ในการเช็ค url ของหน้าปัจจุบัน ไปกำหนด css ของเมนู
ตัวอย่างประกอบ
โค้ดตัวอย่างทั้งหมด
<!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>css_menu_active</title> <style type="text/css"> /* เมนูปกติ */ .css_menu{ position:relative; display:block; float:left; width:100px; height:25px; background-color:#333; color:#FFF; text-align:center; text-decoration:none; line-height:25px; margin-right:2px; } /* เมนูเมื่อเมาส์ over*/ .css_menu:hover{ position:relative; display:block; float:left; width:100px; height:25px; background-color:#CCC; color:#000; } /* เมนูเมื่อ active*/ .css_menu_active{ position:relative; display:block; float:left; width:100px; height:25px; background-color:#CCC; color:#000; text-align:center; text-decoration:none; line-height:25px; margin-right:2px; } </style> </head> <body> <?php // ฟังก์ชั่นอย่างง่ายใช้ทดสอบ หน้าปัจจุบัน function active_menu($link_chk,$default_active=0){ if($default_active==1){ return ($_SERVER['REQUEST_URI']==$link_chk || $_SERVER['QUERY_STRING']=="")?"_active":""; }else{ return ($_SERVER['REQUEST_URI']==$link_chk)?"_active":""; } } ?> <a class="css_menu<?=active_menu("/demo/css_menu_active.php?menu=1",1)?>" href="css_menu_active.php?menu=1">Menu 1</a> <a class="css_menu<?=active_menu("/demo/css_menu_active.php?menu=2")?>" href="css_menu_active.php?menu=2">Menu 2</a> <a class="css_menu<?=active_menu("/demo/css_menu_active.php?menu=3")?>" href="css_menu_active.php?menu=3">Menu 3</a> <a class="css_menu<?=active_menu("/demo/css_menu_active.php?menu=4")?>" href="css_menu_active.php?menu=4">Menu 4</a> </body> </html>
การใช้งาน
หลักการอย่างง่าย คือการส่งค่าว่า หน้าปัจจุบัน url คืออะไร เช่น
<?=active_menu("/demo/css_menu_active.php?menu=2")?>
หมายถึง ถ้า ตัวแปร $_SERVER['REQUEST_URI'] เท่ากับ /demo/css_menu_active.php?menu=2
ก็ให้เติมคำว่า _active ต่อเข้าไปใน css class
อักตัวอย่าง
<?=active_menu("/demo/css_menu_active.php?menu=1",1)?>
หมายถึง ถ้า ตัวแปร $_SERVER['REQUEST_URI'] เท่ากับ /demo/css_menu_active.php?menu=1
หรือ ไม่มีเงื่อนไขใดๆ ถูกต้อง ก็ให้เติมคำว่า _active ต่อเข้าไปใน css class ของเมนูนั้น เพื่อเป็นค่าเริ่มต้น