Thứ Tư, 27 tháng 6, 2018

KHUNG ĐĂNG KÝ NHẬN BÀI VIẾT QUA EMAIL TUYỆT ĐẸP CHO BLOGSPOT

Hello xin chào các bạn đã quay lại với Hùng Coder Blog's!
Bài viết này mình sẽ hướng dẫn các bạn làm một khung đăng kí nhận bài viết qua email tuyệt đẹp hay nói cách khác là Subscribe Box Widget, khung đăng kí nhận bài viết này sẽ giúp blog của các bạn thêm phần nào đó Bắt Mắt hơn nhìn sẽ đẹp hơn, các bạn theo dõi cách làm sau đây nhé.
khung dang ky nhan bai viet qua email tuyet dep cho blogspot

CÁC BƯỚC THỰC HIỆN

Bước 1: Các bạn sao chép và dán đoạn code sau đây trước thẻ ]]><b/:skin>.
.subs-field{background:linear-gradient(107deg,#355c7d,#8fc6ff);color:#fff;padding:20px;border-radius:10px}.subs-field h4{margin:0;font-size:18px;font-weight:500;letter-spacing:.5px}.subs-field input{outline:none;width:92.5%;padding:0 10px;height:35px;border:none;border-radius:5px;margin:0 0 15px}button.button-susu{background:#130426;outline:none;color:#fff;font-family:'Google sans';font-weight:500;padding:10px;width:100%;border:none;border-radius:5px;letter-spacing:.5px;transition:all .1s ease-in-out;cursor:pointer;text-transform:uppercase}button.button-susu:hover{opacity:.7}.subs-field p{font-size:13px}.newstitle,.p-title{color:#355c7d;font-weight:500}#blanternews{display:none;margin:22px 0}#blanternews h4{background:#fff;border:1px solid #ddd;display:block;width:200px;margin:0 auto 15px;padding:10px;border-radius:10px}#linnews marquee a{margin:0 10px}.newstitle{float:left;padding:4px 10px;border-left:2px solid #355c7d}#linnews marquee{float:right!important;width:84%!important;line-height:2}#blanternews blanter{background:#fff;display:inline-block;border:1px solid #ddd;padding:10px;border-radius:10px}kbd{display:inline-block;border:1px solid #ccc;border-radius:4px;padding:.1em .5em;margin:0 .2em;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 2px #fff inset;background-color:#f7f7f7}

Bước 2: Các bạn vào bố cục và tạo một tiện ích HTML/Javascript mới và dán đoạn code sau đây vào nó.
<div class='clear'></div>
<div class='widget HTML' data-version='1' id='HTML4'>
<div class='widget-content'>
<form action="https://feedburner.google.com/fb/a/mailverify" method="post" onsubmit="window.open('https://feedburner.google.com/fb/a/mailverify?uri=DuniaBlanter', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true" target="popupwindow">
<div class="subs-field">
<h4>Theo Dõi Bài Viết Mới</h4>
<p>Đăng ký để nhận các bài viết mới qua email của bạn hoàn toàn miễn phí</p>
<input class="validate" name="email" required="" type="email" placeholder='Email của bạn...'/><input name="uri" type="hidden" value="DuniaBlanter"/><input name="loc" type="hidden" value="en_US"/><button class="button-susu" type="submit">Subscribe Now</button>
</div></form>
</div>
</div>
Bước 3: Lưu lại và xem kết quả nào.

LỜI KẾT

khung đăng kí nhận bài viết trên đây mình thấy trong một Template mà IDBLATER bán thấy nó rất đẹp nên lấy code về chỉnh màu lại và hướng dẫn cho các bạn, cảm ơn các bạn đã đọc bài viết chúc các bạn thành công.!

Tôi Muốn Một Mối Tình Bình Dị.

Tôi muốn có một mối tình bình dị...
Cả ngày không nhắn tin quá nhiều nhưng khi rảnh sẽ lập tức hỏi thăm đối phương

Tôi muốn thương một người một cách thật bình thường.

Không cần cả ngày kè kè bên nhau vì cuộc sống ai cũng có điều phải lắng lo, suy nghĩ, công việc mỗi người một khác không thể san sẻ thì không nên tạo thêm ưu phiền.

Tôi muốn thương một người, người mà sau một ngày làm việc mệt mỏi, có thể không cần gặp gỡ nhưng sẽ dành cho nhau những cuộc điện thoại, những dòng tin nhắn thủ thỉ, cùng nhau xoa dịu bao sóng gió của cuộc đời.

Tôi muốn thương một người, người mà không khoá chặt bầu trời của nhau. Không hỏi nhau quá sâu. Chỉ khi nào muốn nói, sẽ tự mở miệng vì muốn tôn trọng nhau.

Tôi muốn thương một người, thương đủ sâu để đau, đủ thấm để nhớ nhau, nhưng vẫn đủ sức để khi không cần nhau có thể buông tay nhau không níu kéo.



Tôi muốn thương một người, chúng tôi đặt mình vào vị trí của nhau, đặt mình vào lắng lo và đắn đo của nhau để suy nghĩ. Chúng tôi học cách sống cho đời, cho người, không chỉ sống cho riêng mình.

Tôi muốn thương một người đủ kiên nghị và vững chãi cho tôi dựa dẫm khi cuộc đời đầy chông chênh, cho tôi chỗ dựa khi ngoài đời kia mệt mỏi quá. Không cần nói vỗ về chỉ cần ôm chặt tôi yên lặng như thế cũng đủ khiến tôi nhẹ lòng.

Tôi muốn thương một người, không phô trương, không ồn ào. Bình thản nắm tay đi giữa nhân gian.

Thật lòng tôi muốn thương 1 người như thế!

Thứ Hai, 25 tháng 6, 2018

SHARE TÀI LIỆU HỌC TIẾNG NHẬT MIỄN PHÍ

2. Học chữ Kanji với bảng 1000 chữ Kanji trong tiếng Nhật
https://drive.google.com/…/0B_u3dREM0Ie9RmpFMmVxNkhoMXM/view
3. Các mẫu câu trong tiếng Nhật thực dụng
https://drive.google.com/…/0B_u3dREM0Ie9cnF4d2xPZURnRWc/view
4. Giáo trình tiếng Nhật Kanzen Master 1 kyuu grammar tiếng Việt
https://drive.google.com/…/0B_u3dREM0Ie9Tk1TaWp3ZkJ2dFU/view
5. Học tiếng Nhật với 40 Động từ thông dụng nhất
https://drive.google.com/…/0B_u3dREM0Ie9eXNlYXZrMTRCUGc/view
6. Một số tính từ tiếng Nhật ( Kana )
https://drive.google.com/…/0B_u3dREM0Ie9SXRFNXV0aTcwZnM/view
7. Giáo trình minano nihongo 1 tiếng việt
https://drive.google.com/…/0B12DCNP3dpz6ZTA0bkpvcFJ2MDg/view
8. Giáo trình minano nihongo 2 tiếng việt
https://drive.google.com/…/0B_u3dREM0Ie9WlFRRXRVVHVjQms/view
9. Giáo Trình 50 bài từ vựng và ngữ pháp Mina no Nihongo ( FPT )
https://drive.google.com/…/0B_u3dREM0Ie9TEYyY1NHbjRENGM/view
10. Giáo trình tiếng Nhật Minna no Nihongo Shokyuu De Yomeru Topikku 25
https://drive.google.com/…/0B_u3dREM0Ie9cUhFTWtwLUZ3VkU/view
11. Tài liệu Từ vựng và Ngữ pháp N5
https://drive.google.com/…/0B_u3dREM0Ie9OXJORVdSa29IVnc/view
12. Tài liệu Từ vựng và Ngữ pháp N4
https://drive.google.com/…/0B_u3dREM0Ie9UWpSbU1YUGtMbVk/view
13. Tài liệu Từ vựng và Ngữ pháp N3
https://drive.google.com/…/0B_u3dREM0Ie9bnRCSGVnaFo0U3c/view
14. Cách viết thư trong tiếng Nhật
https://drive.google.com/…/0B_u3dREM0Ie9WXdQaVVkcmJXZDA/view
17. Tài liệu luyện thi N4 và N5 Gokaku Dekiru, đáp án và audio
https://docs.google.com/…/18A3fT9O8Pzy92lXOlsM5FbsHzN3…/edit
18. Tài liệu học tiếng Nhật Kanji Look and Learn, pdf
https://docs.google.com/…/1R4gOp3SU5a9aanqefp5sDmriq5L…/edit
19. Trọn bộ giáo trình Shin Nihongo No Kiso | Audio | Phần mềm học
https://docs.google.com/…/1hnBKiOLAUviSOXvLYaQd9RT55rw…/edit
20. Giáo trình 1945 chữ Hán thông dụng trong tiếng Nhật, pdf
https://drive.google.com/…/0B_u3dREM0Ie9UGhIU0pyVzlscG8/view
21. Từ điển học Tiếng Nhật bằng hình ảnh, download pdf – Learn Japanese Picture Dictionary
https://drive.google.com/…/0B_u3dREM0Ie9dzVyYVpuMEsxbFE/view
22. Sách bài tập Minna no Nihongo I – II – Kaite Oboeru
https://drive.google.com/…/0B_u3dREM0Ie9MWRhQ3JsbU0wZm8/view
23. Sách bài tập ngữ pháp Minna no Nihongo I-II Hyoujun Mondaishuu
https://drive.google.com/…/0B_u3dREM0Ie9aDU1TENaRVJYb0E/view
24. Tài liệu hướng dẫn tập viết chữ Hiragana và Katakana
https://drive.google.com/…/0B_u3dREM0Ie9TVFFdmt1cDZwVXM/view

Chủ Nhật, 24 tháng 6, 2018

Bình Yên...

Đọc được đâu đó 1 câu nói rất hay và ý nghĩa:

Tìm người để cởi bỏ quần áo và ngủ với nhau thì dễ lắm ai cũng có thể làm được.


Nhưng để tìm 1 người mà để mình mở lòng cho họ thấy những góc khuất, những trăn trở, chia sẻ với họ những nỗi sợ, những khó khăn, những hi vọng, những ước mơ và kể cả tương lai thực sự rất khó để tìm thấy

Thứ Bảy, 23 tháng 6, 2018

[ SHARE ] PSD CMND CHUẨN 2018 ( 2 NAM,1 NỮ )

Chào mọi người,hôm nay mình sẽ chia sẻ psd cmnd chuẩn mà một tricker vừa mới edit hôm qua.
Mong mọi người ủng hộ mình để có thể ra nhiều bài bổ ích hơn nhen.
 



Thứ Sáu, 22 tháng 6, 2018

[ SHARE ] FULL WIND COVER BÌA CỰC CHẤT 2018

Chào mừng mọi người đã quạy lại với Blog.Hôm nay mình sẽ share full wind cover bìa cực chất 2018 nhân dịp chiến thắng của Nga Vs Ai Cập.

 

 


 

Thứ Ba, 19 tháng 6, 2018

[ SHARE ] FONTS CHỮ TIẾNG NHẬT ĐẸP

Chào mừng mọi người đã quay lại với blog.Hôm nay mình sẽ chia sẻ mọi người 1 bộ font chữ nhật tuyệt đẹp.
Một trong số font chữ 

Thứ Hai, 18 tháng 6, 2018

[ SHARE ]bộ tài liệu Javascript từ cơ bản đến nâng cao


Hello, đêm qua Lionel Messi đá hụt penalty và làm mọi người thất vọng vô cùng. Điều đó không quan trọng, quan trọng nhất là đã làm bay nhà cửa, xe cộ , điện thoại, laptop, .v.v.v



.Và nhân dịp đó mình xin chia sẻ bộ tài liệu Javascript từ cơ bản tới nâng cao mà mình sưu tầm được.

Chủ Nhật, 17 tháng 6, 2018

SHARE WEB LẤY TOKEN MIỄN PHÍ MỚI NHẤT THÁNG 2018

Chào tất cả các bạn! Hôm nay mình sẽ chia sẽ cho các bạn web lấy token free do Star Tinh It phát triển.
Do mình không có token nên phải đi mua để up lên web nên số lượng token còn rất ít và token chỉ dùng để dame or buff sub facebook...


Cách thức vô cùng đơn giản các bạn chỉ cần vào website của mình và click vào xác nhận CAPTCHA và tiếp theo đó khi xác nhận thành công. Chúng ta bắt đầu ấn vào button "LẤY TOKEN"



Trong khi lấy Token từ site đó các bạn sẽ phải vượt qua 2 trang rút gọn link để ủng hộ chi phí duy trì và nâng cấp dữ liệu luôn tốt nhé. :) mọi người có thể tham khảo site đó qua link bên dưới. :)

