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

Khung codeview với CSS

   Feb 9, 2016   
Một đoạn css khá đẹp mắt dùng để trang trí thẻ <pre> nhằm giúp cho khách truy cập dễ dàng hơn trong việc xem các đoạn mã lệnh mà bạn chia sẽ, các đoạn code sẽ được đặt trong thẻ <pre>...</pre> với việc tự động chèn 2 màu xen kẽ giữa các dòng code và hiển thị một chủ đề phía bên trên nhằm giúp cho người đọc dễ dàng hơn khi xem các đoạn code mà bạn chia sẽ.


Hiển thị Tooltip bằng jQuery và CSS

   Feb 5, 2015   
Thông thường, Tooltip được sử dụng để trình bày một lượng nhỏ nội dung được ẩn đi (chủ yếu là để giải thích một cái gì đó), mà khi người dùng di chuyển con trỏ chuột qua (hoặc nhấp chuột) thì sẻ được hiển thị.
Huong dan hien thi tooltip bang jquery va css3
Hôm nay, xin chia sẽ một plugin hiển thị tooltip khá hay được tìm thấy trên google, với các tính năng chính như responsive hiển thị tốt trên thiết bị di động, bạn cũng có thể định dạng tooltip bằng các thẻ html như in đậm, in nghiêng,... Việc cài đặt  và sử dụng rất đơn giản, chỉ cần copy mã css, javascript vào template và gán thuộc tính title="nhập tooltip của bạn"rel="tooltip" vào bất kỳ thẻ nào trong mã html của bạn

CSS Tooltip

Bạn có thể xây dựng kiểu hiển thị cho riêng mình hoặc sử dụng đoạn mã css dưới đây:
/******* TOOLTIP*******/
#tooltip {
font:.9em/1.6 Tahoma,Sans-serif;
text-shadow: 0 1px rgba( 0, 0, 0, .5 );
color: #fff;
background: #000;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border-top: 1px solid #fff;
-webkit-box-shadow: 0 3px 5px rgba( 0, 0, 0, .3 );
-moz-box-shadow: 0 3px 5px rgba( 0, 0, 0, .3 );
box-shadow: 0 3px 5px rgba( 0, 0, 0, .3 );
position: absolute;
z-index: 100;
padding: 2px 5px 2px;
}
#tooltip:after {
width: 0;
height: 0;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 10px solid #333;
border-top-color: rgba( 0, 0, 0, .9 );
content: '';
position: absolute;
left: 50%;
bottom: -7px;
margin-left: -10px;
}
#tooltip.top:after {
border-top-color: transparent;
border-bottom: 10px solid #333;
border-bottom-color: rgba( 0, 0, 0, .9 );
top: -17px;
bottom: auto;
}
#tooltip.left:after {
left: 10px;
margin: 0;
}
#tooltip.right:after {
right: 10px;
left: auto;
margin: 0;
}

JavaScript Tooltip

<script>
/******* TOOLTIP*******/
$( function()
{
var targets = $( '[rel~=tooltip]' ),
target = false,
tooltip = false,
title = false;

targets.bind( 'mouseenter', function()
{
target = $( this );
tip = target.attr( 'title' );
tooltip = $( '<div id="tooltip"></div>' );

if( !tip || tip == '' )
return false;

target.removeAttr( 'title' );
tooltip.css( 'opacity', 0 )
.html( tip )
.appendTo( 'body' );

var init_tooltip = function()
{
if( $( window ).width() < tooltip.outerWidth() * 1.5 )
tooltip.css( 'max-width', $( window ).width() / 2 );
else
tooltip.css( 'max-width', 340 );

var pos_left = target.offset().left + ( target.outerWidth() / 2 ) - ( tooltip.outerWidth() / 2 ),
pos_top = target.offset().top - tooltip.outerHeight() - 17;

if( pos_left < 0 )
{
pos_left = target.offset().left + target.outerWidth() / 2 - 17;
tooltip.addClass( 'left' );
}
else
tooltip.removeClass( 'left' );

if( pos_left + tooltip.outerWidth() > $( window ).width() )
{
pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 17;
tooltip.addClass( 'right' );
}
else
tooltip.removeClass( 'right' );

if( pos_top < 0 )
{
var pos_top = target.offset().top + target.outerHeight();
tooltip.addClass( 'top' );
}
else
tooltip.removeClass( 'top' );

tooltip.css( { left: pos_left, top: pos_top } )
.animate( { top: '+=10', opacity: 1 }, 50 );
};

init_tooltip();
$( window ).resize( init_tooltip );

var remove_tooltip = function()
{
tooltip.animate( { top: '-=10', opacity: 0 }, 50, function()
{
$( this ).remove();
});

target.attr( 'title', tip );
};

target.bind( 'mouseleave', remove_tooltip );
tooltip.bind( 'click', remove_tooltip );
});
});
</script>

