無需圖片,使用 CSS3 實現圓角按鈕

jopen 12年前發布 | 53K 次閱讀 Group-Office

首先來看看效果圖:

無需圖片,使用 CSS3 實現圓角按鈕

HTML 代碼就這么簡單:

<a href="#" class="button green">button</a>

<a href="#" class="button blue">button</a> <a href="#" class="button gray">button</a></pre>

如果沒有 CSS ,那么上面的 HTML 執行起來是這樣的:

無需圖片,使用 CSS3 實現圓角按鈕

開始 CSS3 的編寫:

.button {
    display: inline-block;
    position: relative;
    margin: 10px;
    padding: 0 20px;
    text-align: center;
    text-decoration: none;
    font: bold 12px/25px Arial, sans-serif;
}

一些不同顏色的按鈕樣式:

.green {
    color: #3e5706;
    background: #a5cd4e;
}

/ Blue Color /

.blue { color: #19667d; background: #70c9e3; }

/ Gray Color /

.gray { color: #515151; background: #d3d3d3; }</pre>

到這一步后按鈕看起來是這樣的:

無需圖片,使用 CSS3 實現圓角按鈕

接下來開始用 CSS 處理圓角:

.button {
    display: inline-block;
    position: relative;
    margin: 10px;
    padding: 0 20px;
    text-align: center;
    text-decoration: none;
    font: bold 12px/25px Arial, sans-serif;

text-shadow: 1px 1px 1px rgba(255,255,255, .22);

-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;

-webkit-box-shadow: 1px 1px 1px rgba(0,0,0, .29), inset 1px 1px 1px rgba(255,255,255, .44);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0, .29), inset 1px 1px 1px rgba(255,255,255, .44);
box-shadow: 1px 1px 1px rgba(0,0,0, .29), inset 1px 1px 1px rgba(255,255,255, .44);

-webkit-transition: all 0.15s ease;
-moz-transition: all 0.15s ease;
-o-transition: all 0.15s ease;
-ms-transition: all 0.15s ease;
transition: all 0.15s ease;

}</pre>

現在的按鈕圓潤多了,看看:

無需圖片,使用 CSS3 實現圓角按鈕

還不夠啊,沒有立體效果,再完善完善:

/ Green Color /

.green { color: #3e5706;

background: #a5cd4e; /* Old browsers */
background: -moz-linear-gradient(top,  #a5cd4e 0%, #6b8f1a 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a5cd4e), color-stop(100%,#6b8f1a)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%); /* IE10+ */
background: linear-gradient(top,  #a5cd4e 0%,#6b8f1a 100%); /* W3C */

}

/ Blue Color /

.blue { color: #19667d;

background: #70c9e3; /* Old browsers */
background: -moz-linear-gradient(top,  #70c9e3 0%, #39a0be 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#70c9e3), color-stop(100%,#39a0be)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #70c9e3 0%,#39a0be 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #70c9e3 0%,#39a0be 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #70c9e3 0%,#39a0be 100%); /* IE10+ */
background: linear-gradient(top,  #70c9e3 0%,#39a0be 100%); /* W3C */

}

/ Gray Color /

.gray { color: #515151;

background: #d3d3d3; /* Old browsers */
background: -moz-linear-gradient(top,  #d3d3d3 0%, #8a8a8a 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d3d3d3), color-stop(100%,#8a8a8a)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #d3d3d3 0%,#8a8a8a 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #d3d3d3 0%,#8a8a8a 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #d3d3d3 0%,#8a8a8a 100%); /* IE10+ */
background: linear-gradient(top,  #d3d3d3 0%,#8a8a8a 100%); /* W3C */

}</pre>

現在爽了,漂亮了,你喜歡這樣的按鈕嗎?

無需圖片,使用 CSS3 實現圓角按鈕

為了讓按鈕更大一點,我們增加了個 big 樣式:

<a href="#" class="button big green">sign in <span>One minute</span></a>
<a href="#" class="button big blue">sign in <span>One minute</span></a>

<a href="#" class="button big gray">sign in <span>One minute</span></a></pre>

/ Big Button Style /

.big { padding: 0 40px; padding-top: 10px; height: 45px; text-transform: uppercase; font: bold 20px/22px Arial, sans-serif; }

.big span { display: block; text-transform: none; font: italic normal 12px/18px Georgia, sans-serif; text-shadow: 1px 1px 1px rgba(255,255,255, .12); }</pre>

大按鈕的效果:

無需圖片,使用 CSS3 實現圓角按鈕

我們還需要處理下當鼠標移到按鈕上方時顯示不同的效果:

.button:hover {
    -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.29), inset 0px 0px 2px rgba(0,0,0, .5);
    -moz-box-shadow: 1px 1px 1px rgba(0,0,0,.29), inset 0px 0px 2px rgba(0,0,0, .5);
    box-shadow: 1px 1px 1px rgba(0,0,0,.29), inset 0px 0px 2px rgba(0,0,0, .5);
}
.button:active {
    -webkit-box-shadow: inset 0px 0px 3px rgba(0,0,0, .8);
    -moz-box-shadow: inset 0px 0px 3px rgba(0,0,0, .8);
    box-shadow: inset 0px 0px 3px rgba(0,0,0, .8);
}

效果如下:

無需圖片,使用 CSS3 實現圓角按鈕

好了,完美的CSS3按鈕解決方案。

在線演示下載地址

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!