Get Token

Chúc các bạn thành công :)

Thứ Bảy, 16 tháng 6, 2018

PSD ẢNH BÌA WORLD CUP 2018

Vậy là lại tới mùa WORLDCUP 2018  rồi , mọi người thì đang vui mừng phấn khởi , người thì cày thâu đêm suốt sáng  xem hết các trận bóng đá . Để giải toả được sự căng thẳng mệt mỏi thì hôm nay mình share mọi người 2 PSD Ảnh bìa World Cup mà mình vừa mới làm.Mong mọi người ủng hộ mình nhen.

LINK DOWNLOAD PSD 1 :
LINK DOWNLOAD PSD 2 :
CHIA SẺ BÀI VIẾT

Thứ Sáu, 15 tháng 6, 2018

PSD ẢNH BÌA BÀI HÁT ĐỪNG QUÊN TÊN ANH

Hello xin chào toàn thể mọi người đang từng ngày ghé thăm Blog của mình :D,tình cờ hôm qua lên Youtube nghe một bài hát mới ra rất hay của Hoa Vinh nên cover lun :v.
Ngoài kia bao la sóng gió , đừng quên tên anh 
Đừng quên đôi môi, ánh mắt hay giọng nói trầm lặng 
Vì người đàn ông em yêu mạnh mẽ , vẫn luôn cười mỗi khi đau 
Nếu yêu thêm người sau thì xin em cũng đừng quên tên anh . 


   DOWNLOAD


