Monday, January 28, 2019

Hướng dẫn tạo menu responsive đa cấp html và css 3, jquery chi tiết

Trong lập trình web menu đa cấp rất rất quan trọng, bởi nó thể hiện bộ mặt của website đẹp hay không đẹp, đa dụng hay không đa dụng, cả về phần backend lẫn front-end. Khi chúng ta thiết kế cho bản thân hoặc khách hàng đều phải cần thiết có nó. Nhiều khi chúng ta hay bỏ qua vấn đề này khiến trang web của mình trở nên mất thẩm mỹ khi xem ở thiết bị di động. Vậy làm thế nào để thiết kế được menu đa cấp responsive bằng html, css và jquery hãy theo dõi phần dưới



Trong thiết kế web tĩnh bằng html css có nhiều dạng menu đa cấp, nhưng hôm nay mình sẽ hướng dẫn các bạn xây dựng 2 dạng menu đa cấp phổ biến nhất

Để làm được menu đa cấp responsive cho website chúng ta cần kiến thức gì

Đâu tiên và bắt buộc là các bạn phải biết HTML, CSS cơ bản

Javascrpit/Jquery

Và một chút về độ họa để thẩm mỹ :D (không biết vấn làm được)

Chung ta hãy bắt tay vào xây dựng nó đi thôi

Ở đây mình sẽ hướng dẫn làm 2 kiểu theo trình tự để các bạn biết

1. Responsive DropDown Menu Using JQuery


Xem demo online: tại đây

Mã HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta charset="UTF-8">
    <title>Responsive DropDown Menu Using JQuery</title>
</head>
<body>
    <div id="wrapper">
        <header>
            <nav id='main-menu'>
                <div class="logo"><a href="index.html">Responsive menu </a>
                </div>
                <div id="head-mobile"></div>
                <div class="button"></div>
                <ul>
                    <li class='active'><a href='#'>HOME</a>
                    </li>
                    <li><a href='#'>ABOUT</a>
                    </li>
                    <li><a href='#'>PRODUCTS</a>
                        <ul>
                            <li><a href='#'>Product 1</a>
                                <ul>
                                    <li><a href='#'>Sub Product</a>
                                    </li>
                                    <li><a href='#'>Sub Product</a>
                                    </li>
                                </ul>
                            </li>
                            <li><a href='#'>Product 2</a>
                                <ul>
                                    <li><a href='#'>Sub Product</a>
                                    </li>
                                    <li><a href='#'>Sub Product</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li><a href='#'>BIO</a>
                    </li>
                    <li><a href='#'>VIDEO</a>
                    </li>
                    <li><a href='#'>GALLERY</a>
                    </li>
                    <li><a href='#'>CONTACT</a>
                    </li>
                </ul>
            </nav>
        </header>
</body>
</html>

Sau đó chúng ta css cho menu đẹp

Mã CSS

Hiển thị menu trên Deskop

