两道淘宝的css测试练习题

准备换工作了,周末在家充电,本来想封装个插件的。

但是看到个有意思的博文,原作者处理的不是很好,感觉有点意思我就研究一下。

原文地址:http://www.cnblogs.com/yexiaochai/archive/2013/05/18/3085536.html

我完成的效果预览:http://jsfiddle.net/dtdxrk/cbSfX/embedded/result/

第一题:使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)

简单分析一下:这题没什么好说的项目开发时经常用到的效果 a元素块级化 :hover的时候相对定位 改变z-index

第二题:使用一个标签和纯CSS <a href="#" title="订阅博客">订阅博客</a> 实现如图效果,文字始终保持左边距10px, 下边距5px,改变字体大小(12px-50px)时,边距保持不变,不使用 content:"订阅博客",兼容现代浏览器

其实第二题挺有意思的,需要完成两个动画效果:

1.只能用一个元素 a 如果你display:block块级化 就不能改变文字的位置了 所以使用display:table-cell 就可以使用vertical-align:bottom

2.文字放大动画 用的是CSS3 Transition

3.鼠标放上去有个背景颜色的改变动画 用到了CSS3 Animation 目前Firefox还不支持

总结:

1.淘宝ued确实牛 两道题短小精干

2.由于各个浏览器的兼容问题 都没有看过css3 又走别人后面了

相关学习地址:

CSS3 Transition :http://www.w3cplus.com/content/css3-transition

CSS3 Animation :http://www.w3cplus.com/content/css3-animation 

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5   <title>css淘宝测试练习题</title>
 6   <style type="text/css">
 7   *{margin: 0;padding: 0;font-size: 12px;line-height: 1;font-family:  'Microsoft Yahei',Arial;}
 8   h1{background-color: green;color: #fff;padding: 10px;font-size: 16px;font-weight: normal;}
 9   a{text-decoration: none;}
10 
11   #box1{width:180px;height:180px;overflow: hidden;}
12   #box1 a{display: block;float:left;z-index:1;border: 5px solid blue;margin-right: -5px; margin-bottom:-5px;width: 50px;height: 50px;line-height: 50px;text-align: center;}
13   #box1 a:hover{border-color: red;position: relative;z-index: 2;}
14 
15   #box2{ text-align: left;width: 500px;height:100px;padding-left: 10px;padding-bottom: 5px; display:table-cell; vertical-align:bottom;border-bottom: 3px solid red;background-color: #a0d0e0;color: #000;transition: font-size 4s;}
16   #box2:hover{background-color: #a0d0e0;-webkit-animation-name:'wobble';-webkit-animation-duration:0.3s;font-size: 50px;}
17   @-webkit-keyframes 'wobble' {
18      50% {
19         background: green;
20      }
21      100% {
22         background: #a0d0e0;
23      }
24   }
25   </style>
26 </head>
27 <body>
28 <h1>一.使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)</h1>
29 <img src="//images0.cnblogs.com/blog/294743/201305/18155307-5204bc8ef6164feb87953dd7f264158b.gif">
30 <div id="box1">
31   <a href="#">1</a>
32   <a href="#">2</a>
33   <a href="#">3</a>
34   <a href="#">4</a>
35   <a href="#">5</a>
36   <a href="#">6</a>
37   <a href="#">7</a>
38   <a href="#">8</a>
39   <a href="#">9</a>
40 </div>
41 
42 
43 <h1>二.使用一个标签和纯CSS a href="#" title="订阅博客" 订阅博客 a 实现如图效果,文字始终保持左边距10px, 下边距5px,改变字体大小(12px-50px)时,边距保持不变,不使用 content:"订阅博客",兼容现代浏览器</h1>
44 <img src="//images0.cnblogs.com/blog/294743/201305/18155433-83a8a694edc3490d81efde98cc3b09b2.gif">
45 
46   <a href="#" id="box2" title="订阅博客">订阅博客</a>
47 
48 </body>
49 </html>
原文地址:https://www.cnblogs.com/dtdxrk/p/3098772.html