Lời kết : Trên đây mình đã chia sẻ psd ảnh bìa bài hát đừng quên tên anh.Nếu mọi người thích hãy nhấn share và theo dõi blog nha 

CHIA SẺ BÀI VIẾT

Thứ Ba, 12 tháng 6, 2018

PSD Ảnh Bìa Tuổi học trò Tháng Năm Rực Rỡ

Hello xin chào tất cả các bạn, chào mừng các bạn đã quay lại với Blog.
Chúc mọi người có một buổi sáng vui vẻ. Hôm nay mình sẽ mang tới cho mọi người một PSD Ảnh bìa về tuổi học trò cực đẹp.Kỉ niệm học trò là  những tháng năm vô cùng rực rỡ trong chúng ta.


7 TRANG WEB CỰC KÌ THÚ VỊ VÀ HỮU ÍCH DÀNH CHO BẠN

Xin chào các bạn đã lâu rồi mình không đăng bài trên Blog của anh Hùng. Hôm nay mình tìm kiếm trên mạng về những trang web hay và hữu ích nên thấy có một số web hay và thú vị nên mình đã nhanh chóng viết bài chia sẽ đến các bạn, một trong những trang web sau đây nó sẽ giúp bạn rất nhiều đấy đừng bỏ lỡ nhé. Và sau đây là 7 Trang Web Cực Kì Thú Vị Và Hữu Ích Dành Cho Bạn cùng xem nào.!
7 trang web cuc ki thu vi va huu ich danh cho ban