Cách sử dụng: 

Chỉ cần thêm thuộc tính title="nội dung tooltip"rel="tooltip" vào bất kỳ thẻ html mà bạn muốn hiển thị tooltip
Ví dụ:
<abbr title="User Experience" rel="tooltip">UX</abbr>
Cách sử dụng cho blogspot
Chèn mã CSS vào trước thẻ đóng </b:skin> và đoạn Javascript vào trước thẻ </body> trong template của bạn

Lưu ý: Trong template phải khai báo thư viện jQuery
Nếu chưa có chèn đoạn mã dưới đây trước thẻ </head>
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>

Thêm hiệu ứng Tooltip trên AddThis widget

   Aug 30, 2014   
Chia sẽ một cách đơn giản để thêm hiệu ứng tooltip cho tiện ích chia sẽ addthis
huong dan them hieu ung tooltip cho addthis widget, tooltip addthis social sharing toolbox
Thêm Tooltip trên AddThis widget
Nếu bạn là người sử dụng tiện ích chia sẻ addthis social sharing toolbox bạn có thể thêm hiệu ứng trên bằng cách sử dụng đoạn mã dưới đây:
<!-- AddThis Button BEGIN -->
<div class='addthis_toolbox addthis_default_style'>
<a class='addthis_button_preferred_1'></a>
<a class='addthis_button_preferred_2'></a>
<a class='addthis_button_preferred_3'></a>
<a class='addthis_button_preferred_4'></a>
<a class='addthis_button_compact'></a>
<a class='addthis_counter addthis_bubble_style'></a>
</div>
<!-- AddThis Button END -->
- Thêm  <span class="addthis-tooltip">Chia sẽ bài viết của bạn!</span> vào đoạn mã code phía trên, và ta được đoạn mã code như thế này:
<!-- AddThis Button BEGIN -->
<div class='addthis_toolbox addthis_default_style'>
<span class="addthis-tooltip">Chia sẽ bài viết của bạn!</span>
<a class='addthis_button_preferred_1'></a>
<a class='addthis_button_preferred_2'></a>
<a class='addthis_button_preferred_3'></a>
<a class='addthis_button_preferred_4'></a>
<a class='addthis_button_compact'></a>
<a class='addthis_counter addthis_bubble_style'></a>
</div>
<!-- AddThis Button END -->
- Tiếp theo, vào Mẫu >> Chỉnh sửa HTML thêm đoạn mã css dưới đây vào trước thẻ ]]></b:skin> hoặc trước thẻ </style>
/* Tooltip widget AddThis */
.addthis_toolbox {
width:150px;
position:relative;
background-color:darkgreen;
padding:10px 15px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
}

.addthis_toolbox .addthis-tooltip {
display:block;
width:140px;
padding:10px 15px;
position:absolute;
bottom:100%;
left:30px;
z-index:77;
margin-bottom:40px;
background-color:black;
font:bold 12px 'Trebuchet MS',Arial,Sans-Serif;
color:white;
text-align:center;
-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
box-shadow:0px 1px 2px rgba(0,0,0,0.4);
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
opacity:0;
visibility:hidden;
-webkit-transition:all 0.26s ease-out;
-moz-transition:all 0.26s ease-out;
-ms-transition:all 0.26s ease-out;
-o-transition:all 0.26s ease-out;
transition:all 0.26s ease-out;
}

