2016-06-24css
好长时间都没有更新博客了,最近时间确实挺紧的。这几天特地总结了下前端的一些面试题,但愿能帮助到你们,若有错误请提出,鄙人会诚信去改正。我也是刚接触这一行。html
解答:Doctype是document type(文档模型)的简写,用来讲明所用的xml或html是什么版本的。其做用是告诉浏览器的解析器该文件用什么类型来解析;若是没有对Doctype进行声明或声明不正确,浏览器将会用”怪异模式”对网页进行渲染。定义成下面的声明能够触发相应的模式。XHTML1.0提供了三种DTD声明可选择,分别是:前端
A.过渡的(transitional,也叫混杂模式),要求比较宽松,容许继续使用HTML4.01的标识,完整声明为:web
<!Doctype html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional’’EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd”>面试
B.严格的(strict):要求严格的,不能使用任何表现层的标识和属性;算法
C.框架的(Frameset):专门针对框架页面设计使用的DTD,若是页面中包含有框架,能够采用DTDcanvas
意义:达到数据与表现相分离的目的。浏览器
解答:缓存
WEB标准不是某一个标准,而是一系列标准的集合;安全
网页主要有三个部分分红:
解答:指在计算机领域中,一些网页浏览器为了维护比较旧的网页设计的向后兼容性而采用的技术,这里的怪异模式又区别于万维网联盟与网页工程组所设计的”标准模式”。
解答:HTML是一种基本的WEB网页设计语言,而XHTML是基于XML的标志语言。主要的区别有如下几点:
解答:主要分为五大类:
A. 100-199 用于指定客户端应响应的某些动做;
B. 200-299 用于表示请求成功;
C. 300-399 用于已经移动的文件而且常被包含在定位头信息中指定新的地址信息
D. 400-499 用于指出客户端的错误
E. 500-599 用于支持服务器错误
经常使用的http状态码:
200、204、304、400、404、500
解答:目前流行的浏览器有IE、Opera、Mozilla Firefox、Chrome以及Safari;它们的内核分别是:IE浏览器的内核是Trident, Mozilla Firefox 的浏览器内核是Gecko(火狐内核), Chrome浏览器内核是Chromium(其实Chromium就是Webkit内核,是从Webkit里分支出来的), Safari浏览器内核是Webkit;Opera浏览器内核为Presto。基于Linux平台的浏览器Konqueror的内核是KHTML(Konqueror不经常使用,是KDE开发的,速度快,容错率低)
解答:
行内元素:<span> <strong> <em> <input> <img>(较特殊,具备块级元素的属性,能够设置其宽高) <label> <select> <textarea> <cite> <br>;
块级元素:<div> <ul> <li> <p> <hn>(n表示1~6) <filedset> <form> <hr> <iframe> <ol> <di> <table> <tr> <td>;
空元素(单标签):<hr/> <img/> <br/> <meta/> <input/> <link/>等等;
块级元素与行内元素的区别:
1.块级元素独占一行,其宽度自动填满其父容器;相反,行内元素不会独占一行,相邻 行内元素会排成一行,一行排不下,会自动排到下一行,其宽度随内容的宽高自动变 换;
2.块级元素能够设置width和height,而行级元素设置width和height无效;
3.块级元素能够设置margin和padding,行内元素水平设置margin和padding有效,垂 直设置margin和padding无效;
块级元素与行级元素的转换能够经过:display:block(inline-block/inline)来转换;
解答:1. Link属于XHTML标签,而@import是CSS提供的;
2. 页面加载时,link引用的外部文件会被同时加载,而@import引用的CSS会等到页 面加载完后再加载;
3. Import只在IE5以上才能被识别,而link属于XHTML标签,无兼容性;
4. link方式的央视的权重高于@import的权重;
解答:此处以引用CSS文件为例:
解答:
1.html语义化就是让页面的内容结构化,便于浏览器、搜索引擎解析;
2.在没有样式CSS状况下也以一种文档格式显示,而且容易阅读;
3.搜索引擎的爬虫依赖于标记来肯定上下文和各个关键字的权重,利于SEO;
4.便于代码的阅读和维护;
解答:
首先来看下title,在HTML中title有两个做用。Title使用在<head>中起到网页主题的含 义;另外一处使用在<img/>标签中,其做用是当鼠标悬停在图片上时,起到提示做用。对 于Alt属性,当图片加载不出来时所显示的图片信息,它是直接显示在图片加载的地方。
解答: & < > ×(小三角)
解答:这里的get和post 的区别在面试的过程当中每每指的是WEB中的get和post。(须要注意的是web中的get和post只是http中get/post的子集) web中的get和post都是往服务器上发送数据,get是将数据拼接在URL上(有必要时须要encode),而post是将数据封装在request body中,发送过去;get请求是安全和幂等的(如何解释?也就是不管你请求多少次,服务器端的数据是不会发生改变的,”幂等的”就是不管get多少次,其服务器上的资源状态都是不变的);post相对于get是”安全的”;get请求发送数据更小(http协议中的get和post并无对发送数据大小限制,对发送数据大小产生限制的是浏览器以及操做系统、服务器);
Get能被缓存,post不能被缓存。想更深刻的了解请查看
回答面试官:1. Get使用URL或Cookies传参,而post将数据放在body中;
解答:HTML5与HTML4的区别:
1. HTML5任然是一个定制中的标准;
2.简单的语法(<!Doctype html> HTML5兼容HTML4和XHTML1,但不兼容SGML);
3.新的canvas取代flash;
4.新的<header>和<footer>标记;
5.新的<section>和<article>标记;
6.新的<menu>和<figure>标记;
7.新的<audio>和<video>标记;
8.全新的表单属性;
9.再也不使用<b>和<font>;
10.再也不使用<frame><center><big>;
HTML5新特性:
1.用于绘画的canvas元素;
2.用于媒介回放的video和audio元素;
3.对本地离线存储更好的支持;
4.新增结构元素:header article aside footer nav section;
5.新增表单控件:date time number tel email url search等;
删除元素:
<big> <b> <frame> <frameset>等;
HTML5的兼容性问题处理:
网站提供 can I use? 查相关的HTML5新功能对浏览器的支持度;
解答:相同点:都保存在浏览器端,且都是同源的;
不一样点:1.cookies在浏览器与服务器间来回传递,而sessionStorage和localStorage 不会把数据自动上传到服务器上,仅在本地储存;
2.存储大小限制不一样,cookies带宽不超过4k(每次http请求都会携带 cookies),因此只能存储小的数据,如会话标识。相反后二者虽然也有限制, 但能够达到5M或者更大;
3.数据有效期不一样。sessionStorage:仅在当前浏览器关闭以前有效; localStorage:永久有效,不管是否关闭浏览器;cookies:只有在设置cookies 时间过时以前才有效,不管浏览器是否关闭。
4.web storage 的API接口更加方便;
解答:src是引入文件(替换当前元素),用在link、iframe、script上;
Href是连接跳转(在当前元素与引用资源之间创建联系),用在link、a上。
解答:
1.png-8 体积会更小 支持全透明
2.Png-24 相对于png-8来讲保存格式质量更高
3.Jpeg/jpg 显示的颜色更多 压缩/修改图片会失真
4.Svg 可伸缩 不失真
5.Gif 支持半透明 支持动画
6.Webp 新的图像(有损)压缩格式 相对于jpeg体积缩小40%
解答:都有强调的意思在里面,前者语气更甚;
解答:<input id=”mycar” list=”cars” />
<datalist id=”cars”>
<option value=”BWM”>
<option value=”Ford”>
<opttion value=”VOLVO”>
</datalist>
注意:<datalist>是HTML5新标签,除了IE和Safari不支持外其余的浏览器均支持。
解答:CSS及CSS3新增选择器种类:
1.ID选择器;
2.标签选择器;
3.CLASS选择器;
4.属性选择器;
5.CSS3新增属性选择器:[selector *= value] [selector ^= value] [selector $= value]
6.结构为类选择器:伪类选择器(first-line; first-letter; before; after; not; empty; target);
伪元素选择器(first-child; last-child; nth-child;nth-of-type;only-child);
7.UI元素状态伪类选择器:CSS3经常使用的总共有17中,example, E:hover E:active E:focus E:disabled E:read-only
能够继承的(父类设置了某种属性,子类继承了它的属性)属性有:
1.全部元素可继承:visibility和cursor
2.内联元素可继承:letter-spacing word-spacing white-space line-height color font
Text-decoration text-transform
3.块状元素可继承:text-indent text-align
4.列表元素可继承:list-style list-type-position list-style-type list-style-image
5.表格元素可继承:border-collaspase
优先级算法:
!important(最高)---->ID选择器---->class类选择器---->属性选择器---->*通配符选择器
CSS3新增伪类:
答案见第一问!!!
解答:CSS盒模型大体能够分为两种:IE盒模型和标准W3C盒模型
IE盒模型:
IE盒模型的范围包含:margin border padding content,不一样于标准W3C盒模型的是:IE盒模型的content包含了border和padding;
外盒模型
元素空间宽度 = content width + margin的宽度
元素空间高度 = content height + margin的高度
内盒模型
元素宽度 = content width
元素高度 = content height
注意:1.当IE6~8处于怪异模式下就会使用IE盒子模型,不然将使用W3C标准盒子模型;
2.box-sizing:content-box;/border-box;/inherit;
标准W3C盒模型:
标准W3C盒模型的范围包括:margin border padding content,而且content的部分不包含其余部分。
外盒模型
元素空间宽度 = content width + padding + border + margin的宽度
元素空间高度 = content width + padding + border + margin的高度
内盒模型
元素宽度 = content height + padding + border的宽度
元素高度 = content height + padding + border的高度