7 TRANG WEB HAY

pixelthoughts.co
Trang web này sẽ giúp bạn giải tỏa muộn phiền, stress bạn chỉ cần nhập điều khiến bạn lo lắng và ô "what's bothering you?" trang web sẽ an ủi bạn bằng lời động viên và một bản nhạc du dương.
weavesilk.com
Trang web này sẽ biến bạn thành một họa sĩ tài ba, chỉ cần vẽ nguệch ngoạc cũng sẽ thành những vệt sáng tuyệt đẹp, sau đó bạn có thể lưu tác phẩm để đời của mình và khoe với mọi người.
forgotify.com
Là một công cụ khám phá âm nhạc rất độc đáo, có hàng triệu bài hát chưa từng được ai nghe, trang web sẽ cho bạn một bài hát bất kỳ, và bạn sẽ là người đầu tiên nghe chúng, biết đâu bạn là người khám phá ra một siêu phẩm.
zoomquilt.org
Khi bạn vào web này và thấy đây chỉ là một bức tranh và được phóng to dần ra, nhưng bạn sẽ ngạc nhiên về sự vô tận của nó, ngồi ngắm trang web này cũng sẽ khiến bạn thích thú, thậm chí hơi ớn lạnh vì sự kì quái trong những hình ảnh này.
hackertyper.com
Bạn muốn tỏ ra nguy hiểm chứ gì? đây là cách dễ dàng và hiệu quả nhất, chỉ cần truy cập vào trang web này và gõ bất kỳ thứ gì trên bàn phím chúng sẽ biến thành những đoạn code y chang như hacker thứ thiệt vậy.
rainymood.com
Trang web này nghe tiếng mưa rất hay mỗi khi buồn, nó cũng có thể giúp bạn quên đi những nỗi buồn trong lòng không muốn tâm sự cùng ai.
futureme.org
Vào trang web này nhập nội dung, địa chỉ email của bạn và chọn thời gian, thật bất ngờ bổng dưng trong tương lai có một tin nhắn từ chính bạn trong quá khứ gửi đến bạn, cảm xúc lúc đọc thư của chính mình từ quá khứ lúc đó chắc vừa khóc vừa cười mà đọc nhỉ.

LỜI KẾT

Bạn thấy thế nào có hay không và bạn thấy trang web nào là hữu ích và hay nhất? mình ấn tượng nhất là trang web cuối cùng số 7 rất hay luôn đọc thư của chính mình trong quá khứ và thấy hay đừng quên để lại nhận xét nhé.
Xem thêm tại: Tiểu Bảo Blog


Thứ Hai, 11 tháng 6, 2018

Nâng cấp Threaded Comments Blogger với ảnh, video và syntax

Xin chào các bạn, ở bài viết trước tôi đã hướng dẫn cho các bạn cách chèn bộ icon tùy chỉnh vào Threaded Comments Blogger, và trong bài viết này chúng ta sẽ tăng lực cho nó bằng việc chèn thêm ảnh, video youtube và syntax code

Khung bình luận của blogger thô sơ tới nỗi chèn vài thẻ html cơ bản vào cũng bị cấm, vì vậy không còn cách nào khác ta cần tạo các short code và sử dụng js để chuyển chúng về tag html. Nói vậy có nghĩa không chỉ có ảnh (thẻ img), video (thẻ iframe), syntax code (thẻ pre) mà với bất kì thẻ html cơ bản nào ta đều có thể dùng js để biến đổi được