.addthis_toolbox .addthis-tooltip:before {
content:"";
width:0px;
height:0px;
border:7px solid transparent;
border-top-color:black;
position:absolute;
top:100%;
left:15px;
}

.addthis_toolbox:hover .addthis-tooltip {
visibility:visible;
opacity:1;
margin-bottom:20px;
}
/* Ket thuc Tooltip widget AddThis */
- Lưu mẫu của bạn lại. Vậy là xong !
- Xem Demo:
Chia sẽ bài viết của bạn!

Hiệu ứng Tooltip mô tả đối tượng trên Form bằng CSS3

   Aug 26, 2014   
Tooltip được sử dụng rất nhiều nhằm tạo ra nhiều hiệu ứng khác nhau. Khi ta di chuyển con trỏ chuột lên một đối tượng nào đó thì tooltip được hiện lên với một khung nhỏ chứa nội dung mô tả cho phân tử đó. Ta có thể sử dụng tooltip cho các đối tượng trên form, vú dụ như form liên hệ, đăng ký,... Việc này sẽ rất hữu ích cho khách khi điền các thông tin trên form của bạn. Xin chia sẽ một hiệu ứng tooltip khi input field trên form được focus bằng css, có nghĩa là khi ta nhấn chuột vào một input field trên form thì nó sẽ xuất hiện một label mô tả cho input field đó. Ta sẽ sử dụng thẻ <label> (hiển thị tooltip) để làm việc này:
tooltip input field focus on form, huong dan tao hieu ung tooltip khi focus input field tren form bang css3
HTML:
Name: <input type="text">
<label>Nhập vào tên của bạn</label>
CSS:
label {visibility:hidden;} /*Ẩn label*/
input:focus + label {visibility:visible;} /*Hiện label khi focus*/
và ta được kết quả như sau: Xem Demo

Tiếp theo cập nhật các phần tử hiển thị <label> để làm cho nó xuất hiện như một tooltip và thêm hiệu ứng chuyển tiếp giữa các đối tượng để làm nổi bật hơn sự xuất hiện của nội dung cần mô tả:
HTML:
<div class="form-item">
<strong>Name:</strong> <input type="text"/>
<label>Nhập vào tên của bạn</label>
</div>
<div class="form-item">
<strong>Email:</strong> <input type="text"/>
<label>Địa chỉ Email của bạn</label>
</div>
<div class="form-item">
<strong>Message:</strong>
<textarea></textarea>
<label>Nhập vào nội dung bạn cần nhắn gửi</label>
</div>
<br><input type="submit" value="Send">
CSS:
body {
background-color:#f5f5f5;
padding:100px 50px;
margin:0;
font:normal normal 12px/1.4 Arial,Sans-Serif;
color:black;
}

/* Form item wrapper */
.form-item {
margin:1em 0 0;
position:relative;
}

/* Form item title */
.form-item strong {
display:block;
margin:0 0 5px;
}

/* Form items */
.form-item input,
.form-item textarea {
display:block;
border:1px solid #ccc;
padding:4px;
margin:0 0;
width:250px;
font:inherit;
line-height:normal;
color:inherit;
-webkit-box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
-moz-box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
box-shadow:inset 0 1px 3px -1px rgba(0,0,0,.2);
outline:none;
}

.form-item textarea {height:120px}

/* Tooltip */
.form-item label {
display:block;
position:absolute;
bottom:100%;
left:150px;
margin-bottom:2em;
font-size:11px;
font-weight:bold;
color:white;
white-space:nowrap;
line-height:normal;
padding:.6em 1em;
background-color:black;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
visibility:hidden;
opacity:0;
/* Transition effect */
-webkit-transition:all .2s ease-out;
-moz-transition:all .2s ease-out;
-ms-transition:all .2s ease-out;
-o-transition:all .2s ease-out;
transition:all .2s ease-out;
}

/* Tooltip arrow */
.form-item label:after {
content:"";
display:block;
width:0;
height:0;
border:5px solid transparent;
position:absolute;
top:100%;
left:2em;
border-top-color:black;
}

