CSSCard:純css制作撲克牌_html/css
來源:懂視網
責編:小采
時間:2020-11-27 15:56:09
CSSCard:純css制作撲克牌_html/css
CSSCard:純css制作撲克牌_html/css_WEB-ITnose:制作撲克的html代碼 第一步是制作撲克的html,我的原則是用最少最簡潔的代碼,不引用任何圖片,也許你認為不可能,但是你還是乖乖的看我是如何工作的吧。 建立一個div,賦予兩個class屬性:cardand suitdiamonds .代碼
導讀CSSCard:純css制作撲克牌_html/css_WEB-ITnose:制作撲克的html代碼 第一步是制作撲克的html,我的原則是用最少最簡潔的代碼,不引用任何圖片,也許你認為不可能,但是你還是乖乖的看我是如何工作的吧。 建立一個div,賦予兩個class屬性:cardand suitdiamonds .代碼

制作撲克的html代碼
第一步是制作撲克的html,我的原則是用最少最簡潔的代碼,不引用任何圖片,也許你認為不可能,但是你還是乖乖的看我是如何工作的吧。
建立一個div,賦予兩個class屬性:cardand suitdiamonds
.代碼
-
-
往這個div中添加卡片的內容,只需要一個包含字母A的段落標記
就可以了。
.代碼
-
-
A
-
現在你頭腦里要時刻記住,我們的目的不僅僅是要制作一張撲克牌,而且要用最簡潔的代碼,html部分的代碼就只需要這么多了(夠簡潔吧)。
精心開發5年的UI前端框架!
css代碼
css的第一步是規定基本的頁面屬性,這些屬性將被card繼承。
.代碼
- * {margin: 0; padding: 0;}
-
- body {
- background: #00a651;
- }
-
- .card {
- position: relative;
- float: left;
- margin-right: 10px;
- width: 150px;
- height: 220px;
- border-radius: 10px;
- background: #fff;
- -webkit-box-shadow: 3px 3px 7px rgba(0,0,0,0.3);
- box-shadow: 3px 3px 7px rgba(0,0,0,0.3);
- }
就如上面的代碼所示,card 的樣式非常簡單,白色背景,圓角,邊框陰影,除了position屬性為relative外沒有什么特別的。
現在我們給A字母潤色一下
.代碼
- .card p {
- text-align: center;
- font: 100px/220px Georgia, Times New Roman, serif;
- }
先看看效果:
現在看起來是不是已經有卡片的效果了,但是總感覺還缺少些什么-梅花、方塊、紅桃、黑桃。如果我們要顯示這些圖形但又不引入圖片的話,事情將變得復雜起來,但是我們還是有解決問題的技巧的。精心開發5年的UI前端框架!
考慮到我們不再想要給html部分添加更多的代碼,我們引入偽元素before和after來給卡片添加梅花方塊這些圖形。幸運的是,絕大多數的瀏覽器都能識別各種種類的特殊符號。
.代碼
- .suitdiamonds:before, .suitdiamonds:after {
- content: "?";
- color: #ff0000;
- }
我同時用before 和 after這樣我就能得到上下兩個方塊圖形,其他圖形依葫蘆畫瓢。
.代碼
- .suitdiamonds:before, .suitdiamonds:after {
- content: "?";
- color: #ff0000;
- }
-
- .suithearts:before, .suithearts:after {
- content: "?";
- color: #ff0000;
- }
-
- .suitclubs:before, .suitclubs:after {
- content: "?";
- color: #000;
- }
-
- .suitspades:before, .suitspades:after {
- content: "?";
- color: #000;
- }
如果你是一個仔細的人,你應該發現了這些方塊梅花的方向貌似搞反了。其實css實現反轉也很容易,但是考慮到沒人會把屏幕倒過來看這張撲克牌,所以這是不必要的。
我們畫好了撲克的符號,還應該修飾大小和合適的定位。方塊、梅花、紅桃黑桃的字體大小位置擺放以及position屬性都是一致的,因此我們最好只寫一次。div[class*='suit']選擇器就可以同時選擇這四個。(原文的評論里面有人建議單獨用一個class來定義,因為作者的這個方法效率上講要低一些) 精心開發5年的UI前端框架!
.代碼
- div[class*='suit']:before {
- position: absolute;
- font-size: 35px;
- left: 5px;
- top: 5px;
- }
-
- div[class*='suit']:after {
- position: absolute;
- font-size: 35px;
- right: 5px;
- bottom: 5px;
- }
下面看看效果
上面我們只是制作了一張圖片,現在我想制作一組圖片的效果:
.代碼
-
-
-
-
A
-
-
-
-
A
-
-
-
-
A
-
-
-
-
A
-
-
-
css 精心開發5年的UI前端框架!
.代碼
- .hand {
- margin: 50px;
- }
-
- /* For modern browsers */
- .hand:before,
- .hand:after {
- content:"";
- display:table;
- }
-
- .hand:after {
- clear:both;
- }
-
- /* For IE 6/7 (trigger hasLayout) */
- .hand {
- zoom:1;
- }
-
- .card:hover {
- cursor: pointer;
- }
接下來我想利用css做出一些有趣的動畫效果來:開始的時候只顯示一張撲克,當鼠標移上去,撲克會展開,就像你打牌的時候手里握牌的樣子。
html
和之前不同的是我增加了spread class屬性
.代碼
-
-
-
-
A
-
-
-
-
A
-
-
-
-
A
-
-
-
-
A
-
-
-
精心開發5年的UI前端框架!
css
.代碼
- .spread {
- width: 350px;
- height: 250px;
- position: relative;
- }
-
- .spread > .card {
- position: absolute;
- top: 0;
- left: 0;
- -webkit-transition: top 0.3s ease, left 0.3s ease;
- -moz-transition: top 0.3s ease, left 0.3s ease;
- -o-transition: top 0.3s ease, left 0.3s ease;
- -ms-transition: top 0.3s ease, left 0.3s ease;
- transition: top 0.3s ease, left 0.3s ease;
- }
鼠標移上去的效果:
.代碼
- .spread:hover .suitdiamonds {
- -webkit-transform: rotate(-10deg);
- -moz-transform: rotate(-10deg);
- -o-transform: rotate(-10deg);
- -ms-transform: rotate(-10deg);
- transform: rotate(-10deg);
- }
-
- .spread:hover .suithearts {
- left: 30px;
- top: 0px;
- -webkit-transform: rotate(0deg);
- -moz-transform: rotate(0deg);
- -o-transform: rotate(0deg);
- -ms-transform: rotate(0deg);
- transform: rotate(0deg);
- }
-
- .spread:hover .suitclubs {
- left: 60px;
- top: 5px;
- -webkit-transform: rotate(10deg);
- -moz-transform: rotate(10deg);
- -o-transform: rotate(10deg);
- -ms-transform: rotate(10deg);
- transform: rotate(10deg);
- }
-
- .spread:hover .suitspades{
- left: 80px;
- top: 10px;
- -webkit-transform: rotate(20deg);
- -moz-transform: rotate(20deg);
- -o-transform: rotate(20deg);
- -ms-transform: rotate(20deg);
- transform: rotate(20deg);
- }
再加上點陰影效果 精心開發5年的UI前端框架!
.代碼
- .spread > .card:hover {
- -webkit-box-shadow: 1px 1px 7px rgba(0,0,0,0.4);
- box-shadow: 1px 1px 7px rgba(0,0,0,0.4);
- }
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
CSSCard:純css制作撲克牌_html/css
CSSCard:純css制作撲克牌_html/css_WEB-ITnose:制作撲克的html代碼 第一步是制作撲克的html,我的原則是用最少最簡潔的代碼,不引用任何圖片,也許你認為不可能,但是你還是乖乖的看我是如何工作的吧。 建立一個div,賦予兩個class屬性:cardand suitdiamonds .代碼