Thứ Sáu, 3 tháng 6, 2016

XEM BÀI VIÊT
TOÀN MÀN HÌNH

Cách tạo hiệu ứng hover cho button cực đẹp với CSS3


Demo  

1. Code HTML

Đầu tiên, chúng ta cần có khung chuẩn html như sau:
<section class="buttons">
     <div class="container">
          <h1>Button Hover Effects</h1>
          <a href="https://twitter.com/thecntech" class="btn btn-1">
               <svg><rect x="0" y="0" fill="none" width="100%" height="100%"/></svg>
          Hover
          </a>
 <!--End of Button 1 -->
          <a href="https://twitter.com/thecntech" class="btn btn-2">Hover</a>
 <!--End of Button 2 -->
          <a href="https://twitter.com/thecntech" class="btn btn-3">Hover</a>
 <!--End of Button 3 -->
          <a href="https://twitter.com/thecntech" class="btn btn-4"><span>Hover</span></a>
 <!--End of Button 4 -->
          <a href="https://twitter.com/thecntech" class="btn btn-5">Hover</a>
 <!--End of Button 5 -->
          <p>Follow on <a href="http://www.twitter.com/thecntech" target="_blank">Twitter</a></p>
     </div>
</section>

2. Code CSS

Và sau đây là toàn bộ đoạn css giúp các bạn tạo được hiệu ứng button:
@import url(http://fonts.googleapis.com/css?family=Roboto:400,100,900);
* {
     box-sizing: inherit;
     transition-property: all;
     transition-duration: .6s;
     transition-timing-function: ease;
}
html,
body {
     box-sizing: border-box;
     height: 100%;
     width: 100%;
}
body {
     background: #E1332D;
     font-family: 'Roboto', sans-serif;
     font-weight: 400;
}
.buttons {
     display: table;
     height: 100%;
     width: 100%;
}
.container {
     display: table-cell;
     padding: 1em;
     text-align: center;
     vertical-align: middle;
}
h1 {
     color: #fff;
     font-size: 1.25em;
     font-weight: 900;
     margin: 0 0 2em;
}
@media (min-width: 450px) {
 h1 {
     font-size: 1.75em;
 }
}
@media (min-width: 760px) {
 h1 {
     font-size: 3.25em;
 }
}
@media (min-width: 900px) {
 h1 {
     font-size: 5.25em;
     margin: 0 0 1em;
 }
}
p {
     color: #fff;
     font-size: 12px;
}
@media (min-width: 600px) {
 p {
     left: 50%;
     position: absolute;
     transform: translate(-50%, 0);
     top: 90%;
 }
}
@media (max-height: 500px) {
 p {
     left: 0;
     position: relative;
     top: 0;
 transform: translate(0, 0);
 }
}
p a {
     background: rgba(255, 255, 255, 0);
     border-bottom: 1px solid;
     color: #fff;
     line-height: 1.4;
     padding: .25em;
     text-decoration: none;
}
p a:hover {
     background: white;
     color: #E1332D;
}
.btn {
     color: #fff;
     cursor: pointer;
     display: block;
     font-size: 16px;
     font-weight: 400;
     line-height: 45px;
     margin: 0 auto 2em;
     max-width: 160px;
     position: relative;
     text-decoration: none;
     text-transform: uppercase;
     vertical-align: middle;
     width: 100%;
}
@media (min-width: 400px) {
 .btn {
     display: inline-block;
     margin-right: 2.5em;
 }
 .btn:nth-of-type(even) {
     margin-right: 0;
 }
}
@media (min-width: 600px) {
.btn:nth-of-type(even) {
     margin-right: 2.5em;
 }
 .btn:nth-of-type(5) {
     margin-right: 0;
 }
}
.btn:hover {
     text-decoration: none;
}
.btn-1 {
     background: #e02c26;
     font-weight: 100;
}
.btn-1 svg {
     height: 45px;
     left: 0;
     position: absolute;
     top: 0;
     width: 100%;
}
.btn-1 rect {
     fill: none;
     stroke: #fff;
     stroke-width: 1;
     stroke-dasharray: 422, 0;
}
.btn-1:hover {
     background: rgba(225, 51, 45, 0);
     font-weight: 900;
     letter-spacing: 1px;
}
.btn-1:hover rect {
     stroke-width: 5;
     stroke-dasharray: 15, 310;
     stroke-dashoffset: 48;
     transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
}
.btn-2 {
     letter-spacing: 0;
}
.btn-2:hover,
.btn-2:active {
     letter-spacing: 5px;
}
.btn-2:after,
.btn-2:before {
     backface-visibility: hidden;
     border: 1px solid rgba(255, 255, 255, 0);
     bottom: 0px;
     content: " ";
     display: block;
     margin: 0 auto;
     position: relative;
     transition: all 280ms ease-in-out;
     width: 0;
}
.btn-2:hover:after,
.btn-2:hover:before {
     backface-visibility: hidden;
     border-color: #fff;
     transition: width 350ms ease-in-out;
     width: 70%;
}
.btn-2:hover:before {
     bottom: auto;
     top: 0;
     width: 70%;
}
.btn-3 {
     background: #e3403a;
     border: 1px solid #da251f;
     box-shadow: 0px 2px 0 #d6251f, 2px 4px 6px #e02a24;
     font-weight: 900;
     letter-spacing: 1px;
     transition: all 150ms linear;
}
.btn-3:hover {
     background: #e02c26;
     border: 1px solid rgba(0, 0, 0, 0.05);
     box-shadow: 1px 1px 2px rgba(255, 255, 255, 0.2);
     color: #ec817d;
     text-decoration: none;
     text-shadow: -1px -1px 0 #c2211c;
     transition: all 250ms linear;
}
.btn-4 {
     border: 1px solid;
     overflow: hidden;
     position: relative;
}
.btn-4 span {
     z-index: 20;
}
.btn-4:after {
     background: #fff;
     content: "";
     height: 155px;
     left: -75px;
     opacity: .2;
     position: absolute;
     top: -50px;
     transform: rotate(35deg);
     transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
     width: 50px;
     z-index: -10;
}
.btn-4:hover:after {
     left: 120%;
     transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
}
.btn-5 {
     border: 0 solid;
     box-shadow: inset 0 0 20px rgba(255, 255, 255, 0);
     outline: 1px solid;
     outline-color: rgba(255, 255, 255, 0.5);
     outline-offset: 0px;
     text-shadow: none;
     transition: all 1250ms cubic-bezier(0.19, 1, 0.22, 1);
}
 
.btn-5:hover {
     border: 1px solid;
     box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.5), 0 0 20px rgba(255, 255, 255, 0.2);
     outline-color: rgba(255, 255, 255, 0);
     outline-offset: 15px;
     text-shadow: 1px 1px 2px #427388;
}
- Trong quá trình viết bài chúng tôi sẽ có nhiều thiếu sót mong các bạn đóng góp để chúng tôi rút kinh nghiệm hơn !
- Mọi chi tiết xin liên hệ:
- Email: lephuocsinh96@gmail.com
- Facebook: Fb.com/beohoavinh

1 nhận xét:

Ads by Google