.form-item input:focus,
.form-item textarea:focus {border-color:#aaa}

/* Show tooltip when the form is being focused */
.form-item input:focus + label,
.form-item textarea:focus + label {
visibility:visible;
opacity:1;
margin-bottom:-.5em;
}
Và ta được kết quả cuối cùng: Xem Demo

Bạn cũng có thể áp dụng hiệu ứng này cho form liên hệ của blogger.

Hiệu ứng Hover hình ảnh sử dụng thuộc tính opacity trong CSS3

   Aug 17, 2014   
Trước đây để thêm một hiệu ứng đặt biệt nào đó cho hình ảnh, liên kết,... chúng ta phải sử dụng Javascript hay jQuery. Từ khi CSS3 đời thì các công việc như thế này trở nên đơn giản hơn rất nhiều.
Hôm nay tôi sẽ hướng dẫn làm thế nào để thay đổi giá trị opacity (hiểu đơn giản là độ mờ của đối tượng) của một hình ảnh và thêm hiệu ứng hover (di chuột) bằng cách sử dụng CSS3. Xem ví dụ dưới đây, bạn sẽ thấy rằng khi bạn di chuyển con trỏ chuột lên ảnh, nó sẽ có hiệu ứng.
image hover effect using css 3, hieu ung hinh anh su dung thuoc tinh opacity trong css3, thuoc tính opacity trong css3, vi du thuoc tính opacity trong css3, hieu ung hinh anh khi hover, Hình ảnh Hover Effect sử dụng CSS3
Thuộc tính opacity trong CSS3
Hiệu ứng hover ảnh với thuộc tính Opacity và jQuery
Nếu bạn biết HTML và CSS3 thì việc tạo hiệu ứng như thế này là rất đơn giản, nhưng nếu bạn là một newbie bạn vẫn có thể làm điều đó một cách dễ dàng. Trong hướng dẫn này, tôi sẽ hướng dẫn thế nào để có hiệu ứng di chuột như vậy.
Để thực hiện, thêm một đoạn CSS sau vào template của bạn.
img.hovereffect {
opacity: 0.5; //giá trị 0.5 làm cho hình ảnh rõ ràng hơn hoặc mờ đục
-webkit-transition: all .3s linear; //3s thời gian thực hiện hành động
-moz-transition: all .3s linear;
-o-transition: all .3s linear;
transition: all .3s linear;
}
img.hovereffect:hover {
opacity: 1;
}
Để sử dụng, chỉ cần khai báo thêm class="hovereffect" vào thẻ <img ... /> của hình ảnh mà bạn muốn sử dụng hiệu ứng này.
Ví dụ:
<img class="hovereffect" src="http://example.com/picture.jpg" />

Đây là một ví dụ cơ bản trong việc tạo hiệu ứng bằng CSS3, với sức mạnh của CSS3 thì bạn có thể làm rất nhiều hiệu ứng đẹp khác, bạn có thể download tài liệu học CSS3 để tìm hiểu thêm.

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 hình nền đổ bóng bằng CSS3 - Gradient Generator

   Jun 20, 2014   
Thông thường, để tạo hình nền đổ bóng bạn sẽ phải dùng một image làm background, tuy nhiên có cách khác đó là dùng CSS với các thuộc tính linear-gradient, o-linear-gradient, moz-linear-gradient, webkit-linear-gradient, ms-linear-gradient và webkit-gradient. Cách này giúp hình đổ bóng được đẹp hơn, linh động hơn và tiết kiệm băng thông cũng như tăng tốc độ tải cho trang web.

Tạo hình nền đổ bóng bằng CSS3 - Gradient Generator, hinh nen do bong dep, tao hinh nen do bong bang css3, tao hinh nen bang css3

Tuy nhiên, để tạo được một hình đổ bóng bằng cách phối hợp các tham số không hề đơn giản, vậy ta phải làm thế nào?
Cách nhanh nhất, chính xác nhất, hiệu quả nhất là hãy vô đây: http://gradients.glrzad.com/

Lưu ý, riêng đối với IE thì phải thêm đoạn sau:
Mã: Chọn tất cả
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B6B6B6', endColorstr='#F6F6F6');

-ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B6B6B6', endColorstr='#F6F6F6');

Màu được lấy tương tự như kết quả đã được tạo bởi gradients.glrzad.com vậy.