Phan Nhật Chánh - Official website: Menu
Phan Nhật Chánh - Official website

jQuery tree menu css slide up - down

   Feb 24, 2015   
tree_menu.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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery tree menu css slide up down</title>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<script type="text/javascript">
$(function(){
$('#tree-menu > li > a').click(function(){
var next = $(this).next();
if(next.is(':visible')){
next.slideUp(300);
$(this).find('span').html('+');
}else{
next.slideDown(300);
$(this).find('span').html('-');
}
});
});
</script>

<style type="text/css">
body { font:12px Tahoma, Geneva, sans-serif; }
#div-head-tree-menu { width:230px; padding:10px 10px 10px 10px; text-align:center; background-color:#ddd; border:1px solid #ccc; border-bottom:5px solid #a8bfd7; }
#div-tree-menu { padding-left:20px; padding-bottom:10px; width:230px; background-color:#eee; overflow:hidden; border:1px solid #aaa; border-top:1px solid #FFF; }

#tree-menu { width:200px; float:left; margin:0; padding:0; margin-top:-1px;}
#tree-menu ul { margin:0; padding:8px; }
#tree-menu li { list-style:none; padding:8px; margin:0; }

#menu-lv1 { display:none; }
#menu-lv2 { display:none; }
#menu-lv3 { display:none; }
#menu-lv4 { display:none; }

