web前端面试题总结(html、css)
1.对 WEB 标准以及 W3C 的理解与认识?
参考: 标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外 链 css 和 js 脚本、 结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更 广泛的设备所访问、更少的代码和组件,容易维 护、改版方便,不需要变动页面内容、提 供打印版本而不需要复制内容、提高网站易用性。
2.xhtml 和 html 有什么区别?
参考: HTML 是一种基本的 WEB 网页设计语言,XHTML 是一个基于 XML 的置标语言。 最主要的不同: XHTML 元素必须被正确地嵌套。 XHTML 元素必须被关闭。 标签名必须用小写字母。 XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
参考: 用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的 html 文档。 加入 XMl 声明可触发,解析方式更改为 IE5.5 拥有 IE5.5 的 bug。
4.描述 css reset 的作用和用途。?
参考: Reset 重置浏览器的 css 默认属性 浏览器的品种不同,样式不同,然后重置,让他们统 一。
5.解释 css sprites,如何使用。?
参考: Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量。
6.你如何对网站的文件和资源进行优化?
参考:解决方案包括:文件合并、文件最小化/文件压缩、使用 CDN 托管、缓存的使用
7.清除浮动的几种方式,各自的优缺点?
参考:1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签) 。 2.使用 overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用 zoom:1 用于兼容 IE)。 3.是用 afert 伪元素清除浮动(用于非 IE 浏览器)。
8.前端页面由哪三层构成,分别是什么?作用是什么?
参考: 网页分成三个层次,即:结构层、表示层、行为层。
网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签, 也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含 任何关于如何显示有关内容的信息。例如, P 标签表达了这样一种语义:“这是一个文本段”。
网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容” 的问题做出了回答。
网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM 主宰的领域。
9.浏览器的内核分别是什么?
参考: IE 浏览器的内核 Trident、Mozilla 的 Gecko、Chrome 的 Blink(WebKit 的分支)、Opera 内核原为 Presto,现为 Blink。
10.常见兼容性问题?
参考: * png24 位的图片在 iE6 浏览器上出现背景,解决方案是做成 PNG8. * 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;} 来统一。
* IE6 双边距 bug:块属性标签 float 后,又有横行的 margin 情况下,在 ie6 显示 margin 比设置的大。 浮动 ie 产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;} 这种情况之下 IE 会产生 20px 的距离,解决方案是在 float 的标签样式控制中加入 —— _display:inline;将其转化为行内属性。(_这个符号只有 ie6 会识别) 渐进识别的方式,从总体中逐渐排除局部。
首先,巧妙的使用“\9”这一标记,将 IE 游览器从所有情况中分离出来。 接着,再次使用“+”将 IE8 和 IE7、IE6 分离开来,这样 IE8 已经独立识别。
.bb{ background-color:#f1ee18; /*所有识别*/
.background-color:#00deff\9; /*IE6、7、8 识别*/
+background-color:#a200ff;/*IE6、7 识别*/
_background-color:#1e0bd1;/*IE6 识别*/
}
* IE 下,可以使用获取常规属性的方法来获取自定义属性, 也可以使用 getAttribute()获取自定义属性; Firefox 下,只能使用 getAttribute()获取自定义属性. 解决方法:统一通过 getAttribute()获取自定义属性.
* IE 下,even 对象有 x,y 属性,但是没有 pageX,pageY 属性; Firefox 下,event 对象有 pageX,pageY 属性,但是没有 x,y 属性. * 解决方法:(条件注释)缺点是在 IE 浏览器下可能会增加额外的 HTTP 请求数。
* Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.
超链接访问过后 hover 样式就不出现了 被点击访问过的超链接样式不在具有 hover 和 active 了解决方法是改变 CSS 属性的排列顺序:
L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}
11.html5 有哪些新特性、移除了那些元素?如何处理 HTML5 新标签的浏览器兼容问题?如 何区分 HTML 和 HTML5?
参考: * HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能 的增加。
* 绘画 canvas
用于媒介回放的 video 和 audio 元素
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
sessionStorage 的数据在浏览器关闭后自动删除 语意化更好的内容元素,比如 article、footer、header、nav、section 表单控件,calendar、date、time、email、url、search
新的技术 webworker, websockt, Geolocation
* 移除的元素 纯表现的元素:basefont,big,center,font, s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
支持 HTML5 新标签:
* IE8/IE7/IE6 支持通过 document.createElement 方法产生的标签, 可以利用这一特性让这些浏览器支持 HTML5 新标签,
浏览器支持新标签后,还需要添加标签默认的样式:
* 当然最好的方式是直接使用成熟的框架、使用最多的是 html5shim 框架
如何区分: DOCTYPE 声明\新增的结构元素\功能元素
12. 解释下浮动和它的工作原理?清除浮动的技巧?
参考:浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。
这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。
(2)、使用overflow。
给包含浮动元素的父标签添加css属性 overflow:auto; zoom:1; zoom:1用于兼容IE6。
(3)、使用after伪对象清除浮动。
该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置 height:0,否则该元素会比实际高出若干像素;
1.内联写法:and之后必须有空格
@media screen and (
min-width:960px //判断浏览器大小条件)
{body{background:red} //常规的样式
}
2.外联写法:当满足屏幕满足条件的时候连接href后的css文件
<link='stylesheet' media='screen and (min-width:960)' href='xx.css'/>
<link='stylesheet' media='screen and (min-width:960) and (max-width:1960)' href='xx.css'/>
媒体查询根据不同屏幕显示不同界面有两种方式:
1.在不同的媒体查询判定的大括号后写不同的样式
2.写两个相同的HTML内部的内容,通过媒体查询判断界面后,显示一个,隐藏另一个
14.使用 CSS 预处理器吗?喜欢那个?
参考:1、什么是CSS预处理器
CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要使用这种语言进行编码工作,减少枯燥无味的CSS代码的编写过程的同时,它能让你的CSS具备更加简洁、适应性更强、可读性更加、层级关系更加明显、更易于代码的维护等诸多好处。
CSS预处理器种类繁多,本次就以Sass、Less、Stylus进行比较。
2、语法
在使用CSS预处理器之前最重要的是了解语法,我只写过sass,就从网上找了下另外两种语法的格式,与大家对比分享。
首先Sass和Less都是用的是标准的CSS语法,因此你可以很方便的把已完成的CSS代码转为预处理器识别的代码,Sass默认使用 .sass扩展名,而Less默认使用.Less扩展名。
15.div+css 的布局较 table 布局有什么优点?
参考: •改版的时候更方便 只要改 css 文件。
•页面加载速度更快、结构化清晰、页面显示简洁。
•表现与结构相分离。
•易于优化(seo)搜索引擎更友好,排名更容易靠前。
16.为什么利用多个域名来存储网站资源会更有效?
参考: •CDN 缓存更方便
•突破浏览器并发限制
•节约 cookie 带宽
•节约主域名的连接数,优化页面响应速度
•防止不必要的安全问题
17.请谈一下你对网页标准和标准制定机构重要性的理解?
参考: (无标准答案)网页标准和标准制定机构都是为了能让 web 发展的更‘健康’,开发者 遵循统一的标准,降低开发难度,开发成本,SEO 也会更好做,也不会因为滥用代码导致各 种 BUG、安全问题,最终提高网站易用性。
18.请描述一下 cookies,sessionStorage 和 localStorage 的区别?
参考: sessionStorage 用于本地存储一个会话(session)中的数据,这些数据只有在同一个会 话中的页面才能访问并且当会话结束后数据也随之销毁。因此 sessionStorage 不是一种持久 化的本地存储,仅仅是会话级别的存储。而 localStorage 用于持久化的本地存储,除非主动 删除数据,否则数据是永远不会过期的。
web storage 和 cookie 的区别
•Web Storage 的概念和 cookie 相似,区别是它是为了更大容量存储设计的。Cookie 的 大小是受限的,并且每次你请求一个新的页面的时候 Cookie 都会被发送过去,这样无形中 浪费了带宽,另外 cookie 还需要指定作用域,不可以跨域调用。
•除此之外,Web Storage 拥有 setItem,getItem,removeItem,clear 等方法,不像 cookie 需 要前端开发者自己封装 setCookie,getCookie。但是 Cookie 也是不可以或缺的:Cookie 的作 用是与服务器进行交互,作为 HTTP 规范的一部分而存在 ,而 Web Storage 仅仅是为了在本 地“存储”数据而生。
19.知道的网页制作会用到的图片格式有哪些?
参考: png-8,png-24,jpeg,gif,svg。
但是上面的那些都不是面试官想要的最后答案。面试官希望听到是 Webp。(是否有关 注新技术,新鲜事物) 科普一下 Webp:WebP 格式,谷歌(google)开发的一种旨在加快图片加载速度的图片 格式。
图片压缩体积大约只有 JPEG 的 2/3,并能节省大量的服务器带宽资源和数据空间。 Facebook Ebay 等知名网站已经开始测试并使用 WebP 格式。 在质量相同的情况下,WebP 格式图像的体积要比 JPEG 格式图像小 40%
20.在 css/js 代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次 js 请求一 般情况下有哪些地方会有缓存处理?
参考: dns 缓存,cdn 缓存,浏览器缓存,服务器缓存。
21.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的 加载,给用户更好的体验?
参考: •图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览 器顶端的距离与页面的距离,如果前者小于后者,优先加载。
•如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一 张优先下载。
•如果图片为 css 图片,可以使用 CSSsprite,SVGsprite,Iconfont、Base64 等技术。
•如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩 略图,以提高用户体验。
•如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片 压缩,图片压缩后大小与展示一致。
22.谈谈以前端角度出发做好 SEO 需要考虑什么?
参考: •了解搜索引擎如何抓取网页和如何索引网页
你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot 或叫 web crawler)如何进行工作,搜索引擎如何对搜索结果进行排序等等。
•Meta 标签优化
主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的 隐藏文字比如 Author(作者),Category(目录),Language(编码语种)等。 •如何选取关键词并在网页中放置关键词 搜索就得用关键词。关键词分析和选择是 SEO 最重要的工作之一。首先要给网站确定 主关键词(一般在 5 个上下),然后针对这些关键词进行优化,包括关键词密度(Density), 相关度(Relavancy),突出性(Prominency)等等。
•了解主要的搜索引擎
虽然搜索引擎有很多,但是对网站流量起决定作用的就那么几个。比如英文的主要有 Google,Yahoo,Bing 等;中文的有百度,搜狗,有道等。不同的搜索引擎对页面的抓取和 索引、排序的规则都不一样。还要了解各搜索门户和搜索引擎之间的关系,比如 AOL 网页 搜索用的是 Google 的搜索技术,MSN 用的是 Bing 的技术。
•主要的互联网目录
Open Directory 自身不是搜索引擎,而是一个大型的网站目录,他和搜索引擎的主要区 别是网站内容的收集方式不同。目录是人工编辑的,主要收录网站主页;搜索引擎是自动收 集的,除了主页外还抓取大量的内容页面。
•按点击付费的搜索引擎
搜索引擎也需要生存,随着互联网商务的越来越成熟,收费的搜索引擎也开始大行其道。 最典型的有 Overture 和百度,当然也包括 Google 的广告项目 Google Adwords。越来越多的 人通过搜索引擎的点击广告来定位商业网站,这里面也大有优化和排名的学问,你得学会用 最少的广告投入获得最多的点击。
•搜索引擎登录
网站做完了以后,别躺在那里等着客人从天而降。要让别人找到你,最简单的办法就是 将网站提交(submit)到搜索引擎。如果你的是商业网站,主要的搜索引擎和目录都会要求 你付费来获得收录(比如 Yahoo 要 299 美元),但是好消息是(至少到目前为止)最大的搜 索引擎 Google 目前还是免费,而且它主宰着 60%以上的搜索市场。
•链接交换和链接广泛度(Link Popularity)
网页内容都是以超文本(Hypertext)的方式来互相链接的,网站之间也是如此。除了搜 索引擎以外,人们也每天通过不同网站之间的链接来 Surfing(“冲浪”)。其它网站到你的网 站的链接越多,你也就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会 被搜索引擎认为它的重要性越大,从而给你更高的排名。
•合理的标签使用
23.有哪项方式可以对一个 DOM 设置它的 CSS 样式?
参考: •外部样式表,引入一个外部 css 文件
•内部样式表,将 css 代码放在 <head> 标签内部
•内联样式,将 css 样式直接定义在 HTML 元素内部
24.什么是 Css Hack?ie6,7,8 的 hack 分别是什么?
参考:#test {
width:300px;
height:300px;
background-color:blue; /*firefox*/
background-color:red\9; /*all ie*/
background-color:yellow; /*ie8*/
+background-color:pink; /*ie7*/
_background-color:orange; /*ie6*/
}
:root #test { background-color:purple\9; } /*ie9*/
@media all and (min-width:0px){ #test {background-color:black;} } /*opera*/
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} } /*chrome and safari*/
25.什么是外边距重叠?重叠的结果是什么?
参考: 外边距重叠就是 margin-collapse。 在 CSS 当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合 成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为 折叠外边距。
折叠结果遵循下列计算规则:
1.两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。
2.两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。
3.两个外边距一正一负时,折叠结果是两者的相加的和。
26.rgba()和 opacity 的透明效果有什么不同?
参考: rgba()和 opacity 都能实现透明效果,但最大的不同是 opacity 作用于元素,以及元素内 的所有内容的透明度, 而 rgba()只作用于元素的颜色或其背景色。(设置 rgba 透明的元素的子元素不会继承透 明效果)!
27.css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
参考: 垂直方向:line-height
水平方向:letter-spacing
考官会继续追问,关于 letter-spacing 的妙用知道有哪些么?
答案:可以用于消除 inline-block 元素间的换行符空格间隙问题。
28.px 和 em 的区别?
参考: px 和 em 都是长度单位,区别是,px 的值是固定的,指定是多少就是多少,计算比较 容易。
em 得值不是固定的,并且 em 会继承父级元素的字体大小。
浏览器的默认字体高都是 16px。所以未经调整的浏览器都符合: 1em=16px。那么 12px=0.75em, 10px=0.625em。
29.Sass、LESS 是什么?大家为什么要使用他们?
参考: 他们是 CSS 预处理器。他是 CSS 上的一种抽象层。他们是一种特殊的语法/语言编译成 CSS。
例如 Less 是一种动态样式语言. 将 CSS 赋予了动态语言的特性,如变量,继承,运算,函数. LESS 既可以在客户端上运行 (支持 IE 6+, Webkit, Firefox),也可一在服务端运行 (借助 Node.js)。
为什么要使用它们?
•结构清晰,便于扩展。
•可以方便地屏蔽浏览器私有语法差异。这个不用多说,封装对浏览器语法差异的重复 处理,减少无意义的机械劳动。
•可以轻松实现多重继承。
•完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展, 所以老的 CSS 代码也可以与 LESS 代码一同编译。
30.分别写出以下几个 HTML 标签:文字加粗、下标、居中、字体 ?
参考: <em></em> <i></i> 斜体
<strong></strong> <b></b> 加粗,h1~h6也是文字加粗显示
<del></del> <s></s> 删除线
<u></u> 下划线
<sup></sup> 上标
<sub></sub> 下标
31.写出一个文本输入框,属性为只读,最大输入字符为 20 个 ?
参考:<input name="textfield" type="text" maxlength="20" readonly="" value="" />
web前端面试题总结(html、css)的更多相关文章
- 第136天:Web前端面试题总结(理论)
Web前端面试题总结 HTML+CSS理论知识 1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起TCP的3次握手 c. 建立TCP连接后发起http请求 d. 服 ...
- web前端面试题HTML/CSS部分
web前端面试题HTML/CSS部分 前端页面有哪三层构成,分别是什么?作用是什么? 1.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达.解决了页面“内容是什么”的问题 ...
- 2016最全的web前端面试题及答案整理
面试web前端开发,不管是笔试还是面试,都会涉及到各种专业技术问题,今天小编整理了一些常见的web前端面试题及答案,希望对大家有所帮助. 1.常用那几种浏览器测试?有哪些内核(Layout Engin ...
- 【重点--web前端面试题总结】
前端面试题总结 HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应. JavaScri ...
- web前端面试题库
web前端面试题及答案 1.常用那几种浏览器测试?有哪些内核(Layout Engine)? 答: (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera. (Q2) ...
- 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上
金三银四,磨砺锋芒:剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上 引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待! ...
- 好程序员分享Web前端面试题汇总JS篇之跨域问题
为什么80%的码农都做不了架构师?>>> 好程序员分享Web前端面试题汇总JS篇之跨域问题,接着上一篇文章我们继续来探讨web前端面试必备面试题. 跨域解决方案 1. 通过jso ...
- 【web前端面试题整理02】前端面试题第二弹袭来,接招!
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...
- 常见前端面试题之HTML/CSS部分
转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...
- 前端面试题(HTML/CSS)
(前端面试题大全,持续更新) 常用的块级元素和行内元素有哪些?说说他们的特点? 浮动产生的原因?清除浮动? 说说一下盒模型 float和position一起用是什么效果 rem用过吗?做不同手机的适配 ...
随机推荐
- 盘点那些适配Linux的国产常用软件
前几天,10月24日,在这个程序员的节日里,腾讯时隔十一年,更新了QQ for Linux.瞬间,各大技术论坛,群聊,关于Linux的新QQ的话题不断.为什么QQ这么多年不更新QQ for Linux ...
- <学会提问-批判性思维指南>运用
引子 这是我第二遍读此书,我认为并且希望这次阅读对我整个人生产生深远的影响.人一出生身上带着母体的抵抗力,大概6个月以后开始渐渐消失,靠自身的抵抗力活着.30岁前很多人会带着上天给的运气,终有一天,用 ...
- ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
博主的 ESP8266开发之旅 专栏主要分为三个部分: 基础篇 网络篇 应用篇 从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界.在此,博主认为各位读者已经具备以下前提 ...
- 在已有 Windows10 系统的基础上,安装 Ubuntu17.10 系统(新版 BIOS)
1.第一步,下载Ubuntu系统镜像 2.第二步,制作启动U盘,使用UltralSO,步骤:打开文件——选择iso文件——启动——写入硬盘映像——选择U盘——写入 3.第三步,分区,在Windows徽 ...
- 百万年薪python之路 -- JS基础介绍及数据类型
JS代码的引入 方式1: <script> alert('兽人永不为奴!') </script> 方式2:外部文件引入 src属性值为js文件路径 <script src ...
- python3.8安装flask出现错误“ModuleNotFoundError: No module named '_ctypes'”
本想在CentOS下配置flask+nginx+uwsgi环境,结果安装最基础的flask包都出了问题...以下是我的环境: 服务器:阿里云ECS CentOS7 python版本:3.8.0 问题描 ...
- Redis(八)理解内存
Redis所有的数据都存在内存中,当前内存虽然越来越便宜,但跟廉价的硬盘相比成本还是比较昂贵,因此如何高效利用Redis内存变得非常重要. 高效利用Redis内存首先需要理解Redis内存消耗在哪里, ...
- 使用IDEA开发Spark程序
一.分布式估算圆周率 1.计算原理 假设正方形的面积S等于x²,而正方形的内切圆的面积C等于Pi×(x/2)²,因此圆面积与正方形面积之比C/S就为Pi/4,于是就有Pi=4×C/S. 可以利用计算机 ...
- centos7 搭建ftp 并配置用户目录
1.如果是阿里云服务器,登录控制后台,配置规则,开启21端口 (sftp是加密文件传输使用的22端口,我们这几是搭建ftp服务器) 2.安装配置vsftp服务器 一.配置防火墙,开启FTP服务器需要的 ...
- C++等号操作符重载
在新学操作符重载时最令人头疼的可能就是一些堆溢出的问题了,不过呢,只要一步步的写好new 与 delete.绝对不会有类似的问题. 当时我们编译可以通过,但是运行会出错,因为对象s1与s2进行赋值时, ...