/* menu */
.logo{position:relative;z-index:123;padding:10px;font:18px verdana;color:#6DDB07;float:left;width:15%}
.logo a{color:#6DDB07;}
nav{position:relative;width:1170px;margin:0 auto;}
#main-menu,#main-menu ul,#main-menu ul li,#main-menu ul li a,#main-menu #head-mobile{border:0;list-style:none;line-height:1;display:block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
#main-menu:after,#main-menu > ul:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}
#main-menu #head-mobile{display:none}
#main-menu{font-family:sans-serif;background:#d81146}
#main-menu > ul > li{float:left}
#main-menu > ul > li > a{padding:17px;font-size:12px;letter-spacing:1px;text-decoration:none;color:#fff;font-weight:700;}
#main-menu > ul > li:hover > a,#main-menu ul li.active a{color:yellow}
#main-menu > ul > li:hover,#main-menu ul li.active:hover,#main-menu ul li.active,#main-menu ul li.has-sub.active:hover{color:yellow!important;-webkit-transition:background .3s ease;-ms-transition:background .3s ease;transition:background .3s ease;}
#main-menu > ul > li.has-sub > a{padding-right:30px}
#main-menu > ul > li.has-sub > a:after{position:absolute;top:22px;right:11px;width:8px;height:2px;display:block;background:#ddd;content:''}
#main-menu > ul > li.has-sub > a:before{position:absolute;top:19px;right:14px;display:block;width:2px;height:8px;background:#ddd;content:'';-webkit-transition:all .25s ease;-ms-transition:all .25s ease;transition:all .25s ease}
#main-menu > ul > li.has-sub:hover > a:before{top:23px;height:0}
#main-menu ul ul{position:absolute;left:-9999px}
#main-menu ul ul li{height:0;-webkit-transition:all .25s ease;-ms-transition:all .25s ease;background:#d81146;transition:all .25s ease}
#main-menu ul ul li:hover{}
#main-menu li:hover > ul{left:auto}
#main-menu li:hover > ul > li{height:35px}
#main-menu ul ul ul{margin-left:100%;top:0}
#main-menu ul ul li a{border-bottom:1px solid rgba(150,150,150,0.15);padding:11px 15px;width:170px;font-size:12px;text-decoration:none;color:#fff;font-weight:400;}
#main-menu ul ul li:last-child > a,#main-menu ul ul li.last-item > a{border-bottom:0}
#main-menu ul ul li:hover > a,#main-menu ul ul li a:hover{color:#fff}
#main-menu ul ul li.has-sub > a:after{position:absolute;top:16px;right:11px;width:8px;height:2px;display:block;background:#ddd;content:''}
#main-menu ul ul li.has-sub > a:before{position:absolute;top:13px;right:14px;display:block;width:2px;height:8px;background:#ddd;content:'';-webkit-transition:all .25s ease;-ms-transition:all .25s ease;transition:all .25s ease}
#main-menu ul ul > li.has-sub:hover > a:before{top:17px;height:0}
/* #main-menu ul ul li.has-sub:hover,#main-menu ul li.has-sub ul li.has-sub ul li:hover{} */
#main-menu ul ul ul li.active a{border-left:1px solid #d81146}
#main-menu > ul > li.has-sub > ul > li.active > a,#main-menu > ul ul > li.has-sub > ul > li.active> a{border-top:1px solid #d81146}
Hiển thị trên thiết bị thông minh (tablet, di dộng)
@media screen and (max-width:1000px){
.logo{position:absolute;top:0;left: 0;width:100%;height:46px;text-align:center;padding:10px 0 0 0 ;float:none}
.logo2{display:none}
nav{width:100%;}
#main-menu{width:100%}
#main-menu ul{width:100%;display:none}
#main-menu ul li{width:100%;}
#main-menu ul li:hover{background:#363636;}
#main-menu ul ul li,#main-menu li:hover > ul > li{height:auto}
#main-menu ul li a,#main-menu ul ul li a{width:100%;border-bottom:0}
#main-menu > ul > li{float:none}
#main-menu ul ul li a{padding-left:25px}
#main-menu ul ul li{background:#d81146!important;}
#main-menu ul ul li:hover{background:#363636!important}
#main-menu ul ul ul li a{padding-left:35px}
#main-menu ul ul li a{color:#fff;background:none}
#main-menu ul ul li:hover > a,#main-menu ul ul li.active > a{color:yellow}
#main-menu ul ul,#main-menu ul ul ul{position:relative;left:0;width:100%;margin:0;text-align:left}
#main-menu > ul > li.has-sub > a:after,#main-menu > ul > li.has-sub > a:before,#main-menu ul ul > li.has-sub > a:after,#main-menu ul ul > li.has-sub > a:before{display:none}
#main-menu #head-mobile{display:block;padding:23px;color:#fff;font-size:12px;font-weight:700}
.button{width:55px;height:46px;position:absolute;right:0;top:0;cursor:pointer;z-index: 12399994;}
.button:after{position:absolute;top:22px;right:20px;display:block;height:4px;width:20px;border-top:2px solid #fff;border-bottom:2px solid #fff;content:''}
.button:before{-webkit-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease;position:absolute;top:16px;right:20px;display:block;height:2px;width:20px;background:#fff;content:''}
.button.menu-opened:after{-webkit-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease;top:23px;border:0;height:2px;width:19px;background:#fff;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}
.button.menu-opened:before{top:23px;background:#fff;width:19px;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}
#main-menu .submenu-button{position:absolute;z-index:99;right:0;top:0;display:block;height:46px;width:46px;cursor:pointer}
#main-menu .submenu-button.submenu-opened{background:#262626}
#main-menu ul ul .submenu-button{height:34px;width:34px}
#main-menu .submenu-button:after{position:absolute;top:22px;right:19px;width:8px;height:2px;display:block;background:#fff;content:''}
#main-menu ul ul .submenu-button:after{top:15px;right:13px}
#main-menu .submenu-button.submenu-opened:after{background:#fff}
#main-menu .submenu-button:before{position:absolute;top:19px;right:22px;display:block;width:2px;height:8px;background:#fff;content:''}
#main-menu ul ul .submenu-button:before{top:12px;right:16px}
#main-menu .submenu-button.submenu-opened:before{display:none}
#main-menu ul ul ul li.active a{border-left:none}
#main-menu > ul > li.has-sub > ul > li.active > a,#main-menu > ul ul > li.has-sub > ul > li.active > a{border-top:none}
}
/* end menu */

Để có thể co vào và xổ ra khi người dùng ấn thì các bạn cần phải code jqury cho nó bằng đoạn code sau:

Đầu tiên khai báo thư viện jquery

Ở đây mình dùng bản 1.11, các bạn chèn đoạn mã sau vào trước thẻ đóng </body> nhé
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
        (function($) {
            $.fn.menumaker = function(options) {
                var mainmn = $(this),
                    settings = $.extend({
                        format: "dropdown",
                        sticky: false
                    }, options);
                return this.each(function() {
                    $(this).find(".button").on('click', function() {
                        $(this).toggleClass('menu-opened');
                        var mainmenu = $(this).next('ul');
                        if (mainmenu.hasClass('open')) {
                            mainmenu.slideToggle().removeClass('open');
                        } else {
                            mainmenu.slideToggle().addClass('open');
                            if (settings.format === "dropdown") {
                                mainmenu.find('ul').show();
                            }
                        }
                    });
                    mainmn.find('li ul').parent().addClass('has-sub');
                    multiTg = function() {
                        mainmn.find(".has-sub").prepend('<span class="submenu-button"></span>');
                        mainmn.find('.submenu-button').on('click', function() {
                            $(this).toggleClass('submenu-opened');
                            if ($(this).siblings('ul').hasClass('open')) {
                                $(this).siblings('ul').removeClass('open').slideToggle();
                            } else {
                                $(this).siblings('ul').addClass('open').slideToggle();
                            }
                        });
                    };
                    if (settings.format === 'multitoggle') multiTg();
                    else mainmn.addClass('dropdown');
                    if (settings.sticky === true) mainmn.css('position', 'fixed');
                    resizeFix = function() {
                        var mediasize = 1000;
                        if ($(window).width() > mediasize) {
                            mainmn.find('ul').show();
                        }
                        if ($(window).width() <= mediasize) {
                            mainmn.find('ul').hide().removeClass('open');
                        }
                    };
                    resizeFix();
                    return $(window).on('resize', resizeFix);
                });
            };
        })(jQuery);
         (function($) {
            $(document).ready(function() {
                $("#main-menu").menumaker({
                    format: "multitoggle"
                });
            });
        })(jQuery);
    </script>
Đó mình đã hoàn thành menu đa cấp responsive kiểu 1 rồi. Sau đâu mình sẽ làm tiếp kiểu 2, kiểu này đa số web hiện nay đều sử dụng đến


2. Responsive Multi Level Off canvas



Tương tự như trên ta có mã

HTML

<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
</head>
<title>Responsive Multi Level Off canvas Navigation Plugin Navpad-Menu</title>
<body>
<div id="menu">
  <div class="menu-toggler"><span><i class="fas fa-align-justify"></i></span></div>
  <div class="responsive-menu">
    <div id="navigator-menu">
      <ul class="nav">
        <li class="title">Off-canvas menu</li>
        <li><a href="#" title="" style="border:none;">Da trắng</a></li>
        <li><a href="#" title="">Tóc đen</a></li>
        <li> <a href="#container" title="">Mắt xinh</a></li>
        <li><a href="#" title="">Dáng đẹp</a></li>
        <li><a href="#" title="">Trang điểm</a></li>
        <li><a href="#" title="">Khéo tay</a></li>
        <li><a href="#" title="">Thời trang</a></li>
        <li><a href="#" title="">Review mỹ phẩm</a></li>
        <li><a href="#" title="">Sức khỏe</a></li>
        <li><a href="#" title="">Làm đẹp</a></li>
        <li> <a href="#container" title=""><i class="fas fa-search"></i></a>
          <ul>
            <li>
              <div class="form-search1">
                  <form action="">
                          <input type="text">
                  </form>
              </div>
            </li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</div>
</body>

Mã CSS

/* Resets */
 * {
  margin: 0;
  padding: 0;
}
 body {
  font-family: 'Arial', sans-serif;
  font-weight: 400;
  background: #ddd;
}
 a { text-decoration: none; }
 /* Resets */

.alert {
  color: #666;
  text-align: center;
}
@media handheld, screen and (min-width: 641px) {
 .no_scroll { overflow-y: hidden; }
 .menu-cas-toggler { display: none; }
.form-search1{
    padding: 10px;
    background: #fff;
}
.form-search1 input{
  padding:4px
}
#menu-cas {
  max-width:100%;
  height: 50px;
  margin: 0 auto;
}
 #navigator-menu-cas {
  height: 50px;
  line-height: 50px;
  box-shadow: 0 7px 6px -7px #373435;
  -webkit-box-shadow: 0 7px 6px -7px #373435;
  -moz-box-shadow: 0 7px 6px -7px #373435;
      border-color: #ff1493;
    background-color: #ff1493;
}
 #navigator-menu-cas .title { display: none; }
 #navigator-menu-cas ul { list-style: none; }
 #navigator-menu-cas > ul > li {
  padding:0 13px;
  float: left;
}
 #navigator-menu-cas > ul > li > a {
  color: #fefefe;
  font-size: 15px;
  font-family: 'Arial', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
  display: block;
}
 #navigator-menu-cas > ul > li:hover > a { color:yellow }
 #navigator-menu-cas ul li > ul,
 #navigator-menu-cas ul li li > ul,
 #navigator-menu-cas ul li li li > ul,
 #navigator-menu-cas ul li li li li> ul,
 #navigator-menu-cas ul li li li li li > ul { display: none; }
 #navigator-menu-cas ul li:hover > ul,
 #navigator-menu-cas ul li li:hover > ul,
 #navigator-menu-cas ul li li li:hover > ul,
 #navigator-menu-cas ul li li li li:hover > ul,
 #navigator-menu-cas ul li li li li li:hover > ul {
  position: absolute;
    z-index: 10;
    width: 201px;
    line-height: 20px;
    display: block;
    right: 152px;
    background: #555;
    box-shadow: 0 7px 6px -7px #373435;
    -webkit-box-shadow: 0 7px 6px -7px #373435;
    -moz-box-shadow: 0 7px 6px -7px #373435;
}
 #menu-cas ul ul li ul {
  top: 0;
  left: 179px;
  min-height: 100%;
  border-left: 1px solid #444;
}
 #menu-cas ul ul li { /*position: relative;*/ }
 #menu-cas ul ul li a {
  color: #fefefe;
  font-size: 14px;
  font-family: 'Arial', sans-serif;
  text-transform: uppercase;
  display: block;
  padding: 12px 7px;
  border-top: 1px solid rgba(255,255,255,0.045);
  border-bottom: 1px solid rgba(0,0,0,0.045);
  text-transform: uppercase;
}
 #menu-cas ul ul li:hover > a { background: #444; }
 #menu-cas ul ul li li:hover > a { }
 #menu-cas ul ul li li li:hover > a { }
 #menu-cas ul ul li li li li:hover > a { }
 #menu-cas ul ul li li li li li:hover > a { }
}
 @media handheld, screen and (max-width: 640px) {

 .menu-cas-toggler { display: block; }
 .menu-cas-toggler span {
  color: #fefefe;
  font-size: 20px;
  font-family: 'Arial', sans-serif;
  text-align: center;
  letter-spacing: 5px;
  position: absolute;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
  height: 50px;
  line-height: 50px;
  margin: 0 auto;
  display: block;
  cursor: pointer;
  background: #333 url() no-repeat 10px center;
  box-shadow: 0 7px 3px -7px #373435;
  -webkit-box-shadow: 0 7px 3px -7px #373435;
  -moz-box-shadow: 0 7px 3px -7px #373435;
}
 .open > .menu-cas-toggler {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: rgba(225,225,225,0.85);
}
 .open > .menu-cas-toggler span { opacity: 0.1 !important; }
 .responsive-menu-cas {
  position: fixed;
  z-index: 99;
  top: 0;
  left: -300px;
  width: 300px;
  height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
  background: #555;
  transition: 0.3s;
  box-shadow: -4px 0 15px 0px #373435;
  -webkit-box-shadow: -4px 0 15px 0px #373435;
  -moz-box-shadow: -4px 0 15px 0px #373435;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
}
 .open > .responsive-menu-cas { left: 0; }

#navigator-menu-cas .title {
  color: #666;
  font-size: 20px;
  font-family: 'Arial', sans-serif;
  text-transform: uppercase;
  text-shadow: 0.8px 0.8px 3px #111;
  height: 60px;
  line-height: 62px;
  display: block;
  padding: 0 20px;
  border-bottom: 1px solid rgba(0,0,0,0.045);
  background: #333 url() no-repeat 20px center;
  box-shadow: -4px 0 5px 0px #373435;
  -webkit-box-shadow: -4px 0 5px 0px #373435;
  -moz-box-shadow: -4px 0 5px 0px #373435;
}
 #navigator-menu-cas ul li > ul,
 #navigator-menu-cas ul li li > ul,
 #navigator-menu-cas ul li li li > ul,
 #navigator-menu-cas ul li li li li > ul,
 #navigator-menu-cas ul li li li li li > ul {
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: rgba(0,0,0,0.1);
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
}
 #navigator-menu-cas ul li {
  float: none;
  display: block;
}
 #navigator-menu-cas ul li a {
  color: #999;
  font-size: 14px;
  display: block;
  padding: 20px;
  border-top: 1px solid rgba(255,255,255,0.045) !important;
  border-bottom: 1px solid rgba(0,0,0,0.045) !important;
}
 #navigator-menu-cas > ul > li:hover > a {
  color: #aaa;
  background: #444;
}