a:link { text-decoration: none; color: #00F; }
a:visited { text-decoration: none; color: #0CF; }
a:hover { text-decoration: none; color: #F60; }
a:active { text-decoration: none; color: #F00; }
.txt-red { color:#F00 }
</style>
</head>

<body>
<div id="div-head-tree-menu">: <a href="http://www.nhatchanh.info/2015/02/jquery-tree-menu-css-slide-up-down.html">Tree Menu</a> :</div>
<div id="div-tree-menu">
<ul id="tree-menu">
<li><a href="#"><span>+</span> menu-1</a>
<ul id="menu-lv1">
<li>&#8250; <a href="#">sub-menu-1-1</a></li>
<li>&#8250; <a href="#">sub-menu-1-2</a></li>
<li>&#8250; <a href="#">sub-menu-1-3</a></li>
<li>&#8250; <a href="#">sub-menu-1-4</a></li>
</ul>
</li>
<li><a href="#"><span>+</span> menu-2</a>
<ul id="menu-lv2">
<li>&#8250; <a href="#">sub-menu-2-1</a></li>
<li>&#8250; <a href="#">sub-menu-2-2</a></li>
<li>&#8250; <a href="#">sub-menu-2-3</a></li>
<li>&#8250; <a href="#">sub-menu-2-4</a></li>
</ul>
</li>
<li><a href="#"><span>+</span> menu-3</a>
<ul id="menu-lv3">
<li>&#8250; <a href="#">sub-menu-3-1</a></li>
<li>&#8250; <a href="#">sub-menu-3-2</a></li>
<li>&#8250; <a href="#">sub-menu-3-3</a></li>
<li>&#8250; <a href="#">sub-menu-3-4</a></li>
</ul>
</li>
<li><a href="#"><span>+</span> menu-4</a>
<ul id="menu-lv4">
<li>&#8250; <a href="#">sub-menu-4-1</a></li>
<li>&#8250; <a href="#">sub-menu-4-2</a></li>
<li>&#8250; <a href="#">sub-menu-4-3</a></li>
<li>&#8250; <a href="#">sub-menu-4-4</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
Tạo Menu Treeview đa cấp bằng HTML và CSS

Tạo Menu Accordion đơn giản với JQuery và CSS3

   Jul 9, 2014   
Accordion Menu hiện nay khá phổ biến với thiết kế web hiện tại, vì ngoài việc là một menu, nó có thể tùy biến để hiện thị nội dung, hình ảnh một cách rất chuyên nghiệp...

Bạn chỉ cần tìm từ khóa Accordion Menu là ra rất nhiều plugin, tuy nhiên bạn cũng có thể xây dựng riêng cho mình một Accordion Menu một cách rất đơn giản và gọn nhẹ.

Xin chia sẽ đến các bạn một đoạn code giúp tạo ra một menu Accordion ấn tượng với jQueryCSS3 đơn giản. Ưu điểm của loại menu này là có thể tiết kiệm cho bạn nhiều khoảng không gian trên trang web của bạn hơn. Đoạn code dưới đây rất đơn giản nhưng cũng hiều quả và có ích cho bạn đấy, giờ mình cùng xem qua nhé.

Menu Accordion, Menu Accordion bang jquery va css3, menu accordion jquery, jquery menu accordion, menu accordion dep, menu accordion an tuong, menu accordion ấn tượng

Mã HTML:
<div id='accordion'>
<h2>Panel 1</h2>
<div class='content'>
Nội dung Panel 1
</div>
<h2>Panel 2</h2>
<div class='content'>
Nội dung Panel 2
</div>
<h2>Panel 3</h2>
<div class='content'>
Nội dung Panel 3
</div>
<h2>Panel 4</h2>
<div class='content'>
Nội dung Panel 4
</div>
</div>
Mã JQuery:
$(function() {
$('#accordion .content').hide();
$('#accordion h2:first').addClass('active').next().slideDown('slow');
$('#accordion h2').click(function() {
if($(this).next().is(':hidden')) {
$('#accordion h2').removeClass('active').next().slideUp('slow');
$(this).toggleClass('active').next().slideDown('slow');
}
});
});

Mã CSS:
#accordion {
width:90%;
margin:10px auto;
border:2px solid white;
-webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
box-shadow:0px 1px 3px rgba(0,0,0,0.4);
}

#accordion h2 {
cursor:pointer;
margin:0px 0px;
padding:7px 15px;
background-color:black;
font:bold 11px Verdana,Arial,Sans-Serif;
color:#e6e6e6;
text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}

#accordion .content {
background-color:#ddd;
padding:10px 15px;
color:black;
height:auto;
}

#accordion h2.active {
background-color:#4BB347;
}
Như vậy là ta vừa tạo xong 1 Menu Accordion đơn giản rồi. Chúc bạn thành công !

Tạo Menu Treeview đa cấp bằng HTML và CSS

   Jun 28, 2014   
TreeView là một điều khiển dùng để hiển thị các cấu trúc dạng cây.
Cấu trúc cây là một mô hình dữ liệu thường gặp trong thực tế. Mỗi một phần tử trong cây gọi là một Node, mỗi một cấu trúc cây gồm có:
  • Root Node: gọi là Node gốc (gốc của cây). Nó có một hoặc nhiều Node con và không có Node cha.
  • Parent Node: là Node nằm dưới Root Node. Nó có một hoặc nhiều Node con.
  • Leaf Node : là Node lá, nó không có Node con nào.
Trong bài viết này, tôi sẽ trình bày một kỹ thuật để hiển thị một danh sách có thứ tự đa cấp theo hình thức một cây với đường kết nối các nút. Kết quả cuối cùng sẽ trông như thế này:
Menu Treeview đa cấp bằng HTML và CSS, menu treeview, treeview html css, tao menu treview bang html va css, treeview
kết quả 1

Kết quả 2
Lưu ý rằng các menu mà chúng ta xây dựng là hoàn toàn tĩnh - có nghĩa là nó không có chức năng thu gọn hay mở rộng ra (xổ xuống).

Ta tạo ra một menu đơn giản như sau:

HTML:
<ul class="tree">
<li>List item 1</li>
<li>List item 2
<ul>
<li>List item 2.1</li>
<li>List item 2.2
<ul>
<li>List item 2.2.1</li>
<li>List item 2.2.2</li>
</ul>
</li>
<li>List item 2.3</li>
</ul>
</li>
<li>List item 3</li>
<li>List item 4</li>
<li>List item 5</li>
</ul>

Kết quả của đoạn code trên:

Điều đầu tiên mà chúng ta cần phải làm là loại bõ những nút chấm chấm đen đen "xấu xí" đó đi @@ bằng cách thiết lập list-style-type  với thuộc tính là none

CSS:
ul.tree, ul.tree ul {
list-style-type: none;
}

và ta sẻ thu được kết quả:

Tiếp đến là chúng ta kẽ 1 đường dọc xuống cho các cấp bằng cách tạo ra hình ảnh dạng |

vline.png

CSS:
ul.tree, ul.tree ul {
list-style-type: none;
background: url(vline.png) repeat-y;
margin: 0;
padding: 0;
}

ul.tree ul {
margin-left: 10px;
}

ul.tree li {
margin: 0;
padding: 0 12px;
}

ta được kết quả:

Kết nối các nút lại với nhau bằng cách bằng cách ta tạo ra 1 hình ảnh dạng chữ T
node.png

CSS:
ul.tree, ul.tree ul {
list-style-type: none;
background: url(vline.png) repeat-y;
margin: 0;
padding: 0;
}

ul.tree ul {
margin-left: 10px;
}

ul.tree li {
margin: 0;
padding: 0 12px;
line-height: 20px;
background: url(node.png) no-repeat;
color: #369;
font-weight: bold;
}

và kết quả sẻ là:

Rõ ràng, nút cuối cùng trong mỗi danh sách nhìn chưa đạt cần phải thiết lập lại. Và ta lại tạo ra thêm 1 hình ảnh dạng chữ L để nối nó lại:
lastnode.png

CSS:
ul.tree,ul.tree ul {
list-style-type: none;
margin:0;
padding:0;
}

ul.tree ul {
margin-left:10px;
background: url(vline.png) repeat-y;
}

ul.tree li {
margin:0;
padding:0 12px;
font-size:14px;
line-height:20px;
color:#369;
font-weight:bold;
}

ul.tree ul li {
background: url(node.png) no-repeat;
}

ul.tree ul li.last,
ul.tree ul li:last-child {
background: #fff url(lastnode.png) no-repeat;
}

ta thu được kết quả cuối cùng:

Và đây là toàn bộ code:
HTML + 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 Treeview Menu - List : nhatchanh.info</title>
<style>
ul.tree,ul.tree ul {
list-style-type: none;
margin:0;
padding:0;
}

ul.tree ul {
margin-left:10px;
background: url(vline.png) repeat-y;
}

ul.tree li {
margin:0;
padding:0 12px;
font-size:14px;
line-height:20px;
color:#369;
font-weight:bold;
}

ul.tree ul li {
background: url(node.png) no-repeat;
}

ul.tree ul li.last,
ul.tree ul li:last-child {
background: #fff url(lastnode.png) no-repeat;
}
</style>
</head>

<body>
<ul class="tree">
<li>List item 1</li>
<li>List item 2
<ul>
<li>List item 2.1</li>
<li>List item 2.2
<ul>
<li>List item 2.2.1</li>
<li>List item 2.2.2</li>
</ul>
</li>
<li>List item 2.3</li>
</ul>
</li>
<li>List item 3</li>
<li>List item 4</li>
<li>List item 5</li>
</ul>
</body>
</html>
jQuery tree menu css slide up - down
Với ví dụ trên các nhánh được hiển thị bằng hình ảnh, nếu bạn không muốn dùng hình ảnh bạn có thể sử dụng đoạn css dưới đây:

CSS:
ul.tree,
ul.tree ul {
list-style:none;
margin:0;
padding:0;
}

ul.tree ul {
margin-left:10px;
position:relative;
}

ul.tree ul:before {
content:"";
display:block;
width:0;
position:absolute;
top:0;
bottom:0;
left:0;
border-left:1px solid;
}

ul.tree li {
margin:0;
padding:0 12px;
font-size:14px;
line-height:20px;
color:#369;
font-weight:bold;
position:relative;
}

ul.tree ul li:before {
content:"";
display:block;
width:10px;
height:0;
border-top:1px solid;
position:absolute;
top:10px;
left:0;
}

ul.tree ul li:last-child:before {
background:white;
height:auto;
top:10px;
bottom:0;
}