前端tml和ss面试题大自然的流风

前端Html和Css面试题Html篇:1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发)   2.每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?答案:<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。(重点:告诉浏览器按照何种规范解析页面)

支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢?在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法是增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数 不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供新功能。IE6也是类似这样做的,它将DTD当成了这个“参数”,因为以前的页面大家都不会去写DTD,所以IE6就假定 如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。区别:总体会有布局、样式解析和脚本执行三个方面的区别。盒模型:在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks 模式下,IE的宽度和高度还包含了padding和border。设置行内元素的高宽:在Standards模式下,给<span>等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效。设置百分比的高度:在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的用margin:0 auto设置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下却会失效。

b:strong:粗体强调标签,强调,表示内容的重要性em:斜体强调标签,更强烈强调,表示内容的强调点  6.你能描述一下渐进增强和优雅降级之间的不同吗?渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

优雅降级”观点“优雅降级”观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IE、Mozilla 等)的前一个版本。在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨 (poor, but passable)” 的浏览体验。你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。

“渐进增强”观点“渐进增强”观点则认为应关注于内容本身。内容是我们建立网站的诱因。有的网站展示它,有的则收集它,有的寻求,有的操作,还有的网站甚至会包含以上的种种,但相同点是它们全都涉及到内容。这使得“渐进增强”成为一种更为合理的设计范例。这也是它立即被 Yahoo! 所采纳并用以构建其“分级式浏览器支持 (Graded Browser Support)”策略的原因所在。

现在产品经理看到IE6,7,8网页效果相对高版本现代浏览器少了很多圆角,阴影(CSS3),要求兼容(使用图片背景,放弃CSS3),你会如何说服他?

7.为什么利用多个域名来存储网站资源会更有效?CDN缓存更方便 突破浏览器并发限制 节约cookie带宽 节约主域名的连接数,优化页面响应速度 防止不必要的安全问题

8.请谈一下你对网页标准和标准制定机构重要性的理解。(无标准答案)网页标准和标准制定机构都是为了能让web发展的更‘健康’,开发者遵循统一的标准,降低开发难度,开发成本,SEO也会更好做,也不会因为滥用代码导致各种BUG、安全问题,最终提高网站易用性。

9.请描述一下cookies,sessionStorage和localStorage的区别?  sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

12.知道什么是微格式吗?谈谈理解。在前端构建中应该考虑微格式吗?答案:微格式(Microformats)是一种让机器可读的语义化XHTML词汇的集合,是结构化数据的开放标准。是为特殊应用而制定的特殊格式。优点:将智能数据添加到网页上,让网站内容在搜索引擎结果界面可以显示额外的提示。(应用范例:豆瓣,有兴趣自行google)

13.在css/js代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次js请求一般情况下有哪些地方会有缓存处理?答案:dns缓存,cdn缓存,浏览器缓存,服务器缓存。

14.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端的距离与页面的距离,如果前者小于后者,优先加载。如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先下载。如果图片为css图片,可以使用CSSsprite,SVGsprite,Iconfont、Base64等技术。如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片压缩,图片压缩后大小与展示一致。   15.你如何理解HTML结构的语义化?  去掉或样式丢失的时候能让页面呈现清晰的结构:html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的。

屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页.  例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音.

PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱)  使用语义标记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合设备本身的条件来渲染网页.

语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或者将来新的设备).例如,一部手机可以选择使一段标记了标题的文字以粗体显示.而掌上电脑可能会以比较大的字体来显示.无论哪种方式一旦你对文本标记为标题,您就可以确信读取设备将根据其自身的条件来合适地显示页面.

搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重  过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.没有他们的话,搜索引擎将无法索引你的网站,然后一般用户将很难过来访问.

你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记.  因此,如果页面文件的标题被标记,而不是,那么这个页面在搜索结果的位置可能会比较靠后.除了提升易用性外,语义标记有利于正确使用CSS和JavaScript,因为其本身提供了许多“钩钩”来应用页面的样式与行为.SEO主要还是靠你网站的内容和外部链接的。

