前端面试题之Html和CSS

原文:前端面试题之Html和CSS

又到了毕业季,很多小伙伴们都到了找工作的时候了,好多小伙伴问我有前端的面试题么?答:没有。 呃呃… …

小伙伴本宝宝真的没有骗你们,我从毕业到现在一直在一家公司没有换过,所以手里压根没有面试题。我们公司招聘也压根不需要什么面试题。因为那些都是可以百度的哈哈。 但是大部分公司还是有面试题的,所以征求大家意见后总结一下关于前端的面试题。今天我们分享关于Html和CSS部分的。

1. 常用那几种浏览器测试?有哪些内核(Layout Engine)?

  • (Q1)浏览器:IE,Chrome,FireFox,Safari,Opera。
  • (Q2)内核:Trident,Gecko,Presto,Webkit。

2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)

  • (Q1)行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。
    块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。
  • (Q2)兼容性:display:inline-block;*display:inline;*zoom:1;

3.清除浮动有哪些方式?比较好的方式是哪一种?

  • (1)父级div定义height。
  • (2)结尾处加空div标签clear:both。
  • (3)父级div定义伪类:after和zoom。
  • (4)父级div定义overflow:hidden。
  • (5)父级div定义overflow:auto。
  • (6)父级div也浮动,需要定义宽度。
  • (7)父级div定义display:table。
  • (8)结尾处加br标签clear:both。

4.box-sizing常用的属性有哪些?分别有什么作用?

  • (Q1)box-sizing: content-box|border-box|inherit;
  • (Q2)content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。
    border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

5.Doctype作用?标准模式与兼容模式各有什么区别?

  • (Q1)<!DOCTYPE>告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
  • (Q2)标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

6.HTML5 为什么只需要写 <!DOCTYPE HTML>?

  • HTML5不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。
  • 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

7.页面导入样式时,使用link和@import有什么区别?

  • (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
  • (2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
  • (3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

8.介绍一下你对浏览器内核的理解?

  • 主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
  • 渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。
  • JS引擎则:解析和执行javascript来实现网页的动态效果。
  • 最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

9.html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。

  • (1)绘画 canvas;
  • (2)用于媒介回放的 video 和 audio 元素;
  • (3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
  • (4)sessionStorage 的数据在浏览器关闭后自动删除;
  • (5)语意化更好的内容元素,比如 article、footer、header、nav、section;
  • (6)表单控件,calendar、date、time、email、url、search;
  • (7)新的技术webworker, websocket, Geolocation;

IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。当然也可以直接使用成熟的框架、比如html5shim;

<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->

10.简述一下你对HTML语义化的理解?

  • 用正确的标签做正确的事情。
  • html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
  • 即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
  • 搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;
  • 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

关于html和css的总结到这里。有错误的地方还清大家指出来。大家在面试的时候遇到什么问题可以给我留言我们一起解决整理下来!

时间: 2024-09-13 04:33:54

前端面试题之Html和CSS的相关文章

常见前端面试题及答案_其它综合

前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上面没有答案,我就整理了一下,从网上找了一些相关问题的答案.里面有一部分问题的答案我也没有进行考证,不少答案都来源于网络,或许会有疏漏之处,仅供大家参考哦!(还有一部分问题答案还未整理,大家也可以自己搜索一下答案) 1.你能描述一下渐进增强和优雅降级之间的不同吗? 优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作.由于IE独特的

前端面试题及答案整理(二)_基础知识

Part1 CSS相关 1 内联元素(inline-element)和块元素(block element)分别有哪些 常见内联元素(行内元素)有a.b.span.i .em.input.select .img等 常见的块元素有div.ul.li.h1~h6.talbe.ol. ul.td.p等 2 浮动相关 浮动布局指将元素脱离普通流/文档流,使其可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘.浮动框不属于文档中的普通流,当一个元素浮动之后,不会影响到块级元素的布局而只会影响内联元

js操作符类型转换大全(前端面试题之操作符)

 操作符运算符,在前端的面试题目中经常出现,很多朋友在对其运算的时候经常出错.说明对操作符运算还没有完全理解,我前面的一篇文章,javascript双等号引起的类型转换,主要讲解双等号引起的类型转换.本篇文章可以说是对这篇文章的补充吧!   首先,我们先来做一些题目吧!为了统一,我不混着来写这些题目,面试题目中,经常将这些题目混起来,这样对你的迷惑度会更大,为了更方便演示,我在这里分模块写了一些题目,大家可以看下!   //操作符字符串的隐性转换   //乘法   console.dir("--

js前端面试题及答案整理(一)_基础知识

Part1 手写代码 现场手写代码是现在面试中很常见的一类面试题,考察基础的数据结构与算法能力. 1 数组去重的实现 基本数组去重 Array.prototype.unique = function(){ var result = []; this.forEach(function(v){ if(result.indexOf(v) < 0){ result.push(v); } }); return result; } •利用hash表去重,这是一种空间换时间的方法 Array.prototyp

最经典的前端面试题之一,你能答出什么幺蛾子?

本文的目标是以"输入 URL 后发生了什么"这个经典面试题为引子,写一篇既能够涵盖面试中大部分网络试题,又能够将"输入 URL 后发生什么"讲得有深度的文章.以前写过一篇类似的文章,但实在过于简单.另外,HTTPS 逐渐普及,文章中没有这部分过程也说不过去.不想修改原来的文章,就重新写一篇吧.文中以我所在的项目"兴趣部落"的官网 https://buluo.qq.com/index.html 为例子. 生成 HTTP 请求消息 解析完要访问的目标

前端面试题:高效地随机选取数组中的元素

有前端题目大概是这样的:考虑到性能问题,如何快速从一个巨大的数组中随机获取部分元素. 比如有个数组有100K个元素,从中不重复随机选取10K个元素. 为了演示方便我们将数据简化,先给出方案最后再用大点的数据来测试性能的对比. 常规解法 常规做法倒也不难,生成一个0到数组长度减1的随机数,这个数也就是被选中元素在原数组中的下标,获得该元素后将值保存到另一个数组同时通过数组的splice方法将该元素从原数组中删除,以保证下次不会重复取到. 按以上思路,代码大概就是这样的: //元素总数,为了方便演示

box-sizing让CSS布局更加直观

  box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素.box-sizing是CSS3的box属性之一.一说到CSS的盒模型(Box model)我想很多人都会比较烦,特别是对于新手,然而这个Box model又是我们CSS运用中比较重要的一个属性.那么CSS3的Box-sizing跟盒模型有什么关系呢?第一句话就说了,Box-sizing是CSS3的Box属性之一,那他当然也遵循CSS的Box model原理,为了能更好的学习和理解这个Box-sizing属性,我们有必要先

css知多少(2)——学习css的思路

原文:css知多少(2)--学习css的思路 两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式.        记得之前看过一个段子,也可能是一件真事儿,这不重要.大体内容如下:一个香港的教授说:我们香港的大学和大陆的大学差的很远啊,大陆的大学连看门保安都懂得哲学,因为当你想要进入校园时,保安都会问你一个很哲学的问题"你是谁,你从哪里来,你到哪里

css知多少(10)——display

原文:css知多少(10)--display 1. 引言 网页的所有元素,除了"块"就是"流",而且"流"都是包含在"块"里面的(最外层的body就是一个"块").在本系列一开始讲<浏览器默认样式>的时候,大家也都看到了浏览器默认样式中规定了html元素哪些属于"块"(剩下的就是"流").这部分知识非常重要也非常基础,因此在所有的前端面试题中,都会问道哪些