#navigator-menu-cas > ul > li > .parent,
 #navigator-menu-cas > ul > li:hover > .parent,
 #navigator-menu-cas > ul > li.hover > .parent,
 #navigator-menu-cas ul li li > .parent,
 #navigator-menu-cas ul li li:hover > .parent,
 #navigator-menu-cas ul li li.hover > .parent {
  background-repeat: no-repeat;
  background-position: 260px center;
}
 #navigator-menu-cas > ul > li > .parent,
 #navigator-menu-cas > ul > li:hover > .parent {
  color: #aaa;
  background-color: inherit;
  background-image: url();
}
 #navigator-menu-cas > ul > li.hover > .parent {
  color: #aaa;
  background-color: #444;
  background-image: url();
}

#navigator-menu-cas ul li li a {
  color: #aaa;
  font-size: 12px;
}
 #navigator-menu-cas ul li li > .parent,
 #navigator-menu-cas ul li li:hover > .parent {
  color: #aaa;
  background-color: inherit;
  background-image: url();
}
 #navigator-menu-cas ul li li.hover > .parent {
  color: #aaa;
  background-color: rgba(0,0,0,0.1);
  background-image: url();
}
 .nav ul {
  display: none;
  left: -9999px;
}
 .nav li.hover > ul,
 .nav li li.hover > ul,
 .nav li li li.hover > ul,
 .nav li li li li.hover > ul,
 .nav li li li li li.hover > ul,
 .nav li li li li li li.hover > ul {
  position: static !important;
  display: block !important;
}
}
 @media handheld, screen and (max-width: 480px) {
 .open > .responsive-menu-cas { width: 250px; }
 #menu-cas > ul > li > .parent,
 #menu-cas > ul > li:hover > .parent,
 #menu-cas > ul > li.hover > .parent,
 #menu-cas ul li li > .parent,
 #menu-cas ul li li:hover > .parent,
 #menu-cas ul li li.hover > .parent {
  background-repeat: no-repeat;
  background-position: 210px center;
}
}
 @media handheld, screen and (max-width: 319px) {
 .open > .responsive-menu-cas { width: 200px; }
 #menu-cas > ul > li > .parent,
 #menu-cas > ul > li:hover > .parent,
 #menu-cas > ul > li.hover > .parent,
 #menu-cas ul li li > .parent,
 #menu-cas ul li li:hover > .parent,
 #menu-cas ul li li.hover > .parent {
  background-repeat: no-repeat;
  background-position: 150px center;
}
}

