2014年爱奇艺前端相关面试题【1】

题目原帖地址:http://www.w3cfuns.com/forum.php?mod=viewthread&tid=5600182&extra=page%3D1%26filter%3Dtypeid%26typeid%3D177%26typeid%3D177

感觉这套题还是很基础,所以留下来以后看~~

1)写一种清除浮动的方法(在不添加任何语义标签的前提下)

 1 <style type="text/css">
 2 
 3   .clearfix:after {
 4     content: ".";
 5     display: block;
 6     height: 0;
 7     clear: both;
 8     visibility: hidden;
 9     }
10 
11 .clearfix {display: inline-block;}  /* for IE/Mac */
12 
13 </style><!-- main stylesheet ends, CC with new stylesheet below... -->
14 
15 <!--[if IE]>
16 <style type="text/css">
17   .clearfix {
18     zoom: 1;     /* triggers hasLayout */
19     display: block;     /* resets display for IE/Win */
20     }  /* Only IE can see inside the conditional comment
21     and read this CSS rule. Don't ever use a normal HTML
22     comment inside the CC or it will close prematurely. */
23 </style>
24 <![endif]-->

       这个资源也不错,可以参考: http://www.cnblogs.com/dolphinX/p/3508869.html

2)CSS优先级是怎样判断的

      CSS选择器定义请戳:http://www.w3school.com.cn/css/css_selector_type.asp

      这段总结原文请戳:http://www.cnblogs.com/yongzhi/articles/1267645.html

      通常我们可以将CSS的优先级由高到低分为六组:

  1. 无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
  2. 第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
  3. 第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
  4. 第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器(如a:link定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
  5. 第五级由一个或多个 标签选择器、伪元素(如 :after)义。如 div{margin:6px;}  覆盖  *{margin:10px;} 。
  6. 最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。

     另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。     

     当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:

  1. 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
  2. 第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。
  3. 第三级的优先属性由<link/>标签所引入的样式表定义。
  4. 第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。
  5. 第五级优先的样式有用户设定。
  6. 最低级的优先权由浏览器默认。

3)font-family:Tahoma;font-size:14px;line-height:22px;font-weight:bold;写出CSS的缩写

     font:14px/22px bold Tahoma; 

     常见DIV+CSS缩写属性(出自:http://www.divcss5.com/rumen/r115.shtml):
     1、CSS 文本

        font-size:12px; font-weight:bold; font-family:Arial, Helvetica, sans-serif; line-height:22px;

        简写缩写为 font:12px/22px bold Arial, Helvetica, sans-serif;

     2、CSS 背景

        background-color:#F00;background-image:url(图片地址);background-position:bottom;background-repeat:no-repeat;

        属性缩写为:background:#F00 url(图片地址) no-repeat left bottom

     3、CSS 内补距(CSS padding):

        padding-top:5px; padding-bottom:10px; padding-left:15px; padding-right:20px;

        即可缩写为padding:5px 20px 10px 15px;

        padding-top:5px; padding-bottom:5px; padding-left:10px; padding-right:10px;

        缩写为padding:5px 10px;

     4、CSS 外边距(CSS margin):

        margin-top:5px; margin-bottom:10px; margin-left:15px; margin-right:20px;

        即可缩写为margin:5px 20px 10px 15px;

       margin-top:5px; margin-bottom:5px; margin-left:10px; margin-right:10px;

       缩写为margin:5px 10px;

     5、CSS 边框

       border-left:1px solid #000;border-right:1px solid #000;border-top:1px solid #000;border-bottom:1px solid #000;

       即可缩写为:border:1px solid #000;


4)CSS怎样定义才能使一个没有定义宽度的div水平居中

   1.绝对定位法<div style=’position:absolute;top:50%;left:50%;’></div>

   2.单行垂直居中(重点是里面的文字是单行)
     div {
        height:25px;
        line-height:25px;
        overflow:hidden;
       }

    3.多行未知高度文字的垂直居中

      div {
          padding:xxpx; 
       }

    4.多行文本固定高度的垂直居中 (IE6不能正确地理解display:table和display:table-cell,所以要用css hack,想知道为什么这样做,可以参考

     http://www.cnblogs.com/chuncn/archive/2008/10/09/1307321.html,)

     div#wrap父容器 {
         display:table;
         border:1px solid #FF0099;
         background-color:#FFCCFF;
         width:760px;
         height:400px;
        _position:relative;
        overflow:hidden;
     }
     div#subwrap子容器 {
        vertical-align:middle;
        display:table-cell;
       _position:absolute;
       _top:50%;
      }
     div#content内容 {
      _position:relative;
      _top:-50%;
      }

    5.宽度高度不固定div的水平居中  

   html部分
   <div class="container">
   <div class="center"><a href="http://gaohaixian.blog.163.com/blog/#">1</a><a href="http://gaohaixian.blog.163.com/blog/#">2</a><a     href="http://gaohaixian.blog.163.com/blog/#">3</a>
   </div>


   css部分
  .container{width:500px;height:80px;background:#C2300B;margin-left:50px;padding-top:10px;text-align:center;}
  .center{display:inline-block;border:2px solid #fff;}
  .center{_display:inline;} /*针对ie6 hack*/
  .center a{float:left;border:1px solid #fff;padding:5px 10px;margin:10px;color:#fff;text-decoration:none;}

   6、垂直水平居中

   html部分
  <div id="vc"><div id="vci"><div id="content">
   我们垂直居中了,我们水平居中了
  </div></div></div>


   css部分
  #vc { display:table; background-color:#C2300B; width:500px; height:200px; overflow:hidden; margin-left:50px; }
  #vci { vertical-align:middle; display:table-cell; text-align:center; _position:absolute; _top:50%; _left:50%; }
  #content { color:#fff; border:1px solid #fff; display:inline-block; _position:relative; _top:-50%; _left:-50%; }

    7、请实现下面浮层demo

      1. 这是一个盖在页面上的浮层,上下左右居中;浮层展示时,页面不可滚动;
      2. 浏览器窗口缩小时,浮层跟着缩小,最小(320px);窗口放大,浮层跟着放大,最大(650px);
      3. 尽可能用HTML5/CSS3方式写,可以不支持IE
 1 <!DOCTYPE html>
 2 <html>
 3  <head> 
 4   <meta http-equiv="content-type" content="text/html;charset=utf-8" />
 5   <meta name="author" content="" />
 6   <meta name="keywords" content="" />
 7   <meta name="description" content="" />
 8   <title> new document </title>
 9   <style>
10     .layer{display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:1;background-color:rgba(0,0,0,0.8);}
11     .layer .box{position:absolute;min-width:320px;max-width:650px;width:60%;height:500px;left:0;top:0;right:0;bottom:0;margin:auto;background-color:#FFF;}
12     .layer .close{position:absolute;right:10px;top:10px;cursor:pointer;}
13   </style>
14  </head>
15  <body>
16 
17   
18   <input type="button" value="显示层" />
19   <br /><br /><br />
20   <br /><br /><br />
21   <br /><br /><br />
22   <br /><br /><br />
23   <br /><br /><br />
24   <br /><br /><br />
25   <br /><br /><br />
26   <br /><br /><br />
27   <br /><br /><br />
28   <br /><br /><br />
29   <br /><br /><br />
30   <br /><br /><br />
31   <br /><br /><br />
32   <br /><br /><br />
33   <br /><br /><br />
34   <br /><br /><br />
35   <br /><br /><br />
36   <br /><br /><br />
37   <br /><br /><br />
38   <br /><br /><br />
39   <br /><br /><br />
40   <br /><br /><br />
41   <br /><br /><br />
42   <br /><br /><br />
43   <br /><br /><br />
44   <br /><br /><br />
45   <br /><br /><br />
46   <br /><br /><br />
47   <br /><br /><br />
48   <br /><br /><br />
49   <br /><br /><br />
50   <br /><br /><br />
51   <br /><br /><br />
52   <br /><br /><br />
53   <br /><br /><br />
54   <br />ssss
55   <div class="layer">
56     <div class="box">
57       <h3>A set of pictures</h3>
58       <span class="close">&times;</span>
59       画片内容
60     </div>
61   </div> 
62   <script>
63 
64     document.getElementsByTagName("input")[0].addEventListener("click",function(){
65       document.querySelector(".layer").style.display="block";
66       document.documentElement.style.overflowY="hidden";
67     },false);
68     document.querySelector(".close").addEventListener("click",function(){
69       document.querySelector(".layer").style.display="none";
70       document.documentElement.style.overflowY="auto";
71     },false);
72 
73   </script>
74  </body>
75 </html>
View Code

 

5)说说CSS Sprite的优缺点    

优点:  
   利用CSS Sprites能很好地减少网页的http请求;
   CSS Sprites能减少图片的字节;
   解决了网页设计师在图片命名上的困扰;
   更换风格方便。
缺点:
   在图片合并的造成多余的工作量;
   开发过程中定位的麻烦;
   维护复杂

6)说说em和strong标签的语义

  • <em> – 原本表示强调,现在指有压力的强调。
  • <strong> – 原本表示更强强调,现指相当重要,基本上都是一样的。
  • <i><b>都是文字样式元素,没有任何语义,就是用来控制文字的长相的,因此又称为表象元素,是一度不推荐使用的标签。如今,这两个元素有了语义,但是,它们的样式又能被CSS改变。像是<b>元素,并不是非得是加粗。正因如此,推荐使用类名来表示其含义以便日后可以轻松改变其样式。

7).test a{}和.test .exp{}两种样式写法哪种性能比较好,说明理由
<div class="test">
        <a href="" class="exp">1</a>
        <a href="" class="exp">2</a>
        <a href="" class="exp">3</a>
        <a href="" class="exp">4</a>
</div>

     下面摘自:http://www.w3cplus.com/css/css-selector-performance

     浏览器读取你的选择器,遵循的原则是从选择器的右边到左边读取。换句话说,浏览器读取选择器的顺序是由右到左进行。选择器的最后一部分,也就是选择器的最右边部分被称为“关键选择器”,它将决定你的选择器的效率如何,是高还是低。

     选择器有一个固有的效率,我们来看Steve Souders给排的一个顺序:

  1. id选择器(#myid)
  2. 类选择器(.myclassname)
  3. 标签选择器(div,h1,p)
  4. 相邻选择器(h1+p)
  5. 子选择器(ul > li)
  6. 后代选择器(li a)
  7. 通配符选择器(*)
  8. 属性选择器(a[rel="external"])
  9. 伪类选择器(a:hover,li:nth-child)

     上面九种选择器的效率是从高到低排下来的,基中ID选择器的效率是最高,而伪类选择器的效率则是最底。

     CSS选择器优化建议:

  1. 避免普遍规则
  2. 不要在ID选择器前加标签名或类名
  3. 不要在类名选择器前加标签名
  4. 尽可能使用具体的类别
  5. 避免使用后代选择器
  6. 标签分类规则中不应该包含一个子选择器
  7. 子选择器的问题
  8. 借助相关继承关系
  9. 使用范围内的样式表

8)javascript中怎么给一个div定义margin-top:30px样式 

document.getElementById("div1").style.marginTop="30px";

   

9)下面代码运行后,alert弹出的值为多少?
(function(){
        var a=[1,2,3];
        var b=a;
        a[0]=99;
        alert(b);
})();

   [99,2,3]


