前端开发面试必备知识点:HTML+CSS重点解析

需积分: 0 1 下载量 106 浏览量 更新于2024-06-30 收藏 3.18MB PDF 举报
"上海前端与移动开发面试宝典4.0版1" 本文档是针对前端与移动开发面试的一份指南,涵盖了HTML+CSS部分的关键知识点。以下是详细内容: 1. **让不定宽高DIV垂直水平居中**: - 可以通过设置父容器相对定位,子元素绝对定位来实现。父元素需设置`position: relative;`,子元素设置`position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);`。 2. **position属性的作用**: - `position`属性用于定义元素的定位类型,如`static`(默认)、`relative`、`absolute`、`fixed`等。它决定了元素相对于其正常位置或其他元素的位置。 3. **BFC(Block Formatting Contexts)**: - BFC是块级格式化上下文,是Web页面中块级元素渲染的一种规则,能解决元素重叠、浮动塌陷等问题。创建BFC的方法包括:根元素、`float`非`none`、`position`非`static`、`display`为`inline-block`、`table-cell`、`flex`或`grid`等。 4. **CSS引入方式**: - 有`<link>`标签、`@import`规则、内联样式(`style`属性)和内部样式表(`<style>`标签)。`link`通常用于外部样式表,加载时并行处理;`@import`写在CSS内部,顺序执行,可能影响页面加载速度。 5. **CSS Reset**: - CSS Reset是清除浏览器默认样式差异的代码,确保跨浏览器一致性。例如,Eric Meyer Reset或normalize.css。 6. **CSS Sprites**: - CSS Sprites是将多个小图像合并到一张大图上,通过改变背景图像的位置来显示不同的图片,减少HTTP请求,提高页面加载速度。 7. **清除浮动**: - 清除浮动是为了防止浮动元素对其父元素和其他元素的影响。常用方法有:clearfix类、`clear:both`、`overflow:hidden`等。 8. **响应式设计**: - 通过媒体查询(`media queries`)等技术,使网页能根据设备屏幕尺寸和分辨率自动调整布局。 9. **渐进增强和优雅降级**: - 渐进增强是在基础功能上逐步增加复杂性,确保所有用户都能访问核心内容;优雅降级则是先构建高级功能,然后确保在不支持这些功能的浏览器中仍有基本可用性。 10. **HTML与XHTML的区别**: - HTML更宽松,允许语法错误;XHTML更严格,要求遵循XML的规则,比如标签必须闭合。 11. **DOCTYPE**: - DOCTYPE声明告诉浏览器文档使用哪种HTML或XHTML规范,影响文档解析方式,进而影响布局和样式。 12. **盒模型**: - CSS盒模型分为标准盒模型(W3C)和怪异盒模型(IE),前者内容宽度+内边距+边框=总宽度,后者内容宽度包含内边距和边框。 13. **CSS Hack**: - 由于浏览器间的兼容性问题,开发者有时需要针对特定浏览器添加特定样式,如`_height`(IE6)、`*height`(IE7)等。 14. **display:inline-block**: - 在某些情况下,元素表现为既具有内联元素的特性(如并排排列),又具有块级元素的特性(如设置宽高),但会因行内元素间的空白产生间隙。 15. **overflow属性**: - 包括`visible`(默认,内容溢出显示)、`hidden`(隐藏溢出内容)、`scroll`(显示滚动条)、`auto`(根据需要显示滚动条)。 16. **去除iOS默认按钮样式**: - 使用自定义样式覆盖系统样式,如设置`-webkit-appearance: none;`。 17. **CSS样式初始化**: - 为了消除浏览器默认样式的差异,通常会在全局样式表中初始化元素样式。 18. **Div+CSS布局优点**: - 提高可维护性和可扩展性,实现响应式设计,减少表格布局带来的复杂性,提高页面加载速度。 这份面试宝典提供了前端开发者在面试中需要掌握的核心技能和概念,帮助候选人准备和应对面试挑战。
2021-03-27 上传
1、 JavaScript 的基本类型有哪些?引用类型有哪些?null 和 undefined 的区别?(必 会) 76 2、如何判断 JavaScript 的数据类型?(必会) JavaScript 数据类型一共有 7 种: 77 2、 创建对象有几种方法(必会) 79 4、简述创建函数的几种方式? (必会) 79 5、Javascript 创建对象的几种方式? (必会) 79 6、请指出 JavaScript 宿主对象和原生对象的区别?(必会) 81 7、 JavaScript 内置的常用对象有哪些?并列举该对象常用的方法?(必会) 82 8、 === 和 ==的区别?(必会) 87 9、 null,undefined 的区别(必会) 88 10、JavaScript 中什么情况下会返回 undefined 值?(必会) 88 11、如何区分数组和对象?(必会) 89 12、怎么判断两个对象相等?(必会) 89 13、列举三种强制类型转换和两种隐式类型转换?(必会) 91 14、 JavaScript 中怎么获取当前日期的月份?(必会) 91 15、 什么是类数组(伪数组),如何将其转化为真实的数组?(必会) 92 16、如何遍历对象的属性?(必会) 92 17、src 和 href 的区别是?(必会) 94 18、如何使用原生 JavaScript 给一个按钮绑定两个 onclick 事件?(必会) 95 19、 如何在 JavaScript 中比较两个对象?(必会) 95 20、JavaScript 中的作用域、预解析与变量声明提升? (必会) 97 21、变量提升与函数提升的区别?(必会) 99 22、 什么是作用域链?(必会) 99 23、如何延长作用域链?(必会) 99 23、 判断一个值是什么类型有哪些方法?(必会) 100 25、JavaScript 变量按照存储方式区分为哪些类型,并描述其特点?(必会) 100 26、如何实现数组的随机排序?(必会) 100 27、 Function foo() {}和 var foo = function() {}之间 foo 的用法上的区别?(必会) 101 28、索引有哪几种类型,有什么区别?(了解) 102 29、简述 Array.form 和 Array.of 的使用及区别?(了解) 103 30、根据你的理解,请简述 JavaScript 脚本的执行原理(了解) 104 WebAPI 105 1、 什么是 dom?(必会) 105 2、dom 是哪种基本的数据结构?(必会) 105 3、 dom 操作的常用 api 有哪些?(必会) 105 4、 dom 节点的 Attribute 和 Property 有何区别?(必会) 106 5、dom 结构操作怎样添加、移除、移动、复制、创建和查找节点?(必会) 106 6、dom 事件的级别?(必会) 107 7、dom 事件模型?(必会) 107 8、dom 事件流?(必会) 107 9、什么是事件冒泡,它是如何工作的?如何阻止事件冒泡?(必会) 108 10、JavaScript 动画和 CSS3 动画有什么区别?(必会) 108 11、event 对象的常见应用?(必会) 109 12、自定义事件/ 模拟事件?(必会) 109 13、通用事件绑定/ 编写一个通用的事件监听函数?(必会) 110 14、dom 和 bom 的区别(必会) 111 15、事件三要素(必会) 111 16、事件执行过程(必会) 111 17、获取元素位置(必会) 112 18、封装运动函数(必会) 112 19、绑定事件和解除事件的区别(必会) 113 20、谈谈事件委托的理解?(必会) 114 21、 JavaScript 中的定时器有哪些?他们的区别及用法是什么?(必会) 114 22、比较 attachEvent 和 addEventListener?(必会) 115 23、document.write 和 innerHTML 的区别?(必会) 115 24、 什么是 window 对象?什么是 document 对象?(必会) 116 25、Js 拖动的原理?(必会) 118 26、描述浏览器的渲染过程,DOM 树和渲染树的区别(必会) 119 27、dom 树和 render 树之间的关系?(高薪常问) 119 28、获取到页面中所有的 CheckBox 怎么做(不适用第三方框架)?(高薪常问) 119 29、 简单说一下页面重绘和回流?(高薪常问) 119 30、如何最小化重绘(repaint)和回流(reflow)(高薪常问) 120 31、Js 延迟加载的方式有哪些?(了解) 120 32、IE 与