這只是爲了造型,我想作出給予好評/ downvote同樣的方式,它是在SO和Reddit做,從我所看到的,他們用箭頭圖像作爲背景,然後放置它,但我一個CSS新手,我需要有人來通過它。提前致謝。如何製作Upvote/Downvote按鈕?
19
A
回答
32
您可以通過向背景中添加一張不同的圖片來實現,每個圖片都爲按鈕的每個狀態。然而,實現這個結果有更簡單,更現代的方式:精靈。
甲子畫面是保存作爲較大圖像的一部分的圖像。使用精靈的最大優勢之一是將所有圖像的往返服務器的往返次數減少到精靈的一次請求。顯示圖片的元素具有圖片作爲背景。背景相對於元素移動,因此元素僅顯示圖像的一部分。當你在海報移動相框贊(或在這種情況下:移動框架下的海報)
在SO他們做出一個包含所有國家的按鈕圖像。他們給按鈕的元素(在這種情況下爲span
)固定的寬度和高度,並用CSS添加背景。然後在click事件中用javascript切換一個類的狀態(開或關)。現在,你必須在CSS中做的唯一的事情就是改變背景的位置與CSS類:
$('.vote').click(function() {
$(this).toggleClass('on');
});
.vote {
display: inline-block;
overflow: hidden;
width: 40px;
height: 25px;
cursor: pointer;
background: url('http://i.stack.imgur.com/iqN2k.png');
background-position: 0 -25px;
}
.vote.on {
background-position: 0 2px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Click to vote: <span class="vote"> </span>
3
您可以通過使用一些圖像編輯器如Photoshop兩個簡單的圖片...設計兩個圖像,如果你不具備MSPAINT做...
CSS代碼
#voting{
width:30px;
height:40px;
}
.upvote{
width:30px;
height: 20px;
cursor: pointer;
}
.downvote{
width:30px;
height: 20px;
background: url('downvote.jpg') 0 0 no-repeat;
cursor: pointer;
}
HTML代碼:
<div id="voting">
<div class="upvote"></div>
<div class="downvote"></div>
</div>
5
相關問題
- 1. 如何製作按鈕,iOS
- 2. 如何製作按鈕?
- 3. 如何製作Andengine按鈕
- 4. 如何製作「開關」音樂按鈕?
- 5. 如何在Wordpress網站製作按鈕?
- 6. Objective-C SpriteKit - 如何製作按鈕圈
- 7. 如何使用CSS製作3D按鈕?
- 8. 如何在iPhone SDK中製作+/-按鈕?
- 9. 如何爲iframe Appication製作Facebook'like'按鈕?
- 10. 如何爲iAdbannerView製作關閉按鈕
- 11. 如何製作動畫按鈕?
- 12. 如何在Facebook上製作按鈕?
- 13. 如何製作網格狀按鈕組?
- 14. 你如何製作這些按鈕?
- 15. 如何用for循環制作按鈕
- 16. 如何製作MapView按鈕(iPhone/iPad)?
- 17. 如何製作多個播放按鈕?
- 18. 如何製作觸摸屏按鈕?
- 19. 如何製作SagePay BuyNow按鈕?
- 20. 如何製作引導按鈕插入
- 21. 如何爲Java Swing按鈕製作ActionListener
- 22. 如何製作按鈕的克隆?
- 23. 如何製作圖像按鈕
- 24. 如何製作簡單的java按鈕?
- 25. 如何製作按鈕式過濾器?
- 26. 如何製作懸停圖片按鈕?
- 27. 如何在javascript中製作OK按鈕
- 28. Actionscript 3;如何製作切換按鈕?
- 29. 如何爲按鈕製作快捷鍵
- 30. 如何製作開關按鈕?
+1的技術稱爲CSS精靈,並提供比選擇,更好的性能,這每個按鈕狀態都有一個單獨的圖像。您可能想要將所有四個狀態添加到一個圖像中,然後按照Jan指定的方式更改背景。 – 2010-11-25 07:37:04
所以總之我需要學習JavaScript? – user519753 2010-11-25 23:36:01