Mã JQUERY

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
jQuery.noConflict();
jQuery(document).ready(function($){
  $('.menu-cas-toggler').click(function(){
    $("body").toggleClass('no_scroll');
  });
});
 jQuery.noConflict();
jQuery(document).ready(function($){
  $(function() {
    initDropDowns($("#menu-cas"));
  });
   function initDropDowns(allMenus) {
    allMenus.children(".menu-cas-toggler").on("click", function() {
      var thisTrigger = jQuery(this),
          thisMenu = thisTrigger.parent(),
          thisPanel = thisTrigger.next();
       if(thisMenu.hasClass("open")){
        thisMenu.removeClass("open");
        jQuery(document).off("click");                              
        thisPanel.off("click");
      }
      else{
        allMenus.removeClass("open");
        thisMenu.addClass("open");
        jQuery(document).on("click", function() {
          allMenus.removeClass("open");
        });
        thisPanel.on("click", function(e) {
          e.stopPropagation();
        });
      }    
      return false;
    });
  }
});
 jQuery.noConflict();
jQuery(document).ready(function($){
  $(document).ready(function() {
    $(".nav li a").each(function() {
      if ($(this).next().length > 0) {
        $(this).addClass("parent");
      };
    })
  })
  $(function(){
    $(".nav li").unbind('mouseenter mouseleave');
    $(".nav li a.parent").unbind('click').bind('click', function(e) {
      // must be attached to anchor element to prevent bubbling
      e.preventDefault();
      $(this).parent("li").toggleClass("hover");
    });
  });
});
</script>

