纯CSS3打造精致时钟(不含任何图片和js)

分类栏目:用户体验 - 前端开发

444861

发布于 17 条评论

今天为大家分享一个纯CSS3打造的精致时钟,没有用到任何的图片和 js 。该时钟有时针、分针以及秒针,在时钟的圆盘内,都有详细的刻度标记,在时间中央还有数字时钟显示,功能可谓十分强大,界面十分精致。 在css3的渲染下,拥有华丽的视觉界面,这个纯css3精致时钟,你值得拥有!

纯CSS3打造精致时钟

其主要的实现原理是用animationtransform等属性来实现时钟的走动以及数字时钟的跳动;再结合使用linear-gradientborder-radiusbox-shadow等属性来美化时钟的界面。可见原理还是比较简单,只是实现的效果稍微复杂了一点,但是万变不离其宗,相信你也可以创造出更多有趣的作品来。在之前的一篇文章中《实现CSS3动态进度条及JQUERY百分比数字显示》也是利用了同样的实现原理,其效果也是非常的不错。

查看预览下载附件

注:HTML、CSS源代码太长,推荐下载附件

HTML结构代码

<div id="watch">
  <div class="frame-face"></div>
  <ul class="minute-marks">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
  <div class="digital-wrap">
    <ul class="digit-hours">
      <li>23</li>
      <li>00</li>
      <li>01</li>
      <li>02</li>
      <li>03</li>
      <li>04</li>
      <li>05</li>
      <li>06</li>
      <li>07</li>
      <li>08</li>
      <li>09</li>
      <li>10</li>
      <li>11</li>
      <li>12</li>
      <li>13</li>
      <li>14</li>
      <li>15</li>
      <li>16</li>
      <li>17</li>
      <li>18</li>
      <li>19</li>
      <li>20</li>
      <li>21</li>
      <li>22</li>
    </ul>
    <ul class="digit-minutes">
      <li>10</li>
      <li>11</li>
      <li>12</li>
      <li>13</li>
      <li>14</li>
      <li>15</li>
      <li>16</li>
      <li>17</li>
      <li>18</li>
      <li>19</li>
      <li>20</li>
      <li>21</li>
      <li>22</li>
      <li>23</li>
      <li>24</li>
      <li>25</li>
      <li>26</li>
      <li>27</li>
      <li>28</li>
      <li>29</li>
      <li>30</li>
      <li>31</li>
      <li>32</li>
      <li>33</li>
      <li>34</li>
      <li>35</li>
      <li>36</li>
      <li>37</li>
      <li>38</li>
      <li>39</li>
      <li>40</li>
      <li>41</li>
      <li>42</li>
      <li>43</li>
      <li>44</li>
      <li>45</li>
      <li>46</li>
      <li>47</li>
      <li>48</li>
      <li>49</li>
      <li>50</li>
      <li>51</li>
      <li>52</li>
      <li>53</li>
      <li>54</li>
      <li>55</li>
      <li>56</li>
      <li>57</li>
      <li>58</li>
      <li>59</li>
      <li>00</li>
      <li>01</li>
      <li>02</li>
      <li>03</li>
      <li>04</li>
      <li>05</li>
      <li>06</li>
      <li>07</li>
      <li>08</li>
      <li>09</li>
    </ul>
    <ul class="digit-seconds">
      <li>20</li>
      <li>21</li>
      <li>22</li>
      <li>23</li>
      <li>24</li>
      <li>25</li>
      <li>26</li>
      <li>27</li>
      <li>28</li>
      <li>29</li>
      <li>30</li>
      <li>31</li>
      <li>32</li>
      <li>33</li>
      <li>34</li>
      <li>35</li>
      <li>36</li>
      <li>37</li>
      <li>38</li>
      <li>39</li>
      <li>40</li>
      <li>41</li>
      <li>42</li>
      <li>43</li>
      <li>44</li>
      <li>45</li>
      <li>46</li>
      <li>47</li>
      <li>48</li>
      <li>49</li>
      <li>50</li>
      <li>51</li>
      <li>52</li>
      <li>53</li>
      <li>54</li>
      <li>55</li>
      <li>56</li>
      <li>57</li>
      <li>58</li>
      <li>59</li>
      <li>00</li>
      <li>01</li>
      <li>02</li>
      <li>03</li>
      <li>04</li>
      <li>05</li>
      <li>06</li>
      <li>07</li>
      <li>08</li>
      <li>09</li>
      <li>10</li>
      <li>11</li>
      <li>12</li>
      <li>13</li>
      <li>14</li>
      <li>15</li>
      <li>16</li>
      <li>17</li>
      <li>18</li>
      <li>19</li>
    </ul>
  </div>
  <ul class="digits">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
    <li>11</li>
    <li>12</li>
  </ul>
  <div class="hours-hand"></div>
  <div class="minutes-hand"></div>
  <div class="seconds-hand"></div>
