前端面试题第二套
前端开发工程师面试题及答案
前端开发工程师面试题及答案在前端开发领域,面试是选拔优秀人才的重要环节。
以下是一些常见的前端开发工程师面试题以及对应的参考答案。
一、HTML 和 CSS 相关问题1、解释一下盒模型以及它在布局中的作用。
答案:盒模型是 CSS 中用于布局的基本概念,它由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。
在布局中,理解盒模型对于准确计算元素的尺寸和间距非常重要,能够帮助我们实现各种复杂的页面布局。
2、如何实现一个两栏布局,左边固定宽度,右边自适应?答案:可以使用多种方法实现。
一种常见的方式是使用浮动(float),将左边栏设置为固定宽度并向左浮动,右边栏不浮动,并设置其左边的外边距(marginleft)为左边栏的宽度。
也可以使用 flex 布局,将父容器设置为 display: flex; ,左边栏设置固定宽度,右边栏设置flex: 1; 以实现自适应。
3、说一说 CSS 选择器的种类和优先级。
答案:CSS 选择器包括元素选择器、类选择器、id 选择器、属性选择器、伪类选择器、伪元素选择器等。
选择器的优先级从高到低依次为:内联样式(通过 style 属性设置)> id 选择器>类选择器、属性选择器、伪类选择器>元素选择器、伪元素选择器。
二、JavaScript 相关问题1、谈谈你对 JavaScript 中作用域和闭包的理解。
答案:作用域决定了变量的可见性和可访问性。
在 JavaScript 中有全局作用域和函数作用域。
闭包是指有权访问另一个函数作用域中的变量的函数。
闭包可以让函数记住其创建时的环境,即使外部函数已经执行完毕,闭包仍能访问外部函数中的变量。
2、如何实现 JavaScript 的继承?答案:常见的实现方式有原型链继承、借用构造函数继承、组合继承、寄生组合继承等。
原型链继承通过将子类型的原型指向父类型的实例来实现继承;借用构造函数继承通过在子类型的构造函数中调用父类型的构造函数来继承属性;组合继承结合了原型链继承和借用构造函数继承的优点;寄生组合继承是一种优化的组合继承方式,避免了不必要的父类实例属性的重复创建。
web前端开发面试题及答案
web前端开发面试题及答案Web前端开发是互联网行业中一个非常热门的领域,涉及到网页设计、开发和用户体验等多个方面。
在面试过程中,面试官通常会提出一系列问题来评估应聘者的专业知识和技能。
以下是一些常见的Web前端开发面试题及答案:1. HTML相关问题- 问:HTML5有哪些新特性?- 答:HTML5引入了新的语义元素如`<header>`, `<footer>`,`<article>`, `<section>`等,增强了表单控件,如`<inputtype="date">`,`<input type="range">`等,支持多媒体内容,如`<video>`和`<audio>`,以及提供了绘图功能`<canvas>`。
2. CSS相关问题- 问:CSS选择器有哪些类型?- 答:CSS选择器主要有以下几种类型:元素选择器、类选择器(如`.class`)、ID选择器(如`#id`)、属性选择器(如`[type="text"]`)、伪类选择器(如`:hover`, `:first-child`)和伪元素选择器(如`::before`, `::after`)。
3. JavaScript相关问题- 问:JavaScript中的闭包是什么?- 答:闭包是指一个函数能够记住并访问其创建时的环境,即使该环境的外部上下文已经执行完毕。
闭包通常用于创建私有变量和方法,或者在回调函数中使用外部变量。
4. 响应式设计相关问题- 问:如何实现响应式网页设计?- 答:实现响应式网页设计主要依赖于CSS媒体查询(Media Queries),通过不同的屏幕尺寸和设备特性来应用不同的样式规则。
同时,使用流体布局(使用百分比而非固定像素)和可伸缩的图片和媒体元素也是关键。
前端面试题笔试考题和答案
前端⾯试题笔试考题和答案⼀、选择题 1.下⾯标签嵌套正确的是(D)A. <ul><p>赶集⽹</p></ul>B. <a href="#"><a href="#">赶集⽹</a></a>C. <dl><li>赶集⽹</li></dl>D. <ol><li>赶集⽹</li></ol>2. 在HTML中,(c)可以在⽹页上通过链接直接打开邮件客户端发送邮件。
A.<a href=”telnet:zhou@”>发送邮件</a>B. <a href=”mail:zhou@”>发送邮件</a>C. <a href=”mailto:zhou@”>发送邮件</a>D. <a href=”ftp:zhou@”>发送邮件3. 请选出所有的置换元素(abcd)(多选)A. imgB. inputC. textareaD. select4.下⾯哪条声明能固定背景图⽚(A)A. background-attachment:fixed;B. background-attachment:scroll;C. background-origin: initial;D. background-clip: initial;5.下列说法正确的是(AB)(多选)A.display: none;不为被隐藏的对象保留其物理空间;B.visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;C.visibility:hidden;产⽣reflow和repaint(回流与重绘);D.visibility:hidden;与display: none;两者没有本质上的区别;6.以下关于盒⼦模型描述正确的是(ab)A.标准盒⼦模型中:盒⼦的总宽度=左右margin + 左右border + 左右padding + widthB.IE盒⼦模型中:盒⼦总宽度=左右margin + 左右border + widthC.标准盒⼦模型中:盒⼦的总宽度=左右margin 详细的介绍:⽹页中的盒⼦模型;我们常常要控制盒⼦模型的宽度width:w3c中的盒⼦模型的宽:包括margin+border+padding+width;width:margin*2+border*2+padding*2+width;height:margin*2+border*2+padding*2+height;iE中的盒⼦模型的width:也包括margin+border+padding+width;上⾯的两个宽度相加的属性是⼀样的。
前端面试题目大全(2)
前端面试题目(2)对前端模块化的认识AMD 是RequireJS在推广过程中对模块定义的规范化产出。
CMD 是SeaJS 在推广过程中对模块定义的规范化产出。
AMD是提前执行,CMD是延迟执行。
AMD 推荐的风格通过返回一个对象做为模块对象,CommonJS的风格通过对module.exports或exports的属性赋值来达到暴露模块对象的目的。
CMD模块方式<code class=""> define(<span class=""><span class="">function</span>(<span class="">require, exports, module</span>) </span>{ <span class="">// 模块代码</span> });</code> Javascript垃圾回收方法标记清除(mark and sweep)这是JavaScript最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为“进入环境”,当变量离开环境的时候(函数执行结束)将其标记为“离开环境”。
垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了。
引用计数(reference counting)在低版本IE中经常会出现内存泄露,很多时候就是因为其采用引用计数方式进行垃圾回收。
引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加1,如果该变量的值变成了另外一个,则这个值得引用次数减1,当这个值的引用次数变为0的时候,说明没有变量在使用,这个值没法被访问了,因此可以将其占用的空间回收,这样垃圾回收器会在运行的时候清理掉引用次数为0的值占用的空间。
最新前端开发面试题及答案
最新前端开发面试题及答案1. 什么是前端开发?答案:前端开发是指使用HTML、CSS和JavaScript等技术构建网站或Web应用程序的用户界面的过程。
2. 解释一下什么是响应式网页设计?答案:响应式网页设计是一种使网站能够适应不同屏幕尺寸和设备的技术,确保用户在任何设备上都能获得良好的浏览体验。
3. 请简述HTML5的新特性。
答案:HTML5引入了新的语义标签,如`<header>`、`<footer>`、`<article>`等,增强了Web应用的功能,如`<canvas>`用于绘图,`<video>`和`<audio>`用于媒体播放,以及对本地存储的支持等。
4. CSS3相比CSS2有哪些改进?答案:CSS3在CSS2的基础上增加了多种新特性,如圆角(border-radius)、阴影(box-shadow)、渐变(gradients)、转换(transforms)和动画(animations)等。
5. JavaScript中的闭包是什么?答案:闭包是指有权访问另一个函数作用域中的变量的函数,即使在创建该函数的作用域之外,这些变量也会被保留在内存中。
6. 请解释同步和异步编程的区别。
答案:同步编程是指代码按照顺序执行,一个任务完成后才执行下一个任务。
异步编程允许程序在等待某个任务完成时继续执行其他任务,通常通过回调函数、Promise或async/await来实现。
7. 什么是跨域请求(CORS)?答案:跨域请求(CORS)是指浏览器在发起一个HTTP请求时,请求的域名与当前网页的域名不同,浏览器出于安全考虑,会限制这种跨域请求。
8. 请描述一下事件冒泡和事件捕获。
答案:事件冒泡是指当一个元素触发事件时,该事件会从事件源元素开始,逐级向上传播到文档的根元素。
事件捕获则是事件从根元素开始,向下传播到目标元素。
9. 什么是单页应用(SPA)?答案:单页应用(SPA)是一种Web应用或网站,它通过动态重写当前页面来与用户交互,避免了从服务器重新加载整个新页面的过程。
高级前端js面试题
高级前端js面试题一、选择题(每题2分)1. 下面哪个选项是JS的注释语法()(多选) *A、// This is a comment(正确答案)B、<%-- This is a comment --%>C、<!-- this is a comment-->D、/* This is a comment */(正确答案)2. 关于JS代码的书写位置,下面哪一个是错误的( )? [单选题] *A、写到<script>标签中B、写到单独的js文件中C、写到标签的事件属性值中D、直接写到页面中(正确答案)3. <script>标签可以放到页面中的哪个位置( ) [单选题] *A、只能放到<body>标签中B、只能放到<head>标签中C、放到<body>标签和 <head>标签均可(正确答案)D、放到页面中的任何地方4. 下面哪种创建函数的方式是错误的( ) [单选题] *A、function foo(){}B、var foo = function (){}C、var foo = new Function()D、var foo = bar(){}(正确答案)5. 下面哪种创建数组的方式是正确的( ) *A、 var txt = ["George", "John", "Thomas"](正确答案)B、 var txt = ["George" "John" "Thomas"]C、 var txt = new Array("George","John","Thomas")(正确答案)D、 var txt = new Array("George" "John" "Thomas")6. 如何把7.25 四舍五入为最接近的整数( ) [单选题] *A、 Math.sqrt(7.25)B、 Math.ceil(7.25)C、 Math.floor(7.25)D、 Math.round(7.25)(正确答案)7. 下面哪个是Date对象中获取日期的方法的( ) [单选题] *A、getFullYear()B、getMonth()C、getDate()(正确答案)D、getDay()E、getHours()F、getMinutes()G、getSeconds()H、getTime()8. 下面哪个方法可以向数组的末尾添加一个或多个元素( ) [单选题] *A.concat()B.pop()C.push()(正确答案)D.shift()9. 下面哪个方法可以寻找子字符串并返回该子字符串首字符的索引位置( ) [单选题] *A.match()B.indexOf()(正确答案)C.search()D.concat()10. 下面哪个文本框会时刻监听用户的输入,并将输入内容输出到控制台( ) [单选题] *A. <input type="text" onclick="console.log(this.value)">B. <input type="text" onchange="console.log(this.value)">C. <input type="text" oninput="console.log(this.value)">(正确答案)D. <input type="text" onfocus="console.log(this.value)">11. window对象的哪个方法可以显示带有输入框的对话框?( ) [单选题] * A.confirm()B.alert()C.prompt()(正确答案)D.open()12. setInterval("alert('welcome');",1000);这段代码的意思是( ) [单选题] *A、等待1000秒后,弹出一个对话框B、等待1秒钟后,弹出一个对话框C、每隔1秒钟,弹出一个对话框(正确答案)D、语句报错,语法有问题13. setTimeout("alert('welcome');",1000);这段代码的意思是( ) [单选题] *A、等待1000秒后,弹出一个对话框B、等待1秒钟后,弹出一个对话框(正确答案)C、每隔1秒钟,弹出一个对话框D、语句报错,语法有问题14. 下列哪个函数可以将参数转换为浮点数( ) [单选题] *A、isNaN()B、parseInt()C、Number()D、parseFloat()(正确答案)15. 如果要从函数返回值,必须使用哪个关键词( ) [单选题] *A、continueB、breakC、return(正确答案)D、exit16. 下面4个变量声明语句中,正确的是( ) [单选题] *A、var defaultB、var my_house(正确答案)C、var my dogD、var 2cats17. 表达式"123abc"-"123"的计算结果是( ) [单选题] *A、"abc"B、0C、"123abc123"D、NaN(正确答案)18. 下面哪一个不是用来操作DOM元素的方法( ) [单选题] *A、insertBefore()B、insertAfter()(正确答案)C、removeChild()D、appendChild()19. 以下哪个表达式计算之后的结果是true( ) [单选题] *A、(3==3)&&(5<1)B、!(17<=20)C、(3!=3)||(7<2)D、(1==1)||(2<0)(正确答案)20. 若有定义var x=10,则以下哪条语句执行后变量x的值不等于11( ) [单选题] *A、x++;B、x=11;C、x==11;(正确答案)D、x+=1;二、简答题1. Js基本数据类型都有哪些? [填空题]_________________________________2. 注册事件处理程序的有几种方法,请举例说明 [填空题]_________________________________3. e.clientX和e.pageX有什么区别? [填空题]_________________________________4. javaScript有几种作用域,具体指的是哪里? [填空题]_________________________________5. 写出一个求随机数的公式. [填空题]_________________________________6. 有哪些强制类型转换和隐式类型转换,请举例说明 [填空题]_________________________________7. JS中数组的操作方法有哪些,至少写出5种,分别写出每个方法的用法,及参数,返回值,是否改变原数组 [填空题]_________________________________三、分析题(分析每个代码块在控制台打印以后会出现的结果)1.下面这段代码输出的结果是什么,为什么?/*代码段一*/var x;console.log(x === undefined);x = 3;/*代码段二*/bar2();var bar2 = function() {console.log("bar2");}; [填空题] *_________________________________2.下面这段代码输出的结果是什么,为什么?var a = {x: 1};var b = a;a.x = 2;console.log(b.x);a = {x: 3};console.log(b.x);a = {x: 4};console.log(b.x);[填空题] *_________________________________3.下面这段代码输出的结果是什么,为什么?/*代码段一*/var a=1;function test(){console.log(a);var a=1;}test();/*代码段二*/var b = 1;function fun1(){var b = 2;function fun2(){var b = 3;console.log(b);}fun2();}fun1(); [填空题] *_________________________________4.下面这段代码输出的结果是什么,为什么?/*代码段一*/var b=2;function test2(){window.b=3;console.log(b);}test2();/*代码段二*/var c = 5;function test3(){window.c=3;console.log(c);var c;console.log(window.c);}test3(); [填空题] *_________________________________。
前端测试题及答案
前端测试题及答案一、选择题(每题2分,共20分)1. 在HTML中,以下哪个标签用于定义最重要的标题?A. `<h1>`B. `<p>`C. `<strong>`D. `<em>`答案:A2. CSS中,以下哪个属性用于设置元素的内边距?A. `margin`B. `padding`C. `border`D. `background`答案:B3. JavaScript中,以下哪个方法用于获取页面中元素的值?A. `getElementById()`B. `getValue()`C. `getElementsByClassName()`D. `getAttributeValue()`答案:A4. 在JavaScript中,以下哪个对象用于处理浏览器和文档之间的交互?A. `Date`B. `Math`C. `Document`D. `Array`答案:C5. 以下哪个不是HTML5的新特性?A. 语义化标签B. 表单控件C. 画布(Canvas)D. 表格(Table)答案:D6. 在CSS3中,以下哪个属性用于创建圆角边框?A. `border-radius`B. `border-style`C. `border-width`D. `border-color`答案:A7. 以下哪个JavaScript方法用于将字符串转换为数组?A. `split()`B. `join()`C. `slice()`D. `splice()`答案:A8. 在HTML中,以下哪个标签用于定义一个段落?A. `<p>`B. `<div>`C. `<span>`D. `<h1>`答案:A9. CSS中,以下哪个属性用于设置元素的外边距?A. `margin`B. `padding`C. `border`D. `background`答案:A10. 在JavaScript中,以下哪个方法用于判断一个值是否为数组?A. `Array.isArray()`B. `typeof`C. `instanceof`D. `Array.valueOf()`答案:A二、填空题(每空2分,共20分)1. HTML文档的根元素是________。
(完整)vue面试题及答案,推荐文档
2019 VUE前端面试题1、active-class是哪个组件的属性?嵌套路由怎么定义?答:vue-router模块的router-link组件。
2、怎么定义vue-router的动态路由?怎么获取传过来的动态参数?答:在router目录下的index.js文件中,对path属性加上/:id。
使用router对象的params.id3、vue-router有哪几种导航钩子?答:三种,一种是全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。
第二种:组件内的钩子;第三种:单独路由独享组件4、scss是什么?安装使用的步骤是?有哪几大特性?答:预处理css,把css当前函数编写,定义变量,嵌套。
先装css-loader、node-loader、sass-loader等加载器模块,在webpack-base.config.js配置文件中加多一个拓展:extenstion,再加多一个模块:module里面test、loader4.1、scss是什么?在vue.cli中的安装使用步骤是?有哪几大特性?答:css的预编译。
使用步骤:第一步:用npm 下三个loader(sass-loader、css-loader、node-sass)第二步:在build目录找到webpack.base.config.js,在那个extends属性中加一个拓展.scss第三步:还是在同一个文件,配置一个module属性第四步:然后在组件的style标签加上lang属性,例如:lang=”scss”有哪几大特性:1、可以用变量,例如($变量名称=值);2、可以用混合器,例如()3、可以嵌套5、mint-ui是什么?怎么使用?说出至少三个组件使用方法?答:基于vue的前端组件库。
npm安装,然后import样式和js,e(mintUi)全局引入。
在单个组件局部引入:import {Toast} from ‘mint-ui’。
中视广信前端面试题目(3篇)
第1篇一、基础知识1. 请简述HTML、CSS和JavaScript的基本概念。
HTML(HyperText Markup Language):超文本标记语言,是网页内容的结构化表示,用于创建网页。
CSS(Cascading Style Sheets):层叠样式表,用于控制网页元素的样式和布局。
JavaScript:一种脚本语言,用于实现网页的交互性。
2. 请解释盒模型的概念。
盒模型是CSS中的一种布局模型,将元素视为一个矩形盒子,包括内容(content)、内边距(padding)、边框(border)和边距(margin)。
盒模型可以影响元素的大小和位置。
3. 请列举CSS选择器的几种类型。
CSS选择器有以下几种类型:- 标签选择器(如:div)- 类选择器(如:.class)- ID选择器(如:id)- 属性选择器(如:[type="text"])- 伪类选择器(如:a:hover)- 伪元素选择器(如:::after)4. 请解释BFC(块级格式化上下文)的概念。
BFC(Block Formatting Context)是Web页面中的一块隔离的渲染区域,具有以下特点:- 内部的盒会在垂直方向一个接一个地放置。
- 属于同一个BFC的两个相邻的盒不会发生重叠。
- BFC内部的元素不会影响到外部元素。
- BFC可以包含浮动的元素(清除浮动)。
5. 请解释Flexbox布局的特点。
Flexbox布局是一种用于实现响应式设计的布局方式,具有以下特点:- 可以轻松实现水平、垂直居中。
- 可以设置元素间的间距和排列顺序。
- 可以设置元素的大小和伸缩比例。
- 可以支持响应式设计。
6. 请解释CSS的优先级规则。
CSS的优先级规则如下:- 选择器匹配的元素越多,优先级越高。
- 内联样式 > ID选择器 > 类选择器 > 标签选择器。
- 属性选择器、伪类选择器、伪元素选择器的优先级相同。
前端UI设计基础面试题
前端UI设计基础面试题UI设计是前端开发中至关重要的一部分,合格的UI设计师不仅需要具备良好的审美能力,还需要具备了解并掌握一系列基础知识和技能。
以下是一些前端UI设计基础面试题,帮助你更好地了解这个领域的要求和挑战。
一、色彩理论与应用色彩在UI设计中起到至关重要的作用,设计师需要灵活运用色彩来表达寓意和情感。
以下是与色彩相关的问题:1. 解释主色、辅助色和中性色在UI设计中的作用。
2. 什么是色彩搭配原则?请列举几个常用的色彩搭配方案,并解释其应用场景。
3. 你如何选择合适的颜色搭配来表达品牌的个性和价值观?4. 请简要介绍一下色彩对用户体验的影响,并举例说明。
二、排版与布局问题良好的排版和布局是UI设计的基础,它们直接影响用户对网站或应用的使用体验。
以下是与排版与布局相关的问题:1. 什么是平衡感?如何在设计中实现平衡感?2. 在响应式设计中,如何处理移动设备和桌面设备之间的布局差异?3. 解释一下层次感在UI设计中的作用,并介绍一些实现层次感的常用手法。
三、用户体验与互动设计问题用户体验和互动设计是UI设计中不可忽视的重要方面,它们直接关系到用户对产品的满意度和使用体验。
以下是与用户体验与互动设计相关的问题:1. 什么是用户体验设计(UXD)?请介绍一下用户体验设计的基本流程。
2. 你如何进行用户需求分析,并利用这些分析结果来指导你的设计工作?3. 解释一下“信息架构”在UI设计中的作用,并介绍一些实现良好信息架构的方法。
4. 在设计交互元素时,你会考虑哪些方面来提升用户的交互体验?四、视觉设计与图形处理问题视觉设计和图形处理是UI设计师的基本功,它们需要掌握各种设计软件和工具来创造出优秀的视觉效果。
以下是与视觉设计与图形处理相关的问题:1. 你通常使用哪些设计软件来完成你的设计工作?请列举一些你熟悉和常用的设计软件。
2. 什么是矢量图形和位图图形?请解释它们的区别,并说明在UI 设计中的应用场景。
80道前端面试经典选择题
80道前端面试经典选择题1. HTML的全称是什么?2. HTML5的新特性有哪些?3. CSS的全称是什么?4. CSS3有哪些新特性?5. 行内元素和块级元素有什么区别?6. 什么是盒模型?7. 什么是浮动?8. 请解释一下什么是响应式设计?9. 什么是媒体查询?10. 什么是Flexbox布局?11. 请解释一下什么是CSS预处理器?12. 常见的CSS预处理器有哪些?13. 什么是JavaScript?14. JavaScript的数据类型有哪些?15. 请解释一下什么是事件冒泡和事件捕获?16. 什么是闭包?17. 请解释一下什么是原型链?18. 什么是AJAX?19. 请解释一下什么是跨域请求?20. 什么是JSON?21. 请解释一下什么是DOM操作?22. 什么是BOM?23. 请解释一下什么是前端路由?24. 什么是模块化开发?25. 请解释一下什么是ES6?26. 什么是箭头函数?27. 请解释一下什么是Promise?28. 什么是async/await?29. 请解释一下什么是SPA(单页面应用)?30. 什么是虚拟DOM?31. 请解释一下什么是Webpack?32. 什么是组件化开发?33. 请解释一下什么是MVVM?34. 什么是响应式框架?35. 请解释一下什么是跨站脚本攻击(XSS)?36. 什么是CSRF攻击?37. 请解释一下什么是同源策略?38. 什么是Web安全?39. 请解释一下什么是SEO?40. 什么是移动端适配?41. 请解释一下什么是渐进式Web应用(PWA)?42. 什么是WebGL?43. 请解释一下什么是Canvas?44. 什么是SVG?45. 请解释一下什么是Web动画?46. 什么是响应式图片?47. 请解释一下什么是网页性能优化?48. 什么是页面加载速度?49. 请解释一下什么是懒加载?50. 什么是CDN?51. 请解释一下什么是缓存?52. 什么是前端安全?53. 请解释一下什么是前端框架?54. 什么是React?55. 请解释一下什么是Vue.js?56. 什么是Angular?57. 请解释一下什么是React组件?58. 什么是Vue组件?59. 请解释一下什么是Angular组件?60. 什么是状态管理?61. 请解释一下什么是Redux?62. 什么是Vuex?63. 请解释一下什么是Angular服务?64. 什么是React生命周期?65. 请解释一下什么是Vue生命周期?66. 什么是Angular生命周期?67. 请解释一下什么是单向数据流?68. 什么是双向数据绑定?69. 请解释一下什么是虚拟DOM?70. 什么是服务端渲染?71. 请解释一下什么是SSR?72. 什么是CSR?73. 请解释一下什么是SSG?74. 什么是SPA?75. 请解释一下什么是PWA?76. 什么是Web组件?77. 请解释一下什么是Shadow DOM?78. 什么是Custom Elements?79. 请解释一下什么是HTML模板?80. 什么是ESlint?以上是80道前端面试经典选择题,希望能对你有所帮助。
前端开发面试题及答案
前端开发面试题及答案1. 什么是前端开发?答:前端开发是一门技术,其主要目的是使用 HTML,CSS 和 JavaScript 来创建动态网页,视图和用户界面。
2. 如何使用CSS制作一个圆角边框?答:使用 CSS 的 border-radius 属性可以制作圆角边框,如:border-radius: 10px;3. 请描述流式布局的概念。
答:流式布局是一种网页布局技术,它可以根据浏览器窗口大小自动调整页面中元素的位置和大小。
4. 请描述XML及其用途。
答:XML(可扩展标记语言)是一种标记语言,可以用来存储和传输数据,也用于创建 web 应用。
5. 什么是AJAX?答:AJAX 是 Asynchronous JavaScript and XML 的缩写,它是一种用于创建异步 Web 应用的技术,可以在不重新加载整个页面的情况下更新网页的部分内容。
6. 什么是JSON?答:JSON 是 JavaScript 对象表示法的缩写,是一种轻量级的数据交换格式,用于在应用程序之间进行数据交换和存储。
7. 什么是CDN?答:CDN 是内容分发网络的缩写,是一种分散式网络技术,用于将静态资源(如 JavaScript 和 CSS 文件)分发到多个服务器上,以提供更快的网页加载速度。
8. 请描述Web存储的概念。
答:Web 存储提供了一种方式,可以在网站上存储数据,并在下次用户访问中访问这些数据。
使用 web 存储,可以为用户提供更好的体验和功能,因为它可以更快地加载页面和保存状态信息。
9. 请描述HTML5的新特性。
答:HTML5 包含许多新特性,包括新的元素(如 <section>,<video> 和 <audio>),新的 API (如 Canvas API 和Geolocation API),新的存储技术(如 Web Storage 和IndexedDB),以及更多。
前端面试题及答案2020
前端面试题及答案20201. 浏览器篇1.1 常用那几种浏览器测试?主流浏览器的内核有哪些?Q1:IE、Safari、Chrome、Mozilla Firefox、OperaQ2:1、Trident内核代表产品为Internet Explorer,又称其为IE内核。
Trident(又称为MSHTML),是微软开发的一种排版引擎。
2、Gecko内核代表作品为Mozilla Firefox。
Gecko是一套开放源代码的、以C++编写的网页排版引擎,是最流行的排版引擎之一,仅次于Trident。
使用它的最著名浏览器有Firefox。
3、WebKit内核代表作品有Safari、Chrome。
WebKit是一个开源项目,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。
缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。
4、Presto内核代表作品Opera。
Presto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。
1.2 说说你对浏览器内核的理解?浏览器内核主要包括以下三个技术分支:排版渲染引擎、JavaScript引擎,以及其他。
排版渲染引擎:主要负责取得网页的内容(HTML、XML、图像等)、整理信息,以及计算网页的显示方式,然后输出至显示器JavaScript引擎:是用来渲染JavaScript的,JavaScript的渲染速度越快,动态网页的展示也越快1.3 一个页面从输入URL 到页面加载显示完成,这个过程中都发生了什么?1.浏览器根据请求的URL交给DNS域名解析,找到真实IP;2.浏览器根据IP 地址向服务器发起TCP 连接,与浏览器建立TCP 三次握手a.客户端向服务器发送一个建立连接的请求b.服务器接到请求后发送同意连接的信号c.客户端接到同意连接的信号后,再次向服务器发送了确认信号,然后客户端与服务器的连接建立成功3.浏览器发送HTTP请求浏览器根据URL 内容生成HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;4.服务器处理请求并返回HTTP报文(HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。
java前端面试题目(3篇)
第1篇一、Java基础知识1. 请简述Java的基本特点。
2. 什么是JVM?简述JVM的运行原理。
3. 请简述Java中的四种访问控制符及其作用。
4. 请解释Java中的静态变量和静态方法。
5. 请简述Java中的继承和多态。
6. 请解释Java中的final关键字。
7. 请简述Java中的异常处理机制。
8. 请解释Java中的集合框架,包括List、Set和Map等。
9. 请简述Java中的泛型。
10. 请解释Java中的反射机制。
二、Java Web基础知识1. 什么是Servlet?简述Servlet的工作原理。
2. 什么是JSP?简述JSP的工作原理。
3. 请解释Java Web中的请求和响应。
4. 什么是MVC模式?请简述MVC模式在Java Web中的应用。
5. 什么是JDBC?请简述JDBC的使用方法。
6. 什么是JPA?请简述JPA的作用和特点。
7. 什么是Spring框架?请简述Spring框架的主要功能和优势。
8. 什么是Spring MVC框架?请简述Spring MVC框架的工作流程。
9. 什么是Spring Boot?请简述Spring Boot的特点和优势。
10. 什么是RESTful API?请简述RESTful API的设计原则。
三、前端基础知识1. 请简述HTML的基本结构。
2. 请解释HTML中的标签和属性。
3. 请简述CSS的基本语法和选择器。
4. 请解释JavaScript的基本语法和特点。
5. 请简述DOM的基本概念和操作方法。
6. 请解释JavaScript中的事件处理机制。
7. 请简述JavaScript中的闭包和原型链。
8. 请解释JSON的基本语法和特点。
9. 请简述AJAX的工作原理和实现方法。
10. 请解释前端性能优化的方法。
四、框架与工具1. 请简述React的基本原理和特点。
2. 请简述Vue的基本原理和特点。
3. 请简述Angular的基本原理和特点。
前端开发面试题及答案
前端开发面试题及答案前端开发是一个快速发展的领域,拥有强大的需求和竞争。
面试是进入前端开发领域的一道关卡,面试题目通常涵盖了HTML、CSS、JavaScript等方面的知识。
在这篇文章中,我们将介绍一些常见的前端开发面试题以及相应的答案。
一、HTML 面试题及答案1. 什么是 HTML?HTML是超文本标记语言(Hypertext Markup Language)的缩写,是一种用于创建网页的标记语言。
2. 请解释HTML5中的新特性?HTML5引入了许多新的特性,包括语义化标签、画布(canvas)、音视频支持等。
语义化标签可以更好地描述文档结构,增强搜索引擎对网页的理解。
画布可以用于绘制图形和动画。
音视频支持使得在网页中嵌入音视频内容更加方便。
3. 请解释 HTML 和 XHTML 有何区别?HTML是一种自由度较高的标记语言,而XHTML是HTML与XML的结合。
XHTML对标记要求更严格,要求标签闭合、标签小写等。
同时,XHTML的文档结果要求更加严格。
二、CSS 面试题及答案1. 什么是 CSS?CSS是层叠样式表(Cascading Style Sheets)的缩写,用于描述网页的布局和样式。
2. 请解释什么是盒子模型(Box Model)?盒子模型是CSS中用于描述元素布局的模型。
它将元素看做一个矩形的盒子,包括内容、内边距、边框和外边距这四个部分。
3. 如何居中一个元素?可以使用多种方法居中一个元素,其中一种是使用flexbox布局,设置父元素的display属性为flex,然后使用align-items和justify-content属性来居中元素。
三、JavaScript 面试题及答案1. 什么是 JavaScript?JavaScript是一种用于使网页交互和动态的脚本语言。
2. 请解释什么是变量提升(Hoisting)?变量提升是JavaScript在编译阶段将变量声明提升至作用域顶部的行为。
史上最全前端面试题(含答案)
HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;2.xhtml和html有什么区别HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 用于声明文档使用那种规范(html/Xhtml)一般为严格过度基于框架的html 文档加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug4.行内元素有哪些?块级元素有哪些?CSS的盒模型?块级元素:div p h1 h2 h3 h4 form ul行内元素: a b br i span input selectCss盒模型:内容,border ,margin,padding5.CSS引入的方式有哪些? link和@import的区别是?内联内嵌外链导入区别:同时加载前者无兼容性,后者CSS2.1以下浏览器不支持Link 支持使用javascript改变样式,后者不可6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?标签选择符类选择符 id选择符继承不如指定 Id>class>标签选择后者优先级高7.前端页面有哪三层构成,分别是什么?作用是什么?结构层 Html 表示层 CSS 行为层 js8.css的基本语句构成是?选择器{属性1:值1;属性2:值2;……}9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?Ie(Ie内核) 火狐(Gecko)谷歌(webkit) opear(Presto)10.写出几种IE6 BUG的解决方法1.双边距BUG float引起的使用display2.3像素问题使用float引起的使用dislpay:inline -3px3.超链接hover 点击后失效使用正确的书写顺序 link visited hover active4.Ie z-index问题给父级添加position:relative5.Png 透明使用js代码改6.Min-height 最小高度!Important 解决’7.select 在ie6下遮盖使用iframe嵌套8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)11.<img>标签上title与alt属性的区别是什么?Alt 当图片不显示是用文字代表。
web前端js面试题及参考答案
web前端js面试题及参考答案面试题在web前端js求职者在面试求职考核中重要的组成部分,以下是店铺为大家整理的:web前端js面试题及参考答案,仅供大家参考!web前端js面试题及参考答案1.WEB标准以及W3C标准是什么?标签闭合、标签小写、不乱嵌套、使用外链css和js、结构行为表现的分离。
1.1div中img怎么水平和垂直居中?Div{width:200px;height:200px;text-align:center;font-size:0;overflow: hidden;line-height:200px;_line-height:178px;/*兼容IE6*/ }Img{ vertical-align:middle;}1.2 HTML中没有单位的属性是?z-index:1; zoom:1; font-weight:200;1.3 form表单中input标签的readonly 和disabled属性有何区别?readonly=“readonly”是只读,不可以修改,disabled=“disabled”是禁用,整个文本框是显示灰色状态form 中method是数据传递的方式,action是与后台数据库提交的2.xhtml和html有什么区别XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素。
3.行内元素有哪些?块级元素有哪些?行内元素: a b img em br i span input select块级元素:div p h1-h6 form ul dl ol table4.行内元素和块级元素有什么区别?行内元素不可以设置宽高,不独占一行;块级元素可以设置宽高,独占一行。
5.我想让行内元素跟上面的元素距离10px,加margin-top和padding-top可以吗? margin-top,padding-top无效6.CSS的盒模型由什么组成?内容(width,height),border ,margin,padding6.1 简述div+css布局的优势?(1)符合w3c标准;(2)兼容性好;(3)有利于搜索引擎很友好;(4)样式的调整更加方便;(5)css简洁的代码,能使样式和结构分离;7.说说display属性有哪些?可以做什么?display:block行内元素转换为块级元素display:inline块级元素转换为行内元素display:inline-block转为内联元素display:box(css3新增的弹性布局属性)8.CSS 选择符有哪些?1.id选择器( # myid)2.类选择器(.myclassname)3.标签选择器(div, h1, p)4.相邻选择器(h1 + p)5.子选择器(ul < li)6.后代选择器(li a)7.通配符选择器( * )8.属性选择器(a[rel = "external"])9.伪类选择器(a: hover, li: nth - child)9.哪些css属性可以继承?可继承: font-size font-family color, ul li dl dd dt;(字体属性和列表属性)不可继承:border padding margin width height ;10.css优先级算法如何计算?!important > id > class > 标签!important 比内联优先级高* 优先级就近原则,样式定义最近者为准;* 以最后载入的样式为准;11.text-align:center和line-height有什么区别?text-align是水平对齐,line-height是行间。
前端必知必会的10道Promise面试题
前端必知必会的10道Promise⾯试题Promise 想必⼤家都⼗分熟悉,想想就那么⼏个 api,可是你真的了解 Promise 吗?本⽂根据 Promise 的⼀些知识点总结了⼗道题,看看你能做对⼏道。
以下 promise 均指代 Promise 实例,环境是 Node.js。
题⽬⼀const promise = new Promise((resolve, reject) => {console.log(1)resolve()console.log(2)})promise.then(() => {console.log(3)})console.log(4)运⾏结果:1243解释:Promise 构造函数是同步执⾏的,promise.then 中的函数是异步执⾏的。
题⽬⼆const promise1 = new Promise((resolve, reject) => {setTimeout(() => {resolve('success')}, 1000)})const promise2 = promise1.then(() => {throw new Error('error!!!')})console.log('promise1', promise1)console.log('promise2', promise2)setTimeout(() => {console.log('promise1', promise1)console.log('promise2', promise2)}, 2000)运⾏结果:promise1 Promise { }promise2 Promise { }(node:50928) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: error!!!(node:50928) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.promise1 Promise { 'success' }promise2 Promise {Error: error!!!at promise.then (...)at }解释:promise 有 3 种状态:pending、fulfilled 或 rejected。
前端中高级面试题
前端中⾼级⾯试题• 原型构造函数,是⼀种特殊的⽅法。
主要⽤来在创建对象时初始化对象。
每个构造函数都有prototype(原型)属性每个函数都有prototype(原型)属性,这个属性是⼀个指针,指向⼀个对象,这个对象的⽤途是包含特定类型的所有实例共享的属性和⽅法,即这个原型对象是⽤来给实例共享属性和⽅法的。
⽽每个实例内部都有⼀个指向原型对象的指针。
• 闭包简单来说就是函数嵌套函数,内部函数引⽤来外部函数的变量,从⽽导致来垃圾回收机制没有⽣效,变量被保存来下来。
也就是所谓的内存泄漏,然后由于内存泄漏⼜会导致你项⽬逐渐变得卡顿等等问题。
因此要避免内存泄漏。
• 原型链提到原型链就不得不提原型的继承,继承的完美实现⽅案是借助寄⽣组合继承,主要实现原理PersonB.prototype = Object.create(PersonA.prototype)实现来继承PersonA的原型当我们通过new关键字实例化的对象⾝上就有了PersonB⾃⾝的属性和⽅法,也有了PersonA的原型⽅法当实例化对象调⽤某个⽅法时会先在⾃⾝和原型上查找,然后是在_proto_上⼀层层查找,这种⽅式就是原型链。
• vuexVuex 是⼀个专为 Vue.js 应⽤程序开发的状态管理模式。
它采⽤集中式存储管理应⽤的所有组件的状态并以相应的规则保证状态以⼀种可预测的⽅式发⽣变化。
state:Vuex 使⽤单⼀状态树——是的,⽤⼀个对象就包含了全部的应⽤层级状态。
mutation:更改 Vuex 的 store 中的状态的唯⼀⽅法是提交 mutationaction: action 提交的是 mutation,⽽不是直接变更状态。
action 可以包含任意异步操作。
getter: 相当于Vue中的computed计算属性• vue-routerVue Router 是 Vue.js 官⽅的路由管理器。
它和 Vue.js 的核⼼深度集成,让构建单页⾯应⽤变得易如反掌和和• 深拷贝浅拷贝深拷贝:通过利⽤JSON.parse(JSON.stringify(Object))来达到深拷贝的⽬的但是JSON深拷贝的缺点是undefined和function还有symbol类型是⽆法进⾏深拷贝的如有需要可以⾃⼰⼿动封装函数来达到⽬的浅拷贝:通过ES6新特性Object.assign()与扩展运算符来达到浅拷贝的⽬的• Vue通信第⼀种:props和e m i t 第⼆种:中央事件总线 E v e n t B u s ( 基本不⽤ ) 第三种: v u e x (状态管理器)第四种: emit 第⼆种:中央事件总线 EventBus(基本不⽤) 第三种:vuex(状态管理器)第四种:emit第⼆种:中央事件当然还有其他办法,但是基本不常⽤• 你在⼯作终于到那些问题,解决⽅法是什么经常遇到的问题就是Cannot read property ‘prototype’ of undefined解决办法通过浏览器报错提⽰代码定位问题,解决问题Vue项⽬中遇到视图不更新,⽅法不执⾏,埋点不触发等问题⼀般解决⽅案查看浏览器报错,查看代码运⾏到那个阶段未之⾏结束,阅读源码以及相关⽂档等然后举出来最近开发的项⽬中遇到的算是两个⽐较⼤的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)display:inline兼容所有的浏览器。
请判断这句话的正确与否。
TF2)从四个选项选出不同的一个。
a.<nav>b.<footer>c.<meta>d.<canvas>3)css中clear的作用是什么?a.清除该元素所有样式b.清楚该元素父元素的所有样式c.指明该元素周围不可出现浮动元素d.指明该元素的父元素周围不可出现浮动元素4)表示有序列表的是a.ulb.dlc.lid.ol5)关于嵌套列的用法,错误的是a.<div class=“row”><br> <div class=“col-sm-1”>b.<div class=“col-sm-1”><br><div class=“row”><br>c.<div class=“row”><br> <div class=“container”><br> <div class=“col-xs-1”><br>d.<div class=“container”><br> <div class=“row”><br> <div class=“col-xs-1”>6)以下哪一条Javascript语句会产生运行错误?a.var obj=( );b.var obj=[ ];c.var obj={ };d.var obj=/ /;7)哪一个是javascript中array的正确写法?a.var txt = new Array("tim","kim","jim")b.var txt = new Array="tim","kim","jim"c.var txt = new Array:1=("tim")2=("kim")3=("jim")d.var txt = new Array(1:"tim",2:"kim",3:"jim")8)关于angularjs说法,错误的是a.前端mvc,极大降低前端开发的耦合b.极大的丰富了dom操作c.实现了数据双向绑定d.实现了依赖注入9)在文档上输出"Hello World" 的正确 Javascript 语法是?a.("Hello World")b."Hello World"c.response.write("Hello World")d.document.write("Hello World")10)关于对变量的说法,错误的是?a.一般使用var key=val的形式赋值b.由于javascript的动态特性,常常直接采取key= val的形式赋值c.若声明而未对变量赋值,该变量的值为undefinedd.var carname="Volvo";var carname;顺序执行后,caranme的值依然为Volvo11)以下Js程序的输出是什么()<SCRIPT LANGUAGE=""JavaScript>var a="undefined";var b="false";var c="";function assert(aVar){if(aVar)alert(true);elsealert(false);}assert(a);assert(b);assert(c);</SCRIPT>12)以下Js程序的输出是什么()var x = new Boolean(false);if(x) {alert('hi');}var y = Boolean(0);if(y) {alert('hello');}13)以下Js程序的输出是什么()<ul><li>click me</li><li>click me</li><li>click me</li><li>click me</li></ul>var elements=document.getElementsByTagName('li');var length=elements.length;for(var i=0;i<length;i++){elements[i].onclick=function(){alert(i);}}依次点击4个li标签,依次弹出()?14)以下Js程序的输出是什么()var f = function g() {return23;};typeof g();15)以下Js程序的输出是什么()v ar msg='hello';for(var i=0; i<10; i++){var msg='hello'+i*2+i;}alert(msg);16)前端页面由哪三层构成,分别是什么?作用是什么?17)你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?18)CSS的盒子模型?19)编写一个方法实现 javascript面向对象中继承20)编写一个方法去掉一个数组的重复元素var arr = [1 ,1 ,2, 3, 3, 2, 1];21)截取字符串abcdefg的efg22)“你喜欢什么样的上司?你希望与什么样的上级共事?”答案1,IE6-IE7不兼容2,C。
A选项<nav></nav>,位于<body></body>中。
标签定义导航链接;B选项<footer></footer>,位于<body></body>中。
标签定义文档或节的页脚;C选项<meta>, <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
<meta> 标签位于文档的头部(<head></head>),不包含任何内容。
<meta> 标签的属性定义了与文档相关联的名称/值对。
D选项<canvas>。
<canvas>位于<body></body> 中,标签定义图形,比如图表和其他图像。
3,Cclear : none | left | right | both.对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。
4,D5,CBootstrap3的东东:/css/#grid栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
下面就介绍一下 Bootstrap 栅格系统的工作原理:“行(row)”必须包含在.container (固定宽度)或.container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)6,答案:AA,错误B,声明obj为数组对象C,声明obj为对象D,声明obj为正则对象7,A创建 Array 对象的语法var arr=[1,2,3];var arr=new Array(1,2,3);var arr=new Array(12); 如果只有一个数,代表数组的length是12个var arr=new Array(0); 清空数组8,BAngular大大减少了对DOM的访问。
jQuery极大的丰富了DOM操作9,D10,B用var操作符定义的变量将成为定义该变量作用于的局部变量,函数退出后变量销毁。
省略var操作符定义全局变量,难维护,易混乱。
11,true,true,false12,hi13,依次弹出4,4,4,414,实践证明:如果是typeof f,结果是function如果是typeof f(),结果是number如果是typeof g,结果是undefined.如果是typeof g(),结果是ReferenceError,g is not defined15,hello189..Javascript只有函数域,没有块作用域的概念,所以在同一个作用域中同一个变量声明多次还是指向第一次声明那个!所以当我们进行赋值的时候,都是指向第一次声明那个,有且只有最后一次赋值生效。
16分成:结构层、表示层、行为层。
结构层(structural layer)由 HTML 或 XHTML之类的标记语言负责创建。
标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。
例如,P标签表达了这样一种语义:“这是一个文本段。
”表示层(presentation layer)由 CSS 负责创建。
CSS对“如何显示有关内容”的问题做出了回答。
行为层(behaviorlayer)负责回答“内容应该如何对事件做出反应”这一问题。
这是 Javascript 语言和 DOM主宰的领域。
,17,IE6、7、8、FF、Opear、Safari、Chrome、MaxthonTrident:Windows 下的 IE 浏览器使用的内核代号。
除 IE 外,众多的 IE Shell(如Maxthon )都使用这个内核。
Gecko:Mozilla Firefox 浏览器使用的内核代号。
Presto:Opera 浏览器使用的内核代号,这是目前公认网页浏览速度最快的浏览器内核。
KHTML/WebCore: Konqueror/Safari 浏览器使用的内核代号。
经常遇到的浏览器兼容问题:1.在有的浏览器中,默认字体大小为12px,所以在设字体大小的时候,最小设为12px,如果在做的过程中,发现字体小于12,可直接作为图片使用2.a标签对里不能嵌套a标签对3.若给a标签内的内容样式加上样式,需要设置display:block;(在IE中如果设置宽高会自动变成块,在FF中则不会),但如果设置了float属性,就不需要设置display:block。