Trên đây là những hướng dẫn tạo menu đa câp responsive đơn giản nhất, các bạn hãy tùy biến theo cách riêng của mình nhé. Hãy theo dõi web thường xuyên để cập nhật những bài học bổ ích. Không chỉ front-end mà cả backend nhé. Sắp tới mình sẽ viết bài hướng dẫn lập trinh theme bán hàng, tin tức bằng wordpress(không phải tùy biến theme co sẵn mà code từ a đến z). Các bạn hãy ủng hộ mình nhé

Chúc các bạn học tốt, kiếm thật nhiều tiền
Chi Tiết

Top những hosting trong nước và nước ngoài mạnh mẽ và nên dùng nhất

Bạn đang có nhu cầu làm website bán hàng, tin tức, dù ở nước ngoài hay trong nước chúng ta cũng cần phải có tên miền quan trọng hơn cả là hosting, nhất là trên thị trường hiện nay có rất nhiều nhà cung cấp sever, hosting lớn nhỏ, mạnh yếu lẫn lộn khiến bạn phân vân không biết lựa chọn host nào cho chất lượng và đáp ứng nhu cầu của mình. Hôm nay tôi sẽ giới thiệu những hosting nên dùng để thiết kế web.


Trước tiên chúng ta sẽ nói đến nhà cung cấp hosting trong nước.


Chắc hẳn ở đây nhiều người chọn mua hosting trong nước cứ nghĩ phải chọn nhà cung cấp lớn lâu năm mới chất lượng và uy tín. Hãy gạt bỏ những suy nghĩ ấy đi, lớn nhưng dịch vụ cung cấp hosting kém thì cũng hỏng. Hãy tưởng xem website của bạn có lượng truy cập nhiều, hosting bị lỗi liên tục doanh thu của bạn sẽ thế nào. Ở đây tôi không cố ý nói hosting của nhà cung cấp lớn không ra gì, nhưng qua kinh nghiệm từ bản thân đã xây dựng hàng trăm website lớn nhỏ cho khách hàng, và dựa trên những đánh giá tiêu cực của nhiều người dùng cũng như người lập trình. Thật là thảm hại cho chúng ta khi chọn sai nhà cung cấp. Tôi sẽ không bóc phốt mấy đơn vị đó, Dev chắc cũng biết, mà trong bài này tôi sẽ review những hosting nào nên dùng ở Việt Nam

HOSTING TENTEN


Đầu tiên chúng ta phải nhắc đến nhà cung cấp hosting tên miền tenten, đây là đơn vị các bạn nên ưu tiên chọn khi thiết kế web, bởi chế độ support rất nhiệt tình, còn hosting thì không phải suy nghĩ, họ cung cấp hosting linux wordpress, cũng như hosting window

HOSTING AZDIGI


Đây là hosting mới nổi trong thời gian gần đây, được nhiều code wordpress sử dụng nhiều nhất, nhờ nhiều ưu đãi hosting khỏe, chăm sóc khách hàng tốt nên rất được ưu chuộng, khi bạn đăng ký mua host bên này sẽ được tặng miễn phí chứng chỉ https

HOSTING NHÂN HÒA


Nhà cung cấp này ra đời rất lâu, thật tuyệt vời cho những bạn thích chọn đơn vị lâu năm, nhưng support còn thiếu chuyên nghiệp, nhưng không sao :D

Phần sau sẽ dành cho những bạn thích đi ngoài ra nước nhé. Suýt lại nói bậy rồi :D phải nói thích hosting nước ngoài mới đúng

Trước khi tìm hiểu hosting nước ngoài nên sử dụng thì tôi sẽ nói sơ qua vấn đề dùng nhà cung cấp host quốc tế, để các bạn nắm rõ, tránh việc hiểu nhầm

Những website nào nên chọn host đặt ở nước ngoài


Có thể nói dù làm web gì thì cũng có thể mua hosting nước ngoài.Tuy nhiên nếu bạn xây dựng những website này sau đây, chúng ta nên sử dụng host nước ngoài

Web để chạy adsense

Web affilates amazon, ebay…

Blog cá nhân

Web kiếm tiền online

Tại sao tôi lại khuyên các bạn nên mua host quốc tê cho những website dạng trên. Hãy cùng theo dõi phần dưới

Lý do bạn nên dùng hosting nước ngoài


- Rẻ hợp với túi tiền nhưng “CHUẤT”

- Support tốt nếu bạn biết tiếng anh

- Không bị sờ gáy (ddoss…)

- Kiếm được nhiều $ vì đặt ở nước ngoài mà :D

Chỉ cần như vậy đã đủ để các bạn an tâm lựa chọn một nhà cung cấp dịch vụ hosting phải không nào, còn riêng tôi làm web bán hàng cũng chơi nước ngoài luôn. Chính vì thế, không để các bạn đợi lâu, tôi sẽ giới thiệu cho các bạn một nhà cung cấp lớn vô cùng chất lượng

Em nó tên là STABLE HOST, chắc hẳn nhiều anh em làm web rất quen thuộc đối với đơn vị này, còn những ai chưa biết thì hãy đọc kỹ những sự thật đúng này

