IMWeb提升营Day4
来源:互联网 发布:淘宝待付款订单有效期 编辑:程序博客网 时间:2024/05/16 06:40
2017.5.27
今日早报
- 微软将所有windows代码库迁移到Git
- 微信小程序能力持续提升,可以更好地拓展应用场景分析用户
- 小程序码数量不受限制
- 支付成功后支持7天内下发3条模板消息
- 新增”用户画像”功能,性别、年龄、地区、设备分布
- 阿里巴巴和易果生鲜签订了股份转让合同,成为联华超市第二大股东
前端常见题目
问题1: 清除浮动的几种方式,各自的优缺点
- 方法一:添加新的元素 、应用 clear:both;
- 优:理论上能清楚任何标签
- 缺:增加无意义的标签
HTML
<div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="clear"></div></div>
CSS
.clear{clear:both; height: 0; line-height: 0; font-size: 0}
- 方法二:父级div定义 overflow: auto(注意:是父级div也就是这里的 div.outer)
- 缺:空标签元素清除浮动而不得不增加无意代码的弊端
- 优:使用zoom:1用于兼容IE)
- 原理:使用overflow属性来清除浮动有一点需要注意,overflow属性共有三个属性值:hidden,auto,visible。我们可以使用hiddent和auto值来清除浮动,但切记不能使用visible值,如果使用这个值将无法达到清除浮动效果,其他两个值都可以
HTML
<div class="outer over-flow"> //这里添加了一个class <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <!--<div class="clear"></div>--></div>
CSS
.over-flow{ overflow: auto; zoom: 1; //zoom: 1; 是在处理兼容性问题}
- 方法三: 据说是最高大上的方法 :after 方法:(注意:作用于浮动元素的父亲)
- (用于非IE浏览器)
- 原理:这种方法清除浮动是现在网上最拉风的一种清除浮动,他就是利用:after和:before来在元素内部插入两个元素块,从面达到清除浮动的效果。其实现原理类似于clear:both方法,只是区别在于:clear在html插入一个div.clear标签,而outer利用其伪类clear:after在元素内部增加一个类似于div.clear的效果。
CSS
.outer {zoom:1;} /*==for IE6/7 Maxthon2==*/.outer :after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;} /*==for FF/chrome/opera/IE8==*//*其中clear:both;指清除所有浮动;content: '.'; display:block;对于FF/chrome/opera/IE8不能缺少,其中content()可以取值也可以为空。visibility:hidden;的作用是允许浏览器渲染它,但是不显示出来,这样才能实现清楚浮动。*/
问题2: call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
- JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语法分别为:
/*apply()方法*/function.apply(thisObj[, argArray])/*call()方法*/function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);
- 它们各自的定义:
- apply:应用某一对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
- call:调用一个对象的一个方法,以另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。
- 基本用法
function add(a,b){ return a+b; }function sub(a,b){ return a-b; }var a1 = add.apply(sub,[4,2]); //sub调用add的方法var a2 = sub.apply(add,[4,2]);alert(a1); //6 alert(a2); //2/*call的用法*/var a1 = add.call(sub,4,2);
问题3: <img>
标签上title与alt属性的区别是什么?
- Alt:当图片不显示是 用文字代表。
- Title:为该属性提供信息
问题4:什么是语义化的HTML?
- 直观的认识标签 对于搜索引擎的抓取有好处
- 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和class形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为因为html5的出现消失了,这就是我们平时说的“语义”。
- 看下图没有用div来布局,而是用了语义化的标签来布局,便于网络更好的识别和显示
前端常见题目个人思考题:
1、 请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
- 1、减少http请求(合并文件、合并图片)
- 2、优化图片文件,减小其尺寸,特别是缩略图
- 一定要按尺寸生成缩略图然后调用,不要在网页中用resize方法实现,虽然这样看到的图片外形小了,但是其加载的数据量一点也没减少。曾经见过有人在网页中加载的缩略图,其真实尺寸有10M之巨…普通图像、icon也要尽可能压缩后,可以采用web图像保存、减少颜色数等等方法实现。
- 3、图像格式的选择
- (GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)
- 4、 压缩Javascript、CSS代码
- 一般js、css文件中存在大量的空格、换行、注释,这些利于阅读,如果能够压缩掉,将会很有利于网络传输。这方面的工具也有很多,可以在百度里搜索一下关键字“css代码压缩”,或者“js代码压缩”将会发现有很多网站都提供这样的功能,当然了你也可以自己写程序来做这个工作,如果你会的话。就拿我们这个网站来说吧。刚开始上传这个网站的时候,我的很多Css代码都没有压缩,后面发现了这个问题,我就上网找了相关的网站的压缩代码的功能,最后就把很多CSS文件都压缩了。这个压缩比率还是比较高的,一般都有百分五十左右。这个代码压缩对于网页的加载还是很有用的。
- 5、 服务器启用gzip压缩功能
- 将要传输的文件压缩后传输到客户端再解压,在网络传输 数据量会大幅减小。在服务器上的Apache、Nginx可直接启用,也可用代码直接设置传输文件头,增加gzip的设置,也可从 负载均衡设备直接设置。不过需要留意的是,这个设置会略微增加服务器的负担。服务器性能不是很好的网站,要慎重考虑。
- 6.标明高度和宽度
- (如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。 当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。)
- 7、网址后面加上“/”
- 对服务器而言,不加斜杠服务器会多一次判断的过程,加斜杠就会直接返回网站设置的存放在网站根目录下的默认页面。
2、 描述下“reset”CSS文件的作用和使用它的好处
- (1)定义:首先css reset指的是重置浏览器的默认样式
- (2)作用:因为现在的浏览器很多,并且每个浏览器都有自己的默认样式,这样就会导致一个页面在多个浏览器下展示产生差异,所以我们需要做一些处理使每个浏览器下展示一致,故需要css reset
- (3)内容:第一个:*{padding:0;margin:0;border:0;}第二个:你所用到的元素{padding:0;margin:0;border:0;},然而第一个虽然写起来简单,但是它却会将所有的标签重置,而我们可能没有必要将那么多的元素都重置,浪费系统资源,降低性能,所以只给自己页面需要重置元素重置默认样式
- (4)缺陷:并不是所有的标签都有默认的margin,padding,reset而且连后面有用的样式也干掉了,并且在移动端和电脑端有bug
阅读全文
0 0
- IMWeb提升营Day4
- IMWeb提升营 —Day4
- IMWeb提升营Day4 | 训练题19:顺时针打印矩阵
- IMWeb提升营Day4 | 训练题20:包含min函数的栈
- IMWeb提升营Day4 | 训练题21:栈的压入、弹出序列
- IMWeb提升营Day4 | 训练题22:从上往下打印二叉树
- IMWeb提升营Day4 | 训练题23:二叉搜索树的后序遍历序列
- IMWeb提升营Day4 | 训练题24:二叉树中和为某一值的路径
- IMWeb提升营Day1
- IMWeb提升营Day2
- IMWeb提升营Day3
- IMWeb提升营Day5
- IMWeb提升营Day6
- IMWeb提升营Day7
- IMWeb小白训练营DAY4任务
- IMWeb提升营 —Day1
- IMWeb提升营 —Day2
- IMWeb提升营 —Day3
- SpringMVC的配置文件
- Linux 网络编程笔记(2)——socket 编程
- Hybird-离线资源生成工具
- UIDebuggingInformationOverlay调试信息窗口的使用
- AtCoder:Nuske vs Phantom Thnook(思维 & 树)
- IMWeb提升营Day4
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- Jquery使用animate实现css3的transform动画效果
- java基础篇(三)——函数的重载和函数的参数
- 通过Vim+少量插件配置一个高效简洁的IDE
- gnulibc库代码阅读:assert.h
- faster-rcnn中,对RPN的理解
- gvim 打开时写入title
- B树索引+B树索引逻辑结构图+B树索引是怎么搜索数据+创建B树索引