Trong bài viết này tôi sử dụng SyntaxHighlighter 3.0.83 (theme Eclipse, 3 module js-html-css) phục vụ cho làm đẹp code và fancybox 3.3.5 phục vụ cho việc xem ảnh trong khung bình luận ở chế độ lightbox. Và đương nhiên điều kiện bắt buộc là bạn không tắt blogger comment trên trang của mình

Đăng nhập vào trang quản trị và vào mục chỉnh sửa HTML

Tìm tới
<b:includable id='threaded_comments' var='post'> 
mở rộng nó ra và chèn code js vào SAU
<div class='comments-content'> 
như hình


<!-- Required for SyntaxHighlighter -->
<script src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js'/>

<!-- Custom Theme for SyntaxHighlighter : http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/ -->
<link href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCoreEclipse.min.css' rel='stylesheet' type='text/css'/>
<link href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeEclipse.min.css' rel='stylesheet' type='text/css'/>

<!-- Module for SyntaxHighlighter : http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/ -->
<script src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.min.js'/>
<script src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJScript.min.js'/>
<script src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushCss.min.js'/>

<!-- Required for fancybox -->
<link href='//cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.css' rel='stylesheet' type='text/css'/>

<script type='text/javascript'>
//<![CDATA[
function smartComment() {
a = document.getElementById("comment-holder");
b = a.innerHTML;
b = b.replace(/\[pre\]/gi, "<pre>");
b = b.replace(/\[pre js\]/gi, "<pre class='brush:js'>");
b = b.replace(/\[pre html\]/gi, "<pre class='brush:html'>");
b = b.replace(/\[pre css\]/gi, "<pre class='brush:css'>");
b = b.replace(/\[\/pre\]/gi, "</pre>");
b = b.replace(/\[img\].*?'.*?\[\/img\]/gi, "");
b = b.replace(/\[img\]/gi, "<img data-fancybox='gallery' src='");
b = b.replace(/\[\/img\]/gi, "'/>");
b = b.replace(/\[youtube\].*?'.*?\[\/youtube\]/gi, "");
b = b.replace(/\[youtube\]https:\/\/youtu.be/gi, "<iframe width='560' height='315' src='https://www.youtube.com/embed");
b = b.replace(/\[youtube\]https:\/\/www.youtube.com\/watch\?v=/gi, "<iframe width='560' height='315' src='https://www.youtube.com/embed/");
b = b.replace(/&amp;feature=/gi, "?rel=0' '");
b = b.replace(/\[\/youtube\]/gi, "?rel=0' frameborder='0' allowfullscreen></iframe>");
a.innerHTML = b
}
smartComment();

$("#comment-holder img").each(function() {
$(this).attr('data-src', $(this).attr("src"));
});

SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();

$(window).on('load', function() {
var t = document.createElement("script");
t.src = "//cdnjs.cloudflare.com/ajax/libs/fancybox/3.3.5/jquery.fancybox.min.js";
document.body.appendChild(t);
$("#comment-holder img[data-fancybox]").fancybox();
});
//]]></script>

Trong đó

Ví dụ tôi muốn thêm syntax cho code php thì phải thêm link nhúng
<script src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPhp.min.js'/>

và tạo thêm short code
b = b.replace(/\[pre php\]/gi, "<pre class='brush:php'>");


Phần màu đỏ là short code bạn tự tạo tùy thích, phần màu xanh phải chuẩn Brush aliases của SyntaxHighlighter không code nó không làm đẹp đâu nhé
Theo đó với code trình bày ở trên các short code khi bình luận sẽ là
chèn ảnh: [img]link ảnh[/img]
chèn video youtube: [youtube]link video[/youtube]
chèn code HTML: [pre html]code[/pre]
chèn code CSS: [pre css]code css[/pre]
chèn code JS: [pre js]code js[/pre]
... (bạn có thể thêm các module syntax tùy theo mục đích sử dụng)

Link ảnh: là link dạng trực tiếp ví dụ https://i.imgur.com/0GZdCna.jpg Link video: là link video trên youtube, copy trên thanh địa chỉ của trình duyệt ví dụ https://www.youtube.com/watch?v=MhQKe-aERsU
Các đoạn code js, html, css phải được convert các kí tự đặc biệt, bạn có thể tự tạo tool convert để người dùng chuyển đổi trước khi bình luận

KẾT LUẬN: kết hợp với bộ icon và thêm các chức năng trong bài viết này, chắc chắn khung bình luận blog của bạn sẽ rất đắt khách.

Để lại bình luận nếu gặp khó khăn và chúc thành công !
Nguồn : Hung1001.Blog

SHARE FULL TÀI LIỆU LẬP TRÌNH

 Lập trình viên là người thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm). Bằng cách thao tác các đoạn mã (các ngôn ngữ) trên các công cụ lập trình, họ có thể tạo ra các chương trình mới, sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính.
Các lập trình viên thường có thể làm việc trên nhiều ngôn ngữ lập trình, trong đó chủ yếu là lập trình web Java, C++, php, Asp, ASP.Net, Visual Basic.Net và C#. Và để hiểu rỡ hơn về lập trình hôm nay mình xin chia sẻ bộ tài liệu cực khủng: 100+ khóa học (vẫn đang update) tiếng Việt, tiếng Anh bao gồm tất cả những kiến thức một lập trình viên cần có.
Bộ Tài Liệu này gồm :
- Lập trình căn bản (C, C++, C#, Java)
- Lập trình Web (PHP,Java,Javascript Framework,HTML5,CSS3,Boostrap..)
- Lập trình Mobile (Android, IOS, React Native)
- BigData, DataScience
- Git,GitHub,ChatBot,Database,Linux,LinQ,Python..etc






Download và xem tài liệu :   Tải Về
Lời Kết :
Trên đây mình đã chia sẻ  tài liệu cực khủng về lập trình mà mọi người cần biết.Nếu mọi người thích hãy nhấn theo dõi Blog để có được những tài liệu bổ ích hơn nhen.



Chủ Nhật, 10 tháng 6, 2018

Material Design Dialog Box with jQuery


Ở bài viết trước tôi đã giới thiệu cho các bạn 1 hộp thông báo ẩn hiện responsive đơn giản với js và css. Trong bài viết này, chúng ta sẽ cho nó màu mè thêm 1 chút bằng việc thiết kế theo phong cách Material.

Trong thủ thuật này tôi sử dụng font awesome 5

Tích hợp các thư viện cần thiết nếu blog bạn chưa có, chèn trước thẻ đóng </head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href='https://use.fontawesome.com/releases/v5.0.13/css/all.css' rel='stylesheet' type='text/css'/>

Viết CSS
.material-noti-content,
.material-noti-overlay {
visibility: hidden;
opacity: 0
}

.material-noti-wrap {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: -10
}

.material-noti-content {
background: #fff;
padding: 25px;
left: 50%;
top: 40%;
position: relative;
-webkit-transform: translateX(-50%) translateY(-50%) !important;
transform: translateX(-50%) translateY(-50%) !important;
transition: all .3s ease-in-out;
max-width: 60%;
z-index: 1000;
border-radius: 4px;
box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .14), 0 11px 15px -7px rgba(0, 0, 0, .12), 0 24px 38px 3px rgba(0, 0, 0, .2)
}

.material-noti-btn {
z-index: 1000;
text-decoration: none;
font-size: 18px;
color: #111
}

.material-noti-overlay {
position: fixed;
top: 0;
background: rgba(0, 0, 0, .59);
left: 0;
right: 0;
bottom: 0;
margin: 0;
z-index: 999;
transition: all .4s ease-in-out
}

.material-noti-title {
margin-bottom: 15px;
font-weight: 700;
font-size: 20px
}

.material-noti-content.shows,
.material-noti-overlay.shows {
visibility: visible;
opacity: 1
}

.material-noti-content.shows {
top: 50%
}

.material-noti-wrap.shows {
z-index: 1000
}

.material-noti-text {
font-size: 16px;
line-height: 1.5
}

.close-noti {
font-size: 20px;
color: #111;
position: absolute;
top: 10px;
right: 10px;
margin: 10px 8px;
padding:7px 10px
}

.done-wrap {
margin-top: 20px;
text-align: right
}

.done {
font-size: 14px;
color: #fff;
background: #3949ab;
padding: 9px 13px;
font-weight: 700;
border-radius: 3px;
text-transform: uppercase;
text-decoration: none
}

.done:hover,.close-noti:hover {
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
cursor: pointer;
transition: all .4s ease-in-out
}

Đặt code HTML sau thẻ mở <body>
<div class='material-noti-wrap'>
<div class='material-noti-content'>
<div class='material-noti-title'>Notification</div>
<div class='material-noti-text'>
<!-- Viết thông báo vào đây -->
</div>
<div class='done-wrap'>
<a class='close-noti' href='javascript:void(0)'><i class='fas fa-times'></i></a></div>
<div class='done-wrap'>
<a class='done' href='javascript:void(0)'>Done</a></div>
</div>
</div>
<div class='material-noti-overlay'></div>



Đặt code js trước thẻ đóng </body>
<script type='text/javascript'>//<![CDATA[
$(document).ready(function() {
$(".close-noti,.done").click(function() {
$(".material-noti-wrap,.material-noti-content,.material-noti-overlay").removeClass("shows")
})
}), $(document).ready(function() {
$(".material-noti-btn").click(function() {
$(".material-noti-wrap,.material-noti-content,.material-noti-overlay").toggleClass("shows")
})
});
//]]></script>

Tạo button mở thông báo, đặt ở bất kì vị trí nào bạn mong muốn
<a class='material-noti-btn' href='javascript:void(0)' title='Notification'><i class='far fa-bell'></i></a>
DEMO ở thanh MENU

Chúc các bạn thành công :)