便于团队开发和维护  W3C给我们定了一个很好的标准,在团队中大家都遵循这个标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。

16.谈谈以前端角度出发做好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(“冲浪”)。其它网站到你的网站的链接越多,你也就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会被搜索引擎认为它的重要性越大,从而给你更高的排名。

合理的标签使用  ======================================

Css篇:

看下列代码,<p>标签内的文字是什么颜色的?<style>.classA{ color:blue;}

.classB{ color:red;}</style>

<body>

<p class='classB classA'> 123 </p>

</body>答案:red。与样式定义在文件中的先后顺序有关,即是后面的覆盖前面的,与在<p class='classB classA'>中的先后关系无关。

4.超链接访问过后hover样式就不出现的问题是什么?如何解决?答案:被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)

5.什么是Css Hack?ie6,7,8的hack分别是什么?答案:针对不同的浏览器写不同的CSS code的过程,就是CSS hack。示例:#test { width:300px; height:300px; background-color:blue; /*firefox*/ background-color:red\9; /*all ie*/ background-color:yellow\0; /*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\0;} } /*opera*/ @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }/*chrome and safari*/}

7.行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?块级元素(block)特性:

总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;  内联元素(inline)特性:和相邻的内联元素在同一行;宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变(也就是padding和margin的left和right是可以设置的),就是里面文字或图片的大小。

浏览器还有默认的天生inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换行),有哪些?答案:<input> 、<img> 、<button> 、<textarea> 、<label>。

关于letter-spacing的妙用知道有哪些么?答案:可以用于消除inline-block元素间的换行符空格间隙问题。

11.如何垂直居中一个浮动元素?// 方法一:已知元素的高宽

#div1{ background-color:#6699FF; width:200px; height:200px;

position: absolute; //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的height,width margin-left: -100px; }

//方法二:

#div1{ width: 200px; height: 200px; background-color: #6699FF;

16.知道css有个content属性吗?有什么作用?有什么应用?答案:css的content属性专门应用在 before/after 伪元素上,用于来插入生成内容。最常见的应用是利用伪类清除浮动。//一种常见利用伪类清除浮动的代码 .clearfix:after { content:"."; //这里利用到了content属性 display:block; height:0; visibility:hidden; clear:both; }

.clearfix { *zoom:1; }after伪元素通过 content 在元素的后面生成了内容为一个点的块级元素,再利用clear:both清除浮动。

知道css计数器(序列数字字符自动递增)吗?如何通过css content属性实现css计数器?答案:css计数器是通过设置counter-reset 、counter-increment 两个属性 、及 counter()/counters()一个方法配合after / before 伪类实现。