Hosting stable là một nhà cung cấp lớn trên thế giới mà chúng ta nên dùng, nó xứng đáng là anh cả của đơn vị làm dịch vụ hosting và tên miền ngoại.

Tại sao tôi nói vậy bởi:


Chất lượng thì không phải nói có khi hơn hẳn một số đơn vị lớn tại Việt Nam

Giá thành cực rẻ bạn chỉ cần bỏ ra từ 3,50$ giờ có khi rẻ hơn nó rơi với khoản 1,75$/ tháng là có một hosting để làm web

Support rất tốt, tôi dám khẳng định 1000% vô cùng nhanh và nhiệt tình, bạn chỉ cần gửi mail không quá 15p sẽ được họ hỗ trợ, không như ở VN chúng ta phải chờ dài cả cổ mới thấy hồi âm, có khi tịt luôn

Hosting load nhanh, chống ddos tốt.

Thanh toán dễ dàng, chỉ cần bạn có thẻ visa, paypal, hay bất kỳ thẻ thanh toán quốc tế nào.

Bạn chỉ cần đăng ký tài khoản và chọn gói mua rồi thanh toán xong họ gửi toàn bộ thông tin về mail chứ không rườm rà như VN

Quan trọng và ưu đãi hiếm có nhà cung cấp nào có thể làm được là khi hosting của bạn bị hết hạn, bạn gửi mail trình bày cho được sử dụng hosting vài hôm để tìm tiền gia hạn tiếp. Họ sẵn sàng cho bạn khất 15 ngày thật tuyệt vời phải không nào :D

Còn chần chừ gì nữa hãy hốt nó luôn thôi. Tôi sẽ để đường link vào ảnh để các bạn tiện mua nhé

Chú ý hosting cpanel nhé :D

Link ẻm nó đây



Hoặc bấm vào đây

Qua những thông tin trên hy vọng các bạn có thể lựa chọn được một hosting tốt, trong trường hợp các bạn mua ở nước ngoài không biết cách thì hãy comment dưới đây hoặc inbox facebook.com/candythinh123, tôi sẽ hỗ trợ nhiệt tình



Chúc các bạn thành công!
Chi Tiết

Saturday, September 15, 2018

Check backlink đối thủ không cần tool chỉ trong vài giây

Anh em đang quá đau đầu vì SEO từ khóa mãi không thể vượt qua đối thủ, kì hạn báo có thì sắp đến, anh em đang lo lắng vì từ khóa SEO xếp giao không lên. Anh em muốn tìm hiểu đối thủ một cách rất chi tiết về backlink ở đâu? SEO keyword ở đâu? Tuy nhiên, Anh chị em không có tool để check, làm sao bây giờ? Anh em cứ bình tĩnh, bởi hôm nay mình sẽ hướng dẫn AE check backlink đối thủ qua google

Thông thường các anh em làm chắc hẳn check theo cú pháp “từ khóa + forum/ từ khóa+diễn đàn ” đúng không nào :D, ầy cái đó là quá đơn giản,  bây giờ mình muốn check backlink toàn site hay backlink từ khóa ở diễn đàn chất của đối thủ như thế nào nhỉ? Tất cả sẽ có ngay thôi!

Bỏ tool check backlink mất phí vào xó hết nhé các anh em nghèo :D

Nào chúng ta cùng tìm hiểu

OK! Mình sẽ không nói dài dòng nữa và thực hành check backlink đối thủ ở diễn đàn chất chi tiết nhất

Rất đơn giản anh em ạ! Hãy cùng mình thực hành nhé!

Thứ nhất: Check backlink đối thủ toàn trang

Các anh em vào google gõ theo cú pháp "forum:tên website" chỉ cần vậy là chúng ta đã biết đối thủ backlink chỗ nào rồi đó

Ví dụ ở đây mình thích sàn gỗ nên mình check với web sanngoaitroi.com các anh em nhìn ảnh bên dưới nhé!

Check backlink đối thủ không cần tool chỉ trong vài giây

Đó các anh em thấy dễ ăn không ahii.

Thứ hai: Check backlink đối thủ theo từ khóa

Còn check từ khóa của một website thì như thế nào? Anh em có nôn nóng không? Nói thầm nhé, chẳng có gì để check hết :D. Đùa vậy thôi mình sẽ check cho anh em xem, mà đây là bản quyền của mình đó, làm thử nếu ok thì cho mình một like và một chia sẻ lần sau mình sẽ viết bài và làm video hướng dẫn các anh em SEO top trang nhất trong 1 tháng.

Mình nói đến đây không biết có anh em nào “lót dép ngồi hóng” không nhỉ hãy cùng điểm danh ở dưới bình luận nhé các anh em đồng “giâm” Đừng ném gạch vì mình viết sai chính tả nhé sợ Xếp Gô hiểu nhầm web mình là web xxxx :D.

Thôi mình không nói luyên thuyên nữa bắt tay vào thí nghiệm cho anh em xem

Cho phép mình gọi với tên cao sang “kỹ thuật kiểm tra backlink từ khóa của đối thủ không dùng tool ” này né

Anh em làm theo cú pháp "forum:Tên site+từ khóa" rồi tìm thôi. Hãy nhìn ảnh dưới đây, ví dụ mình làm với từ khóa: sàn gỗ ngoài trời



Đó anh em thấy phê không tòa forum khủng tha hồ backlink để từ khóa lên top ha!

Mình đã hướng dẫn các anh em thủ thuật tìm backlink đối thủ bằng tay rồi đó. Nhớ theo dõi Thủ thuật SEO top thường xuyên để nhận được những chia sẻ hay và bổ ích. Thanks all


