一個input標簽搞定含內外描邊及陰影的按鈕~


自從懷孕以來,我就變得很是輕松,偶爾寫一兩個頁面,或者偶爾調試一個兩個bug,或者偶爾給做JS的同事打打下手,修改個bug什么......一個習慣於忙碌的工作的人,這一閑下來,感覺還真TM很不舒服~怎么辦,自己打發時間唄,閑來無事看看別人的技術博客,趁這段時間長長自己的見識,充充電;可實在不想看了、煩了,怎么辦?偶然間看到一個同事寫的一個按鈕了,因為一個邊的淺色內描邊所以,用了兩個div寫了一個按鈕;之前的處理都是直接把那1px的描邊直接忽略,或者找設計重新調整,因為感覺一個按鈕用兩個標簽有點浪費。費話不多說,先上按鈕圖片:

這個是效果圖,看到上面的那個細微的淺色內描邊了么?

同事的實現方法是這樣的,HTML代碼如下:

<div class="outBtn">
    <div class="innerBtn">測試按鈕</div>
</div>

CSS代碼如下:

.outBtn{border: 1px solid #f47a0e;border-radius:2px;-webkit-border-radius: 2px;height: 38px;box-shadow:0 1px 3px #bebdbd;-webkit-box-shadow: 0 1px 3px #bebdbd;}
.innerBtn{border-top: 1px solid #ffa033;background: #ff8700;text-align: center;height: 37px;line-height: 37px;color: #fff;}

上實現效果:

只是一個按鈕而已,我總覺得寫這么多代碼有浪費,而且都沒有用input標簽,也就是說HTML代碼沒有語義化。

所以我就在想怎么樣能直接用一個input標簽把它實現了呢;正好昨天剛看了張鑫旭同學的一個篇文章叫《CSS3 box-shadow盒陰影圖形生成技術》,有興趣的朋友可以看看,張鑫旭的文章寫的倍兒有意思。言歸正轉啊,這篇文章中提到了像素的疊加,於是我就想利用陰影的疊加是不是可以只用一個input標簽把這個效果實現了。

開始我想用border寫上邊那一條淺色的線,外邊框用box-shadow實現,再疊加上下面的灰色陰影,結果不甚理想。

換個思路,邊框還用border實現,里面那條淺色線及下面的灰色陰影用box-shadow疊加,於是就出現的我想要效果,看下效果,有沒有什么出入:

效果還不錯吧~~

上代碼:

<input type="button" value="演示按鈕" class="btn"  />
<style>
.btn{width:200px;display:block;height:38px;line-height;38px;text-align:center;background:#FF8700;border:1px solid #f47a0e;-webkit-border-radius: 2px;outline:none;color:#fff;box-shadow:0 1px #ffa033 inset, 0px 1px 3px #bebdbd;}
</style>

這個CSS的世界也是五彩繽紛滴,林子大了,什么漂亮的鳥都有,找找看,或許會有意想不到的鳥兒哦~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM