今天为大家分享一个纯CSS3打造的精致时钟,没有用到任何的图片和 js 。该时钟有时针、分针以及秒针,在时钟的圆盘内,都有详细的刻度标记,在时间中央还有数字时钟显示,功能可谓十分强大,界面十分精致。 在css3的渲染下,拥有华丽的视觉界面,这个纯css3精致时钟,你值得拥有!
其主要的实现原理是用animation
、transform
等属性来实现时钟的走动以及数字时钟的跳动;再结合使用linear-gradient
、border-radius
、box-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; }
可以改时间嘛??从哪里改??
我这边钟走出来的不是正确的时间……而是23:10:20开始走,弄了半天也不知道让它走正确的时间……纠结死了
这个是静态的时间,没有动态获取。
好长的代码,服务器读它们不吃力吧?
好牛逼的样子
收下了~
感觉人类已经阻止不了CSS3了,已经无所不能。。。。
博主的博文和主题一样精彩,赞一个,不知道还有友链的位置不?
纯CSS3出来的效果啊,很逼真啊!
这个钟做得真漂亮呀,很想试试放到我的博客上去呢。
整体页面布局 效果相当不错 学习了
用这么长的代码做一个时钟?个人博客可以考虑,如果做商业路线网站,还需要慎重!
太牛B了,这么长的代码不知道会不会影响加载速度
看来随着html5和css3的流行化加快,两者包含的一些功能跟js产生交集的地方出现得也越来越多了。
现在主要的技术就是:HTMLT+CSS3+js
好犀利啊,这个风格越看越舒服。
时间确实很精致不可否认,但是代码有点长了个人感觉!!!
代码长不是什么问题,而且那些代码都很简单