Nguồn : Hung1001.blog


Thứ Bảy, 9 tháng 6, 2018

Tạo khung chứa code có nút copy to clipboard cho blogspot

Trong bài viết Tạo khung chứa code có nút copy to clipboard cho blogspot chúng ta đã tạo được một form rất chuyên nghiệp để chia sẻ code, tuy nhiên nhận thấy vẫn có nhiều bất tiện trong quá trình sử dụng, để khắc phục điều đó chúng ta sẽ nâng cấp lên version 2 dễ sử dụng hơn sẽ được trình bày chi tiết trong bài viết này.


Công cụ để tạo nên khung code này

  • jQuery
  • Font Awesome
  • ClipboardJS
  • Tooltip Bootstrap component
Bài viết sử dụng jQuery 3.3.1, Font Awesome 5, ClipboardJS 2.0.1Tooltip Bootstrap 3.3.7

Tích hợp CSS tooltip và CSS khung chứa code
.codeHeader{background-color:#f5f5f5;border:1px solid #e0e0e0;border-bottom:0;text-align:right;padding:6px 0}
.copy-text{font-size:14px;cursor:pointer;color:#707070;padding:7px 10px;border-left:1px solid #e0e0e0}
.copy-text:before{font-family:"font awesome 5 free";content:"\f24d";display:inline-block;margin-right:7px}
.copy-text:hover{color:#707070;background:#ccc}
pre copy{display:block;background:#f9f9f9;max-height:400px;font-size:14px;color:black;text-align:left;overflow:auto;border:1px solid #d3d6db;margin:auto;padding:16px;line-height:21px}
.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}
.tooltip.in{opacity:.9;filter:alpha(opacity=90)}
.tooltip.top{padding:5px 0;margin-top:-3px}
.tooltip.right{padding:0 5px;margin-left:3px}
.tooltip.bottom{padding:5px 0;margin-top:3px}
.tooltip.left{padding:0 5px;margin-left:-3px}
.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}
.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}
.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}
.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}
.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}
.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}
.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}
.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}
.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}
.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}

