题目原帖地址: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的优先级由高到低分为六组:
- 无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
- 第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
- 第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
- 第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器(如
a:link
)定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;} - 第五级由一个或多个 标签选择器、伪元素(如 :after)定义。如 div{margin:6px;} 覆盖 *{margin:10px;} 。
- 最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。
另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。
当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:
- 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
- 第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。
- 第三级的优先属性由<link/>标签所引入的样式表定义。
- 第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。
- 第五级优先的样式有用户设定。
- 最低级的优先权由浏览器默认。
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;
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{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; 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 <!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">×</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>
5)说说CSS Sprite的优缺点
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给排的一个顺序:
- id选择器(#myid)
- 类选择器(.myclassname)
- 标签选择器(div,h1,p)
- 相邻选择器(h1+p)
- 子选择器(ul > li)
- 后代选择器(li a)
- 通配符选择器(*)
- 属性选择器(a[rel="external"])
- 伪类选择器(a:hover,li:nth-child)
上面九种选择器的效率是从高到低排下来的,基中ID选择器的效率是最高,而伪类选择器的效率则是最底。
CSS选择器优化建议:
- 避免普遍规则
- 不要在ID选择器前加标签名或类名
- 不要在类名选择器前加标签名
- 尽可能使用具体的类别
- 避免使用后代选择器
- 标签分类规则中不应该包含一个子选择器
- 子选择器的问题
- 借助相关继承关系
- 使用范围内的样式表
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>