Tiếp tục chuỗi bài viết hiệu ứng css đẹp cho button phần 2.
1. Kiểu 1:
Source code HTML & CSS:
<div class="demo-wrap black-bg"> <a class="btn btn-border1">Center -> out</a> <a class="btn btn-border2">Left -> Right -> Left</a> <a class="btn btn-border3">Left -> Right -> Right</a> <a class="btn btn-border4">Top -> Bottom -> Top</a> <a class="btn btn-border5">Border (Inner Shadow)</a> <a class="btn btn-border6">Scale</a> </div>
.btn { padding: 20px; border: 2px solid #f7f7f7; text-align: center; text-transform: uppercase; position: relative; overflow: hidden; transition: 0.3s; color: #fff; background-color: transparent; text-decoration:none; box-sizing: border-box; display:inline-block; } .btn::after { position: absolute; transition: 0.3s; content: ""; width: 0; left: 50%; bottom: 0; height: 3px; background: #f7f7f7; } .btn:hover {text-decoration:none!important;} .btn-border1::after { width: 0; left: 50%; } .btn-border1:hover::after{ width: 100%; left: 0; } .btn-border2::after{ left: 0; } .btn-border2:hover::after{ width: 100%; left: 0; } .btn-border3::after { right: 0; left: auto; } .btn-border3:hover::after{ width: 100%; left: 0; } .btn-border4::after { left: 0; bottom: auto; top: -3px; width: 100%; } .btn-border4:hover::after{ top: calc(100% - 3px); } .btn-border5::after { width: 0%; } .btn-border5:hover{ box-shadow: inset 0px 0px 0px 5px #f7f7f7; } .btn-border6::after { width: 0%; } .btn-border6:hover{ transform: scale(1.2); }
2. Kiểu 2:
Source code HTML & CSS:
<div class="demo-wrap black-bg"> <a href="#hocweb" class="btn-hover btn-border7"> <svg> <rect x="0" y="0" fill="none" width="100%" height="100%" /> </svg> Hover </a> <a href="https://hocweb.edu.vn" class="btn-hover btn-border8">Hover</a> <a href="https://hocweb.edu.vn" class="btn-hover btn-border9">Hover</a> </div>
.btn-hover { margin: 15px; text-decoration: none; color: #00c6ff; font-size: 18px; text-transform: uppercase; } .btn-hover:hover { text-decoration: none; } .btn-border7 { position: relative; line-height: 45px; padding: 0 30px; text-decoration: none; text-transform: uppercase; text-align: center; display: inline-block; } .btn-border7 svg { height: 45px; left: 0; position: absolute; top: 0; width: 100%; } .btn-border7 rect { fill: none; stroke: #fff; stroke-width: 2; stroke-dasharray: 422, 0; transition: all 0.35s linear; } .btn-border7:hover { font-weight: 900; letter-spacing: 1px; } .btn-border7:hover rect { stroke-width: 5; stroke-dasharray: 15, 310; stroke-dashoffset: 90; transition: all 1.35s cubic-bezier(0.1, 1, 0.5, 1); } .btn-border8 { letter-spacing: 0; text-decoration: none; padding: 10px 20px; transition: all 0.3s; line-height: 45px; display: inline-block; } .btn-border8:hover { letter-spacing: 2px; } .btn-border8::after, .btn-border8::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-border8:hover::after, .btn-border8:hover::before { backface-visibility: hidden; border-color: #fff; transition: width 350ms ease-in-out; width: 100%; } .btn-border9 { border: 0 solid; box-shadow: inset 0 0 20px rgba(255, 255, 255, 0); outline: 1px solid; outline-color: currentcolor; 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); padding: 10px 25px; } .btn-border9: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; }