记得当初在写一个js版本的斗地主程序的时候,我让朋友用ps给我制作了54张扑克牌(是54张吗?)后来想换牌的大小,又不好再让人家做,当时是左右为难,今天在国外的网站上看到了一篇css制作扑克牌的文章,其效果比ps的还要好,叹为观止。其实用到的知识不多,但是国内的同行里面很少能找到有这种专研精神的人(我们的第一反应是copy)。我将这篇文章翻译给大家。

原文如下:

这篇文章中,我将给大家介绍一种简单而吸引人的制作扑克牌的方法,该方法的特点是用纯css实现。这个过程中,你将学到before 和 after的用法,以及一些动画效果。

制作扑克的html代码

第一步是制作扑克的html,我的原则是用最少最简洁的代码,不引用任何图片,也许你认为不可能,但是你还是乖乖的看我是如何工作的吧。

建立一个div,赋予两个class属性:cardand suitdiamonds

往这个div中添加卡片的内容,只需要一个包含字母A的段落标记

就可以了。

A

现在你头脑里要时刻记住,我们的目的不仅仅是要制作一张扑克牌,而且要用最简洁的代码,html部分的代码就只需要这么多了(够简洁吧)。

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;

}

先看看效果:

现在看起来是不是已经有卡片的效果了,但是总感觉还缺少些什么-梅花、方块、红桃、黑桃。如果我们要显示这些图形但又不引入图片的话,事情将变得复杂起来,但是我们还是有解决问题的技巧的。

考虑到我们不再想要给html部分添加更多的代码,我们引入伪元素before和after来给卡片添加梅花方块这些图形。幸运的是,绝大多数的浏览器都能识别各种种类的特殊符号。这些特殊符号的获取可以在这个网站CopyPasteCharacter找到。.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来定义,因为作者的这个方法效率上讲要低一些)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.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

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);

}

再加上点阴影效果.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);

}

html css 扑克牌桌面,CSS Card:纯css制作扑克牌相关推荐

  1. css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...

    纯CSS实现Tab切换标签效果代码 本文实例讲述了纯CSS实现Tab切换标签效果代码.分享给大家供大家参考.具体如下: 这是一款纯CSS实现的Tab简洁版,很不错的效果,希望大家喜欢. 运行效果截图如 ...

  2. 01超精美渐变色动态背景完整示例【CSS动效实战(纯CSS与JS动效)】

    若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证. 本节案例如下(其他动效篇幅原因逐步讲解,欢迎三连): 一.线 ...

  3. css实现人走路效果,纯css实现机器人走路动画

    纯css实现机器人走路动画 由于发现了css的这个现象 当一个有元素嵌套的时候,父元素有动画,子元素也有动画,那么子元素的运动会相对父元素的运动而运动 所以我忽然想到,实现人的走路动画并不是不可能的了 ...

  4. html怎么实现蓝色垂直的直线,css实例教程 一款纯css实现的垂直时间线效果

    今天给大家分享一款纯css实现的垂直时间线效果.垂直时间线适合放在类似任务时间安排的网页上.该实现采用了蓝色作为主题色,界面效果还不错.一起看下效果图: 实现的代码. html代码: 复制代码代码如下 ...

  5. 纯css导航下拉_纯CSS标签导航

    纯css导航下拉 The appearence of "tab" navigation is relatively easy to create, but making a tab ...

  6. css 跳跃动画,如何使用纯CSS实现方块跳跃的动画(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现方块跳跃的动画(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.com/ ...

  7. css中间镂空,怎么用纯CSS实现镂空效果

    怎么用纯CSS实现镂空效果 发布时间:2021-03-19 09:49:16 来源:亿速云 阅读:99 作者:小新 小编给大家分享一下怎么用纯CSS实现镂空效果,希望大家阅读完这篇文章之后都有所收获, ...

  8. HTML中 css红绿黄灯,纯CSS实现红绿灯效果(面试常见)

    先看题,别看答案试下吧 ~_~ 1.下面的代码输出的内容是什么? function O(name){ this.name=name||'world'; } O.prototype.hello=func ...

  9. html用css写彩虹,如何使用纯CSS实现彩虹条纹文字的效果(附代码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现彩虹条纹文字的效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.co ...

  10. css如何使文字抖动,纯CSS文字彩色抖动抖音效果

    效果 纯CSS文字彩色抖动抖音效果 简介 直接将这下面段放进你的 style.css doudong{ animation: uk-text-shadow-glitch .65s cubic-bezi ...

最新文章

  1. 一文看懂机器视觉芯片
  2. Oracle 基础教程
  3. 自定义本地音乐播放器
  4. SAP FI FAGLFLEXT/FAGLFLEXA 数据不正确重新更新操作
  5. 科研狗的国庆与普通人的国庆有什么不同?
  6. [小故事大道理] -- 蜜蜂为何不如苍蝇
  7. 戴着口罩也要开心过年吖!
  8. logstash-filter模块
  9. 基于VC++6.0的DLL开发
  10. 小波包能量matlab,小波包分析和小波包能量介绍.doc
  11. fastjson 判断value是对象还是数组
  12. Oracle体系结构之控制文件的多路复用技术
  13. flex 弹出的titleWindow 隐藏标题栏
  14. 读书感悟之,从术到道
  15. System 中的数学函数
  16. python重写和装饰器_Python | 老司机教你 5 分钟读懂 Python 装饰器
  17. java中国象棋兵吃棋规则_国际象棋规则兵的吃法
  18. [Vue warn]: You may have an infinite update loop in watcher with express
  19. 使用phpQuery采集图片示例–php采集方式之一
  20. 键盘鼠标是计算机标准输入输出设备,微型计算机输入输出设备之键盘和鼠标(ppt 32页).ppt...

热门文章

  1. candence与matlab电路仿真,电力电子电路仿真:MATLAB和PSpice应用
  2. PLC可编程控制器实验装置
  3. Udacity CH2中.bag 文件解析
  4. Navicat 局域网连接数据库
  5. Windows下NexusPHP搭建PT站过程
  6. QTableWidget背景色交替
  7. 一加手机怎么root权限_一加手机怎么获取root权限?
  8. 分集阶数(diversity order)
  9. 计算机怎么远程桌面,电脑怎么打开远程桌面连接功能
  10. Bugku misc 旋转跳跃wp