10)写一个简单的选项卡js

       出自:http://js.fgm.cc/learn/lesson2/07.html

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 
  3 <html xmlns="http://www.w3.org/1999/xhtml">
  4 
  5 <head>
  6 
  7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8 
  9 <title>简易选项卡</title>
 10 
 11 <style>
 12 
 13 body,ul,li{margin:0;padding:0;}
 14 
 15 body{font:12px/1.5 Tahoma;}
 16 
 17 #outer{width:450px;margin:10px auto;}
 18 
 19 #tab{overflow:hidden;zoom:1;background:#000;border:1px solid #000;}
 20 
 21 #tab li{float:left;color:#fff;height:30px;cursor:pointer;line-height:30px;list-style-type:none;padding:0 20px;}
 22 
 23 #tab li.current{color:#000;background:#ccc;}
 24 
 25 #content{border:1px solid #000;border-top-width:0;}
 26 
 27 #content ul{line-height:25px;display:none;margin:0 30px;padding:10px 0;}
 28 
 29 </style>
 30 
 31 <script>
 32 
 33 window.onload = function ()
 34 
 35 {
 36 
 37     var oLi = document.getElementById("tab").getElementsByTagName("li");
 38 
 39     var oUl = document.getElementById("content").getElementsByTagName("ul");
 40 
 41     
 42 
 43     for(var i = 0; i < oLi.length; i++)
 44 
 45     {
 46 
 47         oLi[i].index = i;
 48 
 49         oLi[i].onmouseover = function ()
 50 
 51         {
 52 
 53             for(var n = 0; n < oLi.length; n++) oLi[n].className="";
 54 
 55             this.className = "current";
 56 
 57             for(var n = 0; n < oUl.length; n++) oUl[n].style.display = "none";
 58 
 59             oUl[this.index].style.display = "block"
 60 
 61         }    
 62 
 63     }
 64 
 65 }
 66 
 67 </script>
 68 
 69 </head>
 70 
 71 <body>
 72 
 73 <div id="outer">
 74 
 75     <ul id="tab">
 76 
 77         <li class="current">第一课</li>
 78 
 79         <li>第二课</li>
 80 
 81         <li>第三课</li>
 82 
 83     </ul>
 84 
 85     <div id="content">
 86 
 87         <ul style="display:block;">
 88 
 89             <li>网页特效原理分析</li>
 90 
 91             <li>响应用户操作</li>
 92 
 93             <li>提示框效果</li>
 94 
 95             <li>事件驱动</li>
 96 
 97             <li>元素属性操作</li>
 98 
 99             <li>动手编写第一个JS特效</li>