THE END
0.一个网站有多个域名,怎么处理对SEO比较友好?哪些情况下,会出现一个网站多个域名? 1、购买了核心域名(如:seowhy.com),同时把小众后缀域名一起买了(如:seowhy.org),网站建立后,希望把小众后缀的域名一起解析到网站上。 2、发现正使用的域名A存在问题,比如一直不收录、不合适、不喜欢,换了新域名B后,仍希望把域名A解析到网站上。 3、域名所有权问题或者业务缘故,导致必须给网站启用新域名,希 jvzquC41yy}/untyj{4dqv4c13:337mvon
1.多个域名指向同一WordPress网站的最佳方案虽然目的各不相同,但核心问题是:如何正确地将多个域名统一指向一个WordPress网站,又不影响网站表现和搜索引擎收录? 二、错误做法:直接绑定多个域名 有些站长图省事,直接将多个域名解析到同一IP,并在服务器中绑定为“主域名”。虽然这样能访问网站,但存在严重问题: jvzquC41yy}/5?6ucnk/exr184715
2.Laravel路由研究之domain解决多域名问题的方法示例php实例将域名分割为参数 1 2 3 4 5 6 7 8 9 Route::domain('{account}.{webname}.{suffix}')->group(function () { Route::get('user/{id}', function ($account, $webname, $suffix, $id) { // 可以在请求中接收到被分割的参数,可能的使用场景:在单独路由中需要根据不同的域名处理不同的需求 dd(jvzquC41yy}/lk:30pku1jwvkerf1::;26?/j}r
3.指南:实现多站点共存的关键技术在当今互联网服务架构中,高效利用服务器资源是每个运维人员和开发者的必修课。Nginx作为高性能的Web服务器和反向代理服务器,其灵活的多域名配置能力使得在单台服务器上托管多个网站成为可能。本文将深入剖析Nginx单服务器多域名配置的核心技术,从基础概念到实战配置,为您呈现完整的解决方案。 一、多域名共存的技术原理 Nginx实 jvzquC41dnuh0lxfp0tfv8|gkzooa>9867?5;8ftvkimg8igvcomu8672;81696
4.WordPress多站点切换域名完整指南:详细步骤和注意事项开始之前,先部署你的新的域名,确保是可以访问的。之后把要修改域名的网站资源copy到新的域名的网站目录里面。然后就可以干活了!! 第一步:备份你的网站,非常重要 在进行任何更改之前,务必备份你的 WordPress 网站。这是非常重要的,因为在切换域名过程中可能会发生意外情况,备份可以帮助你在需要时恢复网站到之前的状态jvzquC41dnuh0lxfp0tfv8|gkzooa=86:49658ftvkimg8igvcomu8659:887<9
5.如何在WordPress中设置多域名使用多个域名来访问和管理同一个WordPress网站可以提高灵活性和扩展性。本文将详细介绍在WordPress中设置多域名的步骤和实际操作。 1. 为什么要使用多域名? 使用多域名有多个好处: 品牌推广:不同的域名可以用于不同的品牌推广活动。 地域和语言:针对不同的地域和语言,可以使用不同的域名。 jvzquC41yy}/5?6ucnk/exr133835
6.ThinkPHP中泛域名部署的实现方法php实例对于需要部署多个网站的开发者来说,站群架构是一种广泛采用的设计模式。而泛域名部署则是站群架构中比较常见的实现方式之一。在这篇文章中,我们将介绍如何在ThinkPHP框架中实现泛域名部署站群。 一、什么是泛域名部署? 泛域名部署是将一个域名下的所有子域名指向同一个文件夹或不同的文件夹。这样,只需要一个主域名jvzquC41yy}/lk:30pku1ywqitgn1<6;249{iq3jvo
7.测试工具Fiddler(三)——常见功能介绍(文本框内输入需要标记或过滤的域名,多个域名使用”;”分号分割) 3、过滤器实际应用 3.1 过滤器实际应用一:只根据域名进行过滤 3.2 过滤器实际应用二:根据域名进行过滤,并过滤掉图片类型的请求 四、AutoResponder请求重定向 目的:允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器【可用正式环境验证本地jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1B58:57
8.白杨SEO:SEO问答第三期新人SEO学习常见99问(6799)收藏84、网站被恶意采集,挂马,镜像怎么办? 这个问题说一下,被恶采集基本没办法,如果你找到IP来源可以屏蔽下,如果换IP不行了。至于镜像,也没办法,别人COPY你的站,你能干的只有继续做好自己内容,如果看到对方镜像了,投诉给百度。如果挂马,前面挂黑链有说过处理方法了哈 。 jvzquC41yy}/prfqighjlr3eqo5bt}neng3759>:/34ivvq
9.运维面试题搭建的网站打不开,连tcp连接都没建立1 ISL和802.1Q 有哪些异同 参考答案 相同点:都是显式标记,即帧被显式标记了VLAN的信息。 不同点:IEEE 802.1Q是公有的标记方式,ISL是Cisco私有的。ISL采用外部标记的方法,802.1Q采用内部标记的方法,ISL标记的长度为30字节,802.1Q标记的长度为4字节。 jvzquC41dnuh0lxfp0tfv8|gkzooa=78;29168ftvkimg8igvcomu8=498676>