升班测试01
1、详细说下什么是web标准?
2、 请写出一个“三列布局,左右定宽,中间宽度自适应"的例子(纯css)
3、请列举出任意一种兼容1E678和Firefox的Css Hack写法
4、用javascript写一个正序的九九乘法表
5、 你知道哪些浏览器内核?列举常见的兼容性问题及解决方案(至少两种)
6、box-sizing 常见的属性有哪些?分别有什么作用
7、用javascript 写一个function,算下今年还剩多少秒
8、详细描述下浮动的概念
9、:before 和:before的区别?
10、table布局相对于div布局有什么缺点?
事件委托的原理:の
事件委托是利用事件的冒泡原理来实现的,何为事件冒泡呢?就是事件从最深的节点开始,然后逐步向上传播事件,举个例子:页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。
1、详细说下什么是web标准?
Web标准的目的是创建一个统一的Web表现层的技术标准,以便通过不同的平台向用户显示内容,目前Web标准是唯一的跨平台和跨客户端技术,Web的标准化 技术也变成了三大部分组成的标准:
HTML结构、CSS表现、JavaScript行为 (结构层 表现层 行为层)
2、 请写出一个“三列布局,左右定宽,中间宽度自适应"的例子(纯css)
1
2
3
弹性盒布局:
.box{
display: flex;
.left,.right{
width: 100px;
height: 100px;
background: red
}
.center{
flex: 1
}
}
3、请列举出任意一种兼容1E678和Firefox的Css Hack写法
“-”减号是IE6专有的hack
“*”是IE7专有hack
"\9" IE6.7.8.9.10都生效 FireFox@-moz-document url-prefix()
4、用javascript写一个正序的九九乘法表
var cont= "";
for(i = 1; i <= 9; i++){
for(j = 1; j <= i; j++){
cont +=`${j}*${i}=${i*j};${(i*j).toString().length >1 ? " " : " "
}`;
}
cont += '
' }
document.write(cont);
5、 你知道哪些浏览器内核?列举常见的兼容性问题及解决方案(至少两种)
-webkit- 谷歌 、 -moz- 火狐、 -ms- IE、 -0- 欧鹏
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。 碰到频率:100% 解决方案:CSS里 *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。 碰到频率:100% 解决方案:CSS里 *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度 问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度 碰到频率:60% 解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。 备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。
浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug 问题症状:IE6里的间距比超过设置的间距 碰到几率:20% 解决方案:在display:block;后面加入display:inline;display:table; 备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。
浏览器兼容问题五:图片默认有间距 问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。 碰到几率:20% 解决方案:使用float属性为img布局 备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)
浏览器兼容问题六:标签最低高度设置min-height不兼容 问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容 碰到几率:5% 解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;} 备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。
6、box-sizing 常见的属性有哪些?分别有什么作用
1、border-box 元素指定的任何内边距和边框都将在已设定的宽度和高度进行绘制。从设定的宽度和高度分别减去边框和内边框距才能得到内容的宽度和高度
2、content-box 宽度和高度分别应用到元素的内容款,在宽度和高度之外绘制元素的内边距的变框(元素默认效果)
7、用javascript 写一个function,算下今年还剩多少秒
function counter(){
var date = new Date();
var year = date.getFullYear();
var date2 = new Date(year,11,30);
var time = (date2 - date)/1000;
var day = Math.ceil(time/(24*60*60)*(24*60*60));
console.log(day)
}
counter();
8、详细描述下浮动的概念
浮动的元素会尽力的往左或往右贴近父元素的左边缘或右边缘,直到遇到左边缘或者右边缘,或 者浮动的元素为止 浮动的元素会变成行内块 会脱离文档流 会影响后面的元素,不会影响前面的元素
9、:before 和::before的区别? 相同点 都可以用来表示伪类对象,用来设置对象前的内容 :befor和::before写法是等效的 不同点 :befor是Css2的写法,::before是Css3的写法 :before的兼容性要比::before好 ,不过在H5开发中建议使用::before比较好
10、table布局相对于div布局有什么缺点?
一、div+css布局的好处:
1.符合W3C标准,代码结构清晰明了,结构、样式和行为分离,带来足够好的可维护性。
2.布局精准,网站版面布局修改简单。
3.加快了页面的加载速度(最重要的)(在IE中要将整个table加载完了才显示内容)。
4.节约站点所占的空间和站点的流量。
5.用只包含结构化内容的HTML代替嵌套的标签,提高另外搜索引擎对网页的搜索效率。
二、table布局的好处
(table布局也不是一点用的没有,这点是毋庸置疑的)
1.容易上手。
2.可以形成复杂的变化,简单快速。
3.表现上更加“严“谨”,在不同浏览器中都能得到很好的兼容。
table缺点:
1、Table要比其它html标记占更多的字节。(延迟下载时间,占用服务器更多的流量资源。)
2、Tablle会阻挡浏览器渲染引擎的渲染顺序。(会延迟页面的生成速度,让用户等待更久的时间。)
3、Table里显示图片时需要你把单个、有逻辑性的图片切成多个图。(增加设计的复杂度,增加页面加载时间,增加HTTP会话数。)
4、在某些浏览器中Table里的文字的拷贝会出现问题。(这会让用户不悦。)
5、Table会影响其内部的某些布局属性的生效(比如里的元素的height:100%)(这会限制你页面设计的自由性。)
6、一旦学了CSS知识,你会发现使用table做页面布局会变得更麻烦。(先花时间学一些CSS知识,会省去你以后大量的时间。)
7、table对对于页面布局来说,从语义上看是不正确的。(它描述的是表现,而不是内容。)
8、table代码会让阅读者抓狂。(不但无法利用CSS,而且会你不知所云)
9、table一旦设计完成就变成死的,很难通过CSS让它展现新的面貌。