Chi Tiết

Thursday, September 6, 2018

Quy trình SEO website lên top chỉ trong vài giây

Quy trình SEO một website là cụm từ khóa mà các bạn mới chân ướt chân ráo tìm bước vào nghề SEO, thực sự đây là một vấn đề không quá khó để anh em tìm kiếm vì đã có rất nhiều website viết về nó, nhưng có một số bài còn quá nhiều dài dòng không đánh đúng trọng tâm khiến anh em khó hiểu. Vậy nên hôm nay mình xin đúc kết lại và đưa ra cái ngắn gọn nhất về quy trình SEO website lên TOP, Anh em cùng mình đi vào trận nhé



Quy trình SEO một website đơn giản và hiệu quả

Cũng giống các bài viết về quy trình SEO khác nhưng mình sẽ nói đơn giản và theo ý dễ hiểu nhất để anh em dễ hình dung nhé

Quy trình SEO website gồm 4 bước cơ bản sau:

Bước 1: Nguyên cứu thị trường và từ khóa
1.1 Xác định mục tiêu kinh doanh của bạn từ đó lựa chọn đúng hướng đi cho mình
1.2 Nguyên cứu thị trường bạn phải hiểu rõ sản phẩm của mình nó chiếm vị trí như thế nào, xu hướng hay có cơ hội như thế nào
1.3 Nghiên cứu đối thủ gồm đang làm gì? chiến lược seo ra sao, seo từ khóa nào đứng ở tốp mấy và đặt link liên kết ở đâu(kiểm tra 8 vị trí trên trang nhất google)
1.4 Nguyên cứu từ khóa gồm những từ khóa đang có xu hướng tìm kiếm nhiều nhất của khách hàng (khách hàng tìm những từ khóa nào ở sản phẩm bạn đang kinh doanh)

Xem thêm Cách seo top nhanh từ backlink dofolow my maps của google chi tiết

Bước 2 Tối ưu onpage website của bạn
Bước 3 Tối ưu bên ngoài của website
Bước 4 Đo lường kiểm tra đánh giá và điều chỉnh

Thế là mình đã xong phần quy trình seo website rồi đó các bạn mới học SEO chỉ cần nắm rõ thì sẽ seo top thành công
Chi Tiết

Friday, April 20, 2018

Cách seo top nhanh từ backlink dofolow my maps của google chi tiết

Hi! anh chị em, sau một thời gian ẩn giật giữa rừng sâu để ngâm cứu SEO, Tội ngộ ra một điều SEO từ khóa lên top không đơn thuần chỉ là đăng mấy bài gọi là chuẩn SEO lện web rồi back link vào diễn đàn vỡ vẩn gì đó mà thứ hạng từ khóa của mình sẽ được đứng hạng đầu google, mà SEO thì phải có nghệ thuật và đi đúng hướng. Vậy nên, hôm nay tôi quyết định share cho mấy anh chị đang khổ sở chật vật vì từ khóa làm lên làm xuống mà không có kết quả gì.


Chắc hẳn, mọi người rất muốn biết ngay chứ không phải đọc những dòng chữ linh tinh mà chẳng có tác dụng và mỏi mắt đúng không? Đừng vội nôn nóng, “từ từ khoa sẽ to” :D để biết kỹ thuật SEO này có hiệu qua ra sao, tôi xin ví dụ từ khóa của mình là sửa cửa cuốn trước đây bị mấy thằng cờ hó ddos nó đang ở top 1 tự nhiên mất khỏi google, lúc đó đứng ngồi không yên, tìm mọi cách để cứu nhưng không ăn thua. Tình cờ tôi tim trên mạng để mua một mặt hàng, thấy web người ta có trong bản đồ, bất thình lình tôi nghĩ đến từ “My  Maps” (cái này không phai xác mình địa chỉ doanh nghiệp lên maps nhé), rồi tôi bắt đầu nghĩ đến khoảng thời gian mà tôi chưa học seo, chỉ là nghịch và cũng có khá nhiều trafic  về trang facebook chứ không phải website.

Từ đó tôi mới thử áp dụng vào website nào ngờ một ngày đẹp trời tự nhiên từ khóa lại về vị trí cũ, cả từ khóa mói nó cũng lên và bắt đầu xây dựng theo hình thứ đó và đặt cho nó cái tên củ chuối là “ngồi rung đùi chờ từ khóa lên top nhờ và hàng chục my maps ”. Vậy để xây dựng cái này anh em cần làm gì hãy đọc tiếp nhé !

Cách seo top nhanh từ backlink dofolow my maps của google

Các bước thự hiện backlink my maps như sau:


Đâu tiên các anh em phải có tài khoản gmail lưu ý càng nhiều càng ít nhé

Sau đó đăng nhập vào mail sẵn tiếp truy cập vào  https://mymaps.google.com/ chọn TẠO BẢN ĐỒ MỚI như thế này nè

Gõ lên ô search địa chỉ của mình ví dụ website của tôi ở 34 Hoàng Đạo Thúy, Trung Hòa Nhân Chính, Cầu Giấy, Hà Nội thì tôi gõ ở đó lưu ý càng gần với địa chỉ của mình thì càng tốt,=> ấn vào thêm vào bản đồ.

Chúng ta gõ tiếp Hà Nội và thêm vào, nên có cả trường Việt Nam để dễ SEO nhé


Bước tiếp theo quan trong đấy các anh em làm theo ảnh hướng dẫn nhé


À quên khi chúng ta ấn vào Bản đồ không có tiêu đề để đổi tến nó xuất hiệ ra hôp box để mình đổi tên và bên dưới là mô ta chính là nơi để mình backlink nhé