</div>

CSS样式代码

body {
	font-size: 62.5%;
	margin: 1em;
	background: #232425;
}
ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
#watch {
	font-size: 1em;
	position: relative;
	margin: 10em 0;
}
#watch .frame-face {
	position: relative;
	width: 30em;
	height: 30em;
	margin: 2em auto;
	border-radius: 15em;
	background: -webkit-linear-gradient(top, #f9f9f9, #666);
	background: -moz-linear-gradient(top, #f9f9f9, #666);
	background: -webkit-linear-gradient(to bottom, #f9f9f9, #666);
	background: linear-gradient(to bottom, #f9f9f9, #666);
	box-shadow: rgba(0, 0, 0, .8) .5em .5em 4em;
}
#watch .frame-face:before {
	content: '';
	width: 29.4em;
	height: 29.4em;
	border-radius: 14.7em;
	position: absolute;
	top: .3em;
	left: .3em;
	background: -webkit-linear-gradient(135deg, rgba(246, 248, 249, 0) 0%, rgba(229, 235, 238, 1) 50%, rgba(205, 212, 217, 1) 51%, rgba(245, 247, 249, 0) 100%), -webkit-radial-gradient(center, ellipse cover, rgba(246, 248, 249, 1) 0%, rgba(229, 235, 238, 1) 65%, rgba(205, 212, 217, 1) 66%, rgba(245, 247, 249, 1) 100%);
	background: -moz-linear-gradient(135deg, rgba(246, 248, 249, 0) 0%, rgba(229, 235, 238, 1) 50%, rgba(205, 212, 217, 1) 51%, rgba(245, 247, 249, 0) 100%), -moz-radial-gradient(center, ellipse cover, rgba(246, 248, 249, 1) 0%, rgba(229, 235, 238, 1) 65%, rgba(205, 212, 217, 1) 66%, rgba(245, 247, 249, 1) 100%);
	background: -webkit-linear-gradient(-45deg, rgba(246, 248, 249, 0) 0%, rgba(229, 235, 238, 1) 50%, rgba(205, 212, 217, 1) 51%, rgba(245, 247, 249, 0) 100%), -webkit-radial-gradient(ellipse at center, rgba(246, 248, 249, 1) 0%, rgba(229, 235, 238, 1) 65%, rgba(205, 212, 217, 1) 66%, rgba(245, 247, 249, 1) 100%);
	background: linear-gradient(135deg, rgba(246, 248, 249, 0) 0%, rgba(229, 235, 238, 1) 50%, rgba(205, 212, 217, 1) 51%, rgba(245, 247, 249, 0) 100%), radial-gradient(ellipse at center, rgba(246, 248, 249, 1) 0%, rgba(229, 235, 238, 1) 65%, rgba(205, 212, 217, 1) 66%, rgba(245, 247, 249, 1) 100%);
}
#watch .frame-face:after {
	content: '';
	width: 28em;
	height: 28em;
	border-radius: 14.2em;
	position: absolute;
	top: .9em;
	left: .9em;
	box-shadow: inset rgba(0, 0, 0, .2) .2em .2em 1em;
	border: .1em solid rgba(0, 0, 0, .2);
	background: -webkit-linear-gradient(top, #fff, #ccc);
	background: -moz-linear-gradient(top, #fff, #ccc);
	background: -webkit-linear-gradient(to bottom, #fff, #ccc);
	background: linear-gradient(to bottom, #fff, #ccc);
}
#watch .minute-marks li {
	display: block;
	width: .2em;
	height: .6em;
	background: #929394;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -.4em 0 0 -.1em;
}
#watch .minute-marks li:first-child {
	-webkit-transform: rotate(6deg) translateY(-12.7em);
	-moz-transform: rotate(6deg) translateY(-12.7em);
	transform: rotate(6deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(2) {
	-webkit-transform: rotate(12deg) translateY(-12.7em);
	-moz-transform: rotate(12deg) translateY(-12.7em);
	transform: rotate(12deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(3) {
	-webkit-transform: rotate(18deg) translateY(-12.7em);
	-moz-transform: rotate(18deg) translateY(-12.7em);
	transform: rotate(18deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(4) {
	-webkit-transform: rotate(24deg) translateY(-12.7em);
	-moz-transform: rotate(24deg) translateY(-12.7em);
	transform: rotate(24deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(5) {
	-webkit-transform: rotate(36deg) translateY(-12.7em);
	-moz-transform: rotate(36deg) translateY(-12.7em);
	transform: rotate(36deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(6) {
	-webkit-transform: rotate(42deg) translateY(-12.7em);
	-moz-transform: rotate(42deg) translateY(-12.7em);
	transform: rotate(42deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(7) {
	-webkit-transform: rotate(48deg) translateY(-12.7em);
	-moz-transform: rotate(48deg) translateY(-12.7em);
	transform: rotate(48deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(8) {
	-webkit-transform: rotate(54deg) translateY(-12.7em);
	-moz-transform: rotate(54deg) translateY(-12.7em);
	transform: rotate(54deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(9) {
	-webkit-transform: rotate(66deg) translateY(-12.7em);
	-moz-transform: rotate(66deg) translateY(-12.7em);
	transform: rotate(66deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(10) {
	-webkit-transform: rotate(72deg) translateY(-12.7em);
	-moz-transform: rotate(72deg) translateY(-12.7em);
	transform: rotate(72deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(11) {
	-webkit-transform: rotate(78deg) translateY(-12.7em);
	-moz-transform: rotate(78deg) translateY(-12.7em);
	transform: rotate(78deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(12) {
	-webkit-transform: rotate(84deg) translateY(-12.7em);
	-moz-transform: rotate(84deg) translateY(-12.7em);
	transform: rotate(84deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(13) {
	-webkit-transform: rotate(96deg) translateY(-12.7em);
	-moz-transform: rotate(96deg) translateY(-12.7em);
	transform: rotate(96deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(14) {
	-webkit-transform: rotate(102deg) translateY(-12.7em);
	-moz-transform: rotate(102deg) translateY(-12.7em);
	transform: rotate(102deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(15) {
	-webkit-transform: rotate(108deg) translateY(-12.7em);
	-moz-transform: rotate(108deg) translateY(-12.7em);
	transform: rotate(108deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(16) {
	-webkit-transform: rotate(114deg) translateY(-12.7em);
	-moz-transform: rotate(114deg) translateY(-12.7em);
	transform: rotate(114deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(17) {
	-webkit-transform: rotate(126deg) translateY(-12.7em);
	-moz-transform: rotate(126deg) translateY(-12.7em);
	transform: rotate(126deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(18) {
	-webkit-transform: rotate(132deg) translateY(-12.7em);
	-moz-transform: rotate(132deg) translateY(-12.7em);
	transform: rotate(132deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(19) {
	-webkit-transform: rotate(138deg) translateY(-12.7em);
	-moz-transform: rotate(138deg) translateY(-12.7em);
	transform: rotate(138deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(20) {
	-webkit-transform: rotate(144deg) translateY(-12.7em);
	-moz-transform: rotate(144deg) translateY(-12.7em);
	transform: rotate(144deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(21) {
	-webkit-transform: rotate(156deg) translateY(-12.7em);
	-moz-transform: rotate(156deg) translateY(-12.7em);
	transform: rotate(156deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(22) {
	-webkit-transform: rotate(162deg) translateY(-12.7em);
	-moz-transform: rotate(162deg) translateY(-12.7em);
	transform: rotate(162deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(23) {
	-webkit-transform: rotate(168deg) translateY(-12.7em);
	-moz-transform: rotate(168deg) translateY(-12.7em);
	transform: rotate(168deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(24) {
	-webkit-transform: rotate(174deg) translateY(-12.7em);
	-moz-transform: rotate(174deg) translateY(-12.7em);
	transform: rotate(174deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(25) {
	-webkit-transform: rotate(186deg) translateY(-12.7em);
	-moz-transform: rotate(186deg) translateY(-12.7em);
	transform: rotate(186deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(26) {
	-webkit-transform: rotate(192deg) translateY(-12.7em);
	-moz-transform: rotate(192deg) translateY(-12.7em);
	transform: rotate(192deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(27) {
	-webkit-transform: rotate(198deg) translateY(-12.7em);
	-moz-transform: rotate(198deg) translateY(-12.7em);
	transform: rotate(198deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(28) {
	-webkit-transform: rotate(204deg) translateY(-12.7em);
	-moz-transform: rotate(204deg) translateY(-12.7em);
	transform: rotate(204deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(29) {
	-webkit-transform: rotate(216deg) translateY(-12.7em);
	-moz-transform: rotate(216deg) translateY(-12.7em);
	transform: rotate(216deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(30) {
	-webkit-transform: rotate(222deg) translateY(-12.7em);
	-moz-transform: rotate(222deg) translateY(-12.7em);
	transform: rotate(222deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(31) {
	-webkit-transform: rotate(228deg) translateY(-12.7em);
	-moz-transform: rotate(228deg) translateY(-12.7em);
	transform: rotate(228deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(32) {
	-webkit-transform: rotate(234deg) translateY(-12.7em);
	-moz-transform: rotate(234deg) translateY(-12.7em);
	transform: rotate(234deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(33) {
	-webkit-transform: rotate(246deg) translateY(-12.7em);
	-moz-transform: rotate(246deg) translateY(-12.7em);
	transform: rotate(246deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(34) {
	-webkit-transform: rotate(252deg) translateY(-12.7em);
	-moz-transform: rotate(252deg) translateY(-12.7em);
	transform: rotate(252deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(35) {
	-webkit-transform: rotate(258deg) translateY(-12.7em);
	-moz-transform: rotate(258deg) translateY(-12.7em);
	transform: rotate(258deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(36) {
	-webkit-transform: rotate(264deg) translateY(-12.7em);
	-moz-transform: rotate(264deg) translateY(-12.7em);
	transform: rotate(264deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(37) {
	-webkit-transform: rotate(276deg) translateY(-12.7em);
	-moz-transform: rotate(276deg) translateY(-12.7em);
	transform: rotate(276deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(38) {
	-webkit-transform: rotate(282deg) translateY(-12.7em);
	-moz-transform: rotate(282deg) translateY(-12.7em);
	transform: rotate(282deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(39) {
	-webkit-transform: rotate(288deg) translateY(-12.7em);
	-moz-transform: rotate(288deg) translateY(-12.7em);
	transform: rotate(288deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(40) {
	-webkit-transform: rotate(294deg) translateY(-12.7em);
	-moz-transform: rotate(294deg) translateY(-12.7em);
	transform: rotate(294deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(41) {
	-webkit-transform: rotate(306deg) translateY(-12.7em);
	-moz-transform: rotate(306deg) translateY(-12.7em);
	transform: rotate(306deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(42) {
	-webkit-transform: rotate(312deg) translateY(-12.7em);
	-moz-transform: rotate(312deg) translateY(-12.7em);
	transform: rotate(312deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(43) {
	-webkit-transform: rotate(318deg) translateY(-12.7em);
	-moz-transform: rotate(318deg) translateY(-12.7em);
	transform: rotate(318deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(44) {
	-webkit-transform: rotate(324deg) translateY(-12.7em);
	-moz-transform: rotate(324deg) translateY(-12.7em);
	transform: rotate(324deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(45) {
	-webkit-transform: rotate(336deg) translateY(-12.7em);
	-moz-transform: rotate(336deg) translateY(-12.7em);
	transform: rotate(336deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(46) {
	-webkit-transform: rotate(342deg) translateY(-12.7em);
	-moz-transform: rotate(342deg) translateY(-12.7em);
	transform: rotate(342deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(47) {
	-webkit-transform: rotate(348deg) translateY(-12.7em);
	-moz-transform: rotate(348deg) translateY(-12.7em);
	transform: rotate(348deg) translateY(-12.7em);
}
#watch .minute-marks li:nth-child(48) {
	-webkit-transform: rotate(354deg) translateY(-12.7em);
	-moz-transform: rotate(354deg) translateY(-12.7em);
	transform: rotate(354deg) translateY(-12.7em);
}
#watch .digits {
	width: 30em;
	height: 30em;
	border-radius: 15em;
	position: absolute;
	top: 0;
	left: 50%;
	margin-left: -15em;
}
#watch .digits li {
	font-size: 1.6em;
	display: block;
	width: 1.6em;
	height: 1.6em;
	position: absolute;
	top: 50%;
	left: 50%;
	line-height: 1.6em;
	text-align: center;
	margin: -.8em 0 0 -.8em;
	font-weight: bold;
}
#watch .digits li:nth-child(1) {
	-webkit-transform: translate(3.9em, -6.9em);
	-moz-transform: translate(3.9em, -6.9em);
	transform: translate(3.9em, -6.9em);
}
#watch .digits li:nth-child(2) {
	-webkit-transform: translate(6.9em, -4em);
	-moz-transform: translate(6.9em, -4em);
	transform: translate(6.9em, -4em);
}
#watch .digits li:nth-child(3) {
	-webkit-transform: translate(8em, 0);
	-moz-transform: translate(8em, 0);
	transform: translate(8em, 0);
}
#watch .digits li:nth-child(4) {
	-webkit-transform: translate(6.8em, 4em);
	-moz-transform: translate(6.8em, 4em);
	transform: translate(6.8em, 4em);
}
#watch .digits li:nth-child(5) {
	-webkit-transform: translate(3.9em, 6.9em);
	-moz-transform: translate(3.9em, 6.9em);
	transform: translate(3.9em, 6.9em);
}
#watch .digits li:nth-child(6) {
	-webkit-transform: translate(0, 8em);
	-moz-transform: translate(0, 8em);
	transform: translate(0, 8em);
}
#watch .digits li:nth-child(7) {
	-webkit-transform: translate(-3.9em, 6.9em);
	-moz-transform: translate(-3.9em, 6.9em);
	transform: translate(-3.9em, 6.9em);
}
#watch .digits li:nth-child(8) {
	-webkit-transform: translate(-6.8em, 4em);
	-moz-transform: translate(-6.8em, 4em);
	transform: translate(-6.8em, 4em);
}
#watch .digits li:nth-child(9) {
	-webkit-transform: translate(-8em, 0);
	-moz-transform: translate(-8em, 0);
	transform: translate(-8em, 0);
}
#watch .digits li:nth-child(10) {
	-webkit-transform: translate(-6.9em, -4em);
	-moz-transform: translate(-6.9em, -4em);
	transform: translate(-6.9em, -4em);
}
#watch .digits li:nth-child(11) {
	-webkit-transform: translate(-3.9em, -6.9em);
	-moz-transform: translate(-3.9em, -6.9em);
	transform: translate(-3.9em, -6.9em);
}
#watch .digits li:nth-child(12) {
	-webkit-transform: translate(0, -8em);
	-moz-transform: translate(0, -8em);
	transform: translate(0, -8em);
}
#watch .digits:before {
	content: '';
	width: 1.6em;
	height: 1.6em;
	border-radius: .8em;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -.8em 0 0 -.8em;
	background: #121314;
}
#watch .digits:after {
	content: '';
	width: 4em;
	height: 4em;
	border-radius: 2.2em;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -2.1em 0 0 -2.1em;
	border: .1em solid #c6c6c6;
	background: -webkit-radial-gradient(center, ellipse cover, rgba(200, 200, 200, 0), rgba(190, 190, 190, 1) 90%, rgba(130, 130, 130, 1) 100%);
	background: -moz-radial-gradient(center, ellipse cover, rgba(200, 200, 200, 0), rgba(190, 190, 190, 1) 90%, rgba(130, 130, 130, 1) 100%);
	background: -webkit-radial-gradient(ellipse at center, rgba(200, 200, 200, 0), rgba(190, 190, 190, 1) 90%, rgba(130, 130, 130, 1) 100%);
	background: radial-gradient(ellipse at center, rgba(200, 200, 200, 0), rgba(190, 190, 190, 1) 90%, rgba(130, 130, 130, 1) 100%);
}
@-webkit-keyframes hours {
to {
-webkit-transform:rotate(335deg)
}
}
@-moz-keyframes hours {
to {
-moz-transform:rotate(335deg)
}
}
@keyframes hours {
to {
transform:rotate(335deg)
}
}
#watch .hours-hand {
	width: .8em;
	height: 7em;
	border-radius: 0 0 .9em .9em;
	background: #232425;
	position: absolute;
	bottom: 50%;
	left: 50%;
	margin: 0 0 -.8em -.4em;
	box-shadow: #232425 0 0 2px;
	-webkit-transform-origin: 0.4em 6.2em;
	-webkit-transform: rotate(-25deg);
	-webkit-animation: hours 43200s linear 0s infinite;
	-moz-transform-origin: 0.4em 6.2em;
	-moz-transform: rotate(-25deg);
	-moz-animation: hours 43200s linear 0s infinite;
	transform-origin: 0.4em 6.2em;
	transform: rotate(-25deg);
	animation: hours 43200s linear 0s infinite;
}
#watch .hours-hand:before {
	content: '';
	background: inherit;
	width: 1.8em;
	height: .8em;
	border-radius: 0 0 .8em .8em;
	box-shadow: #232425 0 0 1px;
	position: absolute;
	top: -.7em;
	left: -.5em;
}
#watch .hours-hand:after {
	content: '';
	width: 0;
	height: 0;
	border: .9em solid #232425;
	border-width: 0 .9em 2.4em .9em;
	border-left-color: transparent;
	border-right-color: transparent;
	position: absolute;
	top: -3.1em;
	left: -.5em;
}
@-webkit-keyframes minutes {
to {
-webkit-transform:rotate(422deg)
}
}
@-moz-keyframes minutes {
to {
-moz-transform:rotate(422deg)
}
}
@keyframes minutes {
to {
transform:rotate(422deg)
}
}
#watch .minutes-hand {
	width: .8em;
	height: 12.5em;
	border-radius: .5em;
	background: #343536;
	position: absolute;
	bottom: 50%;
	left: 50%;
	margin: 0 0 -1.5em -.4em;
	box-shadow: #343536 0 0 2px;
	-webkit-transform-origin: 0.4em 11em;
	-webkit-transform: rotate(62deg);
	-webkit-animation: minutes 3600s linear 0s infinite;
	-moz-transform-origin: 0.4em 11em;
	-moz-transform: rotate(62deg);
	-moz-animation: minutes 3600s linear 0s infinite;
	transform-origin: 0.4em 11em;
	transform: rotate(62deg);
	animation: minutes 3600s linear 0s infinite;
}
@-webkit-keyframes seconds {
to {
-webkit-transform:rotate(480deg)
}
}
@-moz-keyframes seconds {
to {
-moz-transform:rotate(480deg)
}
}
@keyframes seconds {
to {
transform:rotate(480deg)
}
}
#watch .seconds-hand {
	width: .2em;
	height: 14em;
	border-radius: .1em .1em 0 0/10em 10em 0 0;
	background: #c00;
	position: absolute;
	bottom: 50%;
	left: 50%;
	margin: 0 0 -2em -.1em;
	box-shadow: rgba(0, 0, 0, .8) 0 0 .2em;
	-webkit-transform-origin: 0.1em 12em;
	-webkit-transform: rotate(120deg);
	-webkit-animation: seconds 60s steps(60, end) 0s infinite;
	-moz-transform-origin: 0.1em 12em;
	-moz-transform: rotate(120deg);
	-moz-animation: seconds 60s steps(60, end) 0s infinite;
	transform-origin: 0.1em 12em;
	transform: rotate(120deg);
	animation: seconds 60s steps(60, end) 0s infinite;
}
#watch .seconds-hand:after {
	content: '';
	width: 1.4em;
	height: 1.4em;
	border-radius: .7em;
	background: inherit;
	position: absolute;
	left: -.65em;
	bottom: 1.35em;
}
#watch .seconds-hand:before {
	content: '';
	width: .8em;
	height: 3em;
	border-radius: .2em .2em .4em .4em/.2em .2em 2em 2em;
	box-shadow: rgba(0, 0, 0, .8) 0 0 .2em;
	background: inherit;
	position: absolute;
	left: -.35em;
	bottom: -3em;
}
#watch .digital-wrap {
	width: 9em;
	height: 3em;
	border: .1em solid #222;
	border-radius: .2em;
	position: absolute;
	top: 50%;
	left: 50%;
	margin: 3em 0 0 -4.5em;
	overflow: hidden;
	background: #4c4c4c;
	background: -webkit-linear-gradient(top, #4c4c4c 0%, #0f0f0f 100%);
	background: -moz-linear-gradient(top, #4c4c4c 0%, #0f0f0f 100%);
	background: -ms-linear-gradient(top, #4c4c4c 0%, #0f0f0f 100%);
	background: -o-linear-gradient(top, #4c4c4c 0%, #0f0f0f 100%);
	background: -webkit-linear-gradient(to bottom, #4c4c4c 0%, #0f0f0f 100%);
	background: -moz-linear-gradient(to bottom, #4c4c4c 0%, #0f0f0f 100%);
	background: linear-gradient(to bottom, #4c4c4c 0%, #0f0f0f 100%);
}
#watch .digital-wrap ul {
	float: left;
	width: 2.85em;
	height: 3em;
	border-right: .1em solid #000;
	color: #ddd;
	font-family: Consolas, monaco, monospace;
}
#watch .digital-wrap ul:last-child {
	border: none
}
#watch .digital-wrap li {
	font-size: 1.5em;
	line-height: 2;
	letter-spacing: 2px;
	text-align: center;
	position: relative;
	left: 1px;
}
#watch .digit-minutes li {
	-webkit-animation: dsm 3600s steps(60, end) 0s infinite;
	-moz-animation: dsm 3600s steps(60, end) 0s infinite;
	animation: dsm 3600s steps(60, end) 0s infinite;
}
#watch .digit-seconds li {
	-webkit-animation: dsm 60s steps(60, end) 0s infinite;
	-moz-animation: dsm 60s steps(60, end) 0s infinite;
	animation: dsm 60s steps(60, end) 0s infinite;
}
@-webkit-keyframes dsm {
 to {
-webkit-transform:translateY(-120em)
}
}
@-moz-keyframes dsm {
 to {
-moz-transform:translateY(-120em)
}
}
@keyframes dsm {
 to {
transform:translateY(-120em)
}
}
.footer {
	text-align: center;
	font: 12px "Open Sans Light", "Open Sans", "Segoe UI", Helvetica, Arial;
}
.footer a {
	color: #999;
	text-decoration: none;
}

查看预览下载附件

全部评论 / 17

  1. 可以改时间嘛??从哪里改??

    远离 2013-02-18
    20
  2. 我这边钟走出来的不是正确的时间……而是23:10:20开始走,弄了半天也不知道让它走正确的时间……纠结死了

    19
    1. Javin

      这个是静态的时间,没有动态获取。

      1号 Javin 2013-02-18
  3. 好长的代码,服务器读它们不吃力吧?

    18
  4. 好牛逼的样子

    宁前道 2013-02-18
    17
  5. 收下了~

    16
  6. 感觉人类已经阻止不了CSS3了,已经无所不能。。。。

    博主的博文和主题一样精彩,赞一个,不知道还有友链的位置不?

    深蓝 2013-02-18
    15
  7. 纯CSS3出来的效果啊,很逼真啊!

    正仔 2013-02-18
    14
  8. 这个钟做得真漂亮呀,很想试试放到我的博客上去呢。

    小小 2013-02-18
    13
  9. 整体页面布局 效果相当不错 学习了

    013 2013-02-18
    12
  10. 用这么长的代码做一个时钟?个人博客可以考虑,如果做商业路线网站,还需要慎重!

    11
  11. 太牛B了,这么长的代码不知道会不会影响加载速度

    10
  12. 看来随着html5和css3的流行化加快,两者包含的一些功能跟js产生交集的地方出现得也越来越多了。

    乾坤 2013-02-18
    9
    1. Javin

      现在主要的技术就是:HTMLT+CSS3+js

      1号 Javin 2013-02-18
  13. 好犀利啊,这个风格越看越舒服。

    时生 2013-02-18
    8
  14. 时间确实很精致不可否认,但是代码有点长了个人感觉!!!

    7
    1. Javin

      代码长不是什么问题,而且那些代码都很简单

      1号 Javin 2013-02-18