100 
101             <li>引入函数</li>
102 
103             <li>网页换肤效果</li>
104 
105             <li>展开/收缩播放列表效果</li>
106 
107         </ul>
108 
109         <ul>
110 
111             <li>改变网页背景颜色</li>
112 
113             <li>函数传参</li>
114 
115             <li>高重用性函数的编写</li>
116 
117             <li>126邮箱全选效果</li>
118 
119             <li>循环及遍历操作</li>
120 
121             <li>调试器的简单使用</li>
122 
123             <li>典型循环的构成</li>
124 
125             <li>for循环配合if判断</li>
126 
127             <li>className的使用</li>
128 
129             <li>innerHTML的使用</li>
130 
131             <li>戛纳印象效果</li>
132 
133             <li>数组</li>
134 
135             <li>字符串连接</li>
136 
137         </ul>
138 
139         <ul>
140 
141             <li>JavaScript组成:ECMAScript、DOM、BOM,JavaScript兼容性来源</li>
142 
143             <li>JavaScript出现的位置、优缺点</li>
144 
145             <li>变量、类型、typeof、数据类型转换、变量作用域</li>
146 
147             <li>闭包:什么是闭包、简单应用、闭包缺点</li>
148 
149             <li>运算符:算术、赋值、关系、逻辑、其他运算符</li>
150 
151             <li>程序流程控制:判断、循环、跳出</li>
152 
153             <li>命名规范:命名规范及必要性、匈牙利命名法</li>
154 
155             <li>函数详解:函数构成、调用、事件、传参数、可变参、返回值</li>
156 
157             <li>定时器的使用:setInterval、setTimeout</li>
158 
159             <li>定时器应用:站长站导航效果</li>
160 
161             <li>定时器应用:自动播放的选项卡</li>
162 
163             <li>定时器应用:数码时钟</li>
164 
165             <li>程序调试方法</li>
166 
167         </ul>
168 
169     </div>
170 
171 </div>
172 
173 </body>
174 
175 </html>

 

posted @ 2014-06-04 16:15  MissUU  阅读(759)  评论(0编辑  收藏  举报