Tích hợp jQuery, Font Awesome 5, chèn code trước thẻ </head> (bỏ qua nếu đã tích hợp)
<link href='https://use.fontawesome.com/releases/v5.0.13/css/all.css' rel='stylesheet' type='text/css' />
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js'/>

Tích hợp ClipboardJS và Tooltip chèn code trước thẻ đóng </body>
<script src='https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.1/clipboard.min.js'/>
<script type='text/javascript'>//<![CDATA[
/* ========================================================================
* Bootstrap: tooltip.js v3.3.7
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
!function(t){"use strict";var e=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};e.VERSION="3.3.7",e.TRANSITION_DURATION=150,e.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},e.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var r=n[s];if("click"==r)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=r){var l="hover"==r?"mouseenter":"focusin",a="hover"==r?"mouseleave":"focusout";this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.getOptions=function(e){return(e=t.extend({},this.getDefaults(),this.$element.data(),e)).delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},e.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},e.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState)i.hoverState="in";else{if(clearTimeout(i.timeout),i.hoverState="in",!i.options.delay||!i.options.delay.show)return i.show();i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)}},e.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},e.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);if(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),!i.isInStateTrue()){if(clearTimeout(i.timeout),i.hoverState="out",!i.options.delay||!i.options.delay.hide)return i.hide();i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)}},e.prototype.show=function(){var i=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(i);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(i.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),r=this.getUID(this.type);this.setContent(),s.attr("id",r),this.$element.attr("aria-describedby",r),this.options.animation&&s.addClass("fade");var l="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,p=a.test(l);p&&(l=l.replace(a,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(l).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var h=this.getPosition(),f=s[0].offsetWidth,c=s[0].offsetHeight;if(p){var u=l,d=this.getPosition(this.$viewport);l="bottom"==l&&h.bottom+c>d.bottom?"top":"top"==l&&h.top-c<d.top?"bottom":"right"==l&&h.right+f>d.width?"left":"left"==l&&h.left-f<d.left?"right":l,s.removeClass(u).addClass(l)}var g=this.getCalculatedOffset(l,h,f,c);this.applyPlacement(g,l);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(e.TRANSITION_DURATION):m()}},e.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,r=parseInt(o.css("margin-top"),10),l=parseInt(o.css("margin-left"),10);isNaN(r)&&(r=0),isNaN(l)&&(l=0),e.top+=r,e.left+=l,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var a=o[0].offsetWidth,p=o[0].offsetHeight;"top"==i&&p!=s&&(e.top=e.top+s-p);var h=this.getViewportAdjustedDelta(i,e,a,p);h.left?e.left+=h.left:e.top+=h.top;var f=/top|bottom/.test(i),c=f?2*h.left-n+a:2*h.top-s+p,u=f?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][u],f)},e.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},e.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},e.prototype.hide=function(i){var o=this,n=t(this.$tip),s=t.Event("hide.bs."+this.type);function r(){"in"!=o.hoverState&&n.detach(),o.$element&&o.$element.removeAttr("aria-describedby").trigger("hidden.bs."+o.type),i&&i()}if(this.$element.trigger(s),!s.isDefaultPrevented())return n.removeClass("in"),t.support.transition&&n.hasClass("fade")?n.one("bsTransitionEnd",r).emulateTransitionEnd(e.TRANSITION_DURATION):r(),this.hoverState=null,this},e.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},e.prototype.hasContent=function(){return this.getTitle()},e.prototype.getPosition=function(e){var i=(e=e||this.$element)[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=window.SVGElement&&i instanceof window.SVGElement,r=o?{top:0,left:0}:s?null:e.offset(),l={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,l,a,r)},e.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},e.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,r=this.getPosition(this.$viewport);if(/right|left/.test(t)){var l=e.top-s-r.scroll,a=e.top+s-r.scroll+o;l<r.top?n.top=r.top-l:a>r.top+r.height&&(n.top=r.top+r.height-a)}else{var p=e.left-s,h=e.left+s+i;p<r.left?n.left=r.left-p:h>r.right&&(n.left=r.left+r.width-h)}return n},e.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},e.prototype.getUID=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},e.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},e.prototype.enable=function(){this.enabled=!0},e.prototype.disable=function(){this.enabled=!1},e.prototype.toggleEnabled=function(){this.enabled=!this.enabled},e.prototype.toggle=function(e){var i=this;e&&((i=t(e.currentTarget).data("bs."+this.type))||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},e.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})};var i=t.fn.tooltip;t.fn.tooltip=function(i){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof i&&i;!n&&/destroy|hide/.test(i)||(n||o.data("bs.tooltip",n=new e(this,s)),"string"==typeof i&&n[i]())})},t.fn.tooltip.Constructor=e,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery);
//]]></script>

Cuối cùng khởi tạo nút copy, tooltip cùng 1 số thành phần cần thiết, chèn code ngay bên dưới 2 script bên trên
<script type='text/javascript'>//<![CDATA[
jQuery(document).ready(function($) {
jQuery("pre copy").before("<div class='codeHeader'><a class='copy-text' data-clipboard-target='pre copy' data-clipboard-action='copy'>Copy</a></div>");
$('.copy-text').tooltip({
trigger: 'click'
})
});
var clipboard = new ClipboardJS(".copy-text", {
target: function(trigger) {
return trigger.parentNode.nextElementSibling
}
});

function setTooltip(btn, message) {
$(btn).tooltip('hide').attr('data-original-title', message).tooltip('show');
}

function hideTooltip(btn) {
setTimeout(function() {
$(btn).tooltip('hide');
}, 1000);
}
clipboard.on('success', function(e) {
var btn = $(e.trigger);
setTooltip(btn, 'Copied');
hideTooltip(btn);
});
clipboard.on('error', function(e) {
var btn = $(e.trigger);
setTooltip('Failed');
hideTooltip(btn);
});
//]]></script>

Lưu mẫu lại !

Khi viết bài để tạo khung code bạn chuyển chế độ HTML và đặt code theo mẫu
<pre><copy>
<!-- Dán code vào đây -->
</copy></pre>

Trước khi dán code bạn cần convert các kí tự để tránh code chạy luôn trên trang, sử dụng công cụ convert để chuyển đổi nhé

Như bạn thấy, mẫu code tạo form khi viết bài đã được rút gọn đi một cách không thể ngắn hơn nhờ 1 ít js, bên cạnh đó bạn cũng không cần chỉnh sửa data-clipboard-target nữa, icon font cũng được định nghĩa qua css, bạn có thể dễ dàng thay đổi trong template



#Lưu ý: Nếu bạn tích hợp ClipboardJS verson 1.x.x thì phải chuyển ClipboardJS thành Clipboard để code hoạt động đúng nhé

DEMO

KẾT LUẬN: Khi ghé thăm các trang về thủ thuật, tôi rất thích trang nào có nút copy to clipboard rất thích quay lại trang của họ, vì đơn giản nó giảm được rất nhiều thao tác tay cũng như thể hiện được độ chuyên nghiệp của webmaster. Hi vọng khung chứa code này sẽ sớm xuất hiện trên trang của bạn

Chúc thành công !