(Chẳng hạn: Mô tả và lĩnh vực hay web của mình có chứa từ khóa (cái này không sợ spam nhé làm nhiều my maps cũng không sao)

Sau đó là link trần bất kỳ mình muốn backlink cho từ khóa
Địa chỉ: Tòa Nhà 34T, Hoàng Đạo Thúy, Trung Hòa Nhân Chính, Trung Hoà, Cầu Giấy, Hanoi
Email: Thinhtk41@gmail.com
SĐT: 01298123967
VD: http://www.thuthuatseotop12h.com )

Thế là xong phần backlink dofolow chất lượng từ google, đừng vội nhe răng ra cười nhé đấy chỉ là xòng phần đầu thôi cái quan trọng nhất là mình phải công khai mới có traffic vì nó đăng ở chế độ riêng tư tất nhiên là có traffic nhưng đó chỉ là của boot google thôi hehe, anh chị ấn vào nút chia sẻ và chọn chế độ công khai để người dùng có thể xem và tìm kiếm được

Như phần đầu tôi đã nói càng nhiều mail càng tốt có nghĩa là chúng ta có thể tạo nhiều cài khác nhau

Bật mý tí không lại hỏng :D


Một mail tốt nhất tạo 2 cái thôi nhé, 50 mail tạo ra 100 my maps, tưởng tượng xem nếu 100 lượt truy cập vào mỗi cái/ tháng (back link chất) thì lượng traffic tự nhiên sẽ khủng khiếp đến như thế nào, và từ khóa của mình sẽ top. Và sau này mình đưa doanh nghiệp lên maps google dễ dàn


Và đây là thành quả của mình đây ahii



Trên đây là cách lấy backlink dofolow từ my maps google mà tôi đã hướng dãn anh em rồi đó, hy vọng sẽ giúp anh em đẩy top từ khóa hiệu quả, thấy bài viết hay thì chia sẻ nhé. Thank all

Mà anh em nào muốn làm web hay tối ưu website thì gọi cho tôi theo số điện thoại:01298123967


Chi Tiết

Sunday, March 25, 2018

How to turn off startup programs with Windows 7 / 8.1 / 10

This article will guide you how to turn off some, the programs startup with Windows 7 / 8.1 / 10 to make system startup faster and work better, some programs have caused many annoyances, The system will have to handle a lot of startup so that our computer starts up slowly or slows down and results in a lot of work efficiency.
Step 1: Open Task Manager by:
- For Windows 7: Press the key combination Windows + R, enter msconfig and press enter, a dialog box will appear to you on the Startup tab will see the programs start with Windows.
- For Windows 8.1 / 10: Right-click the Task Bar at the bottom of the screen, select Task Manager, go to the Startup tab.

Step 2: Select the program you want to disable and click the Disable button. You should note that the system should not be offline.
In the Status column is the status column, if it is Enable, that is, the application is allowed to start the same, if Disable is disabled. If you want to re-enable the disabled application just select it and click the Enable button. And finally, restart the machine to see the change.

Note:
- Some applications start with Windows should shut down: CocCoc Update, CCleaner ...
- Applications should not shut down: Unikey, the system program. Because Unikey is very light and does not affect the system, it will cause the system to crash so you have to be careful.

Chi Tiết

Tuesday, March 6, 2018

Tự tạo màn hình khóa One Piece độc đáo cho điện thoại Android chi tiết

– Chỉ với vài thao tác đơn giản, các fan One Piece sẽ có ngay màn hình khóa cá tính tuyệt đẹp cho riêng mình.
Các bước thực hiện đơn giản như sau:
Bước 1: Bạn vào Google Play(CH play) tìm và tải ứng dụng (App) màn hình khóa CM Locker, hoặc quét nhanh mã QR bên dưới.
Nhà phát triển: Hãng Cheetah Mobile.
Tương thích: Hệ điều hành Android 4.0 trở lên.
Phiên bản mới nhất: 3.1.9.
Dung lượng: 5,8MB.
Giá: Miễn phí.
Đánh giá: 4,7 sao.
Link tải: https://play.google.com/store/apps/details?id=com.cmcm.locker.


Bước 2: Bạn tải bộ icon One Piece tuyệt đẹp tại: https://goo.gl/qNwp2V (dung lượng 1MB),(Chú ý xem phần mô tả trên ytb để lấy link tải ico nhé :D) dùng ứng dụng RAR (cho Android) giải nén sẽ thu được thư mục chứa các icon One Piece (dạng ảnh PNG) và ảnh nền.

n



Bước 3: Chạy ứng dụng CM Locker, Chúng ta vào mục Password, trượt xuống cuối Các bạnchọn kiểu hiển thị mật khẩu dạng hình ảnh (kế bên trái khung None).



Tiếp theo, bạn hãy chạm vào từng ảnh nhỏ đại diện cho các con số > chọn Choose from photo album > duyệt vào thư mục chứa ảnh One Piece đã giải nén ra lúc nãy > chọn ảnh > nhấn Done. Nhớ chọn thay luôn ảnh lớn ở trên cùng nhé. Đến đây, bạn chỉ việc đặt pattern cho màn hình khóa nữa là xong việc.
Bước 4: Bạn quay về giao diện chính của CM Locker, bạn vào mục Wallpaper > Local > chọn ảnh nền One Piece mẫu trong thư mục(download) tải về > nhấn Apply.

Có thể bạn thích: Hướng dẫn tạo giao diện anime cho điện thoại android siêu đẹp

Bước 5: Thử khóa điện thoại lại và kiểm tra kết quả.



Chi Tiết