面试题(简答与编程)--参考答案

一. 简答题

1. 行内元素有哪些?块元素有哪些?CSS盒模型?

解析:这一个最基本的题目,不多言。

  • 元素分类

|类型|元素|
|:-|
|行内元素|span a font i b u em strong|
|块元素|div h1~h6 p pre hr ul ol li dl table form |

  • CSS盒模型

CSS盒模型包含内容(content)、填充(padding)、边框(border)和边界(margin)。

盒模型

2. CSS引入的方式有哪些?link@import的区别?

@import因为自身的严重缺点,已经完全不再使用了。这个问题只好做历史题记忆了。

  • CSS引入的方式
  1. 内联样式/行内式
    标签属性style设定CSS样式。
  2. 内部样式表/内嵌式
<head>
  <style type="text/css">
  /* CSS代码 */
  </style>
</head>
  1. 外部样式表/链接式
<link href=""CSS文件路径" rel="stylesheet" type="text/css"/>
  1. 导入样式表/导入式[不推荐使用]
<style type="text/css">
@import "CSS文件路径"; 
</style>

或者

<style type="text/css">
@import url("CSS文件路径"); 
</style>
  • link@import的区别
  1. link写在head中,页面加载同时加载CSS文件;@import在网页加载完后再装载CSS文件。@import当网页比较大时,出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。
  2. link支持使用Javascript控制DOM去改变样式;而@import不支持,比如更换网页主题(皮肤)。
  3. link不止加载CSS文件,也可以加载其他文件,比如页面标题前的小图标;而@import只能用于加载CSS文件。

3. CSS的选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?

选择器有很多种类,不在于完全答出来,五六种即可。important是个双刃剑,虽然会获取最高优先级,缺点在于使用中会带来各种麻烦,例如,js改变CSS会不起作用。

  • CSS的选择符

    1. ID选择器#ID值 {}
    2. 类选择器.类名 {}
    3. 标签/元素选择器标签名 {}
    4. 伪类选择器选择器:nth-child(n) {}
    5. 超链接伪类选择器 :link :visited :hover :active
    6. 后代选择器选择器1 选择器2 {}
    7. 子选择器选择器1>选择器2 {}
    8. 通配符选择器* {}
    9. 分组选择器选择器1,选择器2 {}
    10. 属性选择器
  • 可以继承的属性

|No.|分类|属性|
|:-:|
|1|所有元素(2个)|cursor visibility|
|2|列表(4个)|list-style list-style-type list-style-position list-style-image|
|3|表格(2个)|border-collapse border-spacing|
|4|块级(2个)|text-align text-indent|
|5|内联(3类14个)|字体(8个)font color font-family font-style font-weight font-size line-height font-variant 空白(3个)letter-spacing word-spacing white-space 文本(3个) text-decoration text-transform direction|

  • 优先级
    • 权重原则:important > 内联样式 > ID选择器 > 类选择器 > 标签选择器 = 伪类 = 属性选择器 > 伪对象 > 继承 > 通配符
    • 就近原则:内联样式 > 内部样式表 > 外部样式表
  • important的优先级高于内联

4. 前端页面有那三层构成,分别是什么?作用是什么?

基础问题不多言。

三层 作用
HTML 结构
CSS 表示
Javascript 行为

5. CSS的基本语句构成是?

基础问题不多言。

选择器 {
    属性1:值1;
    属性2:值2;
    ……
}

6. 你做过的页面在哪些浏览器测试过?这些浏览器的内核分别是什么?

这是把前端做为英语考试的节奏,无他法唯死记。

浏览器 内核
IE Trident
Edge edge
Chrome 早期是Webkit,最新是Blink
Safari Webkit
FireFox Gecko
Opera 最早是Presto,后来是Webkit,最新是Blink

7. 标签上titlealt属性的区别是什么?

基础问题不多言。

  • alt属性是给SEO和屏幕阅读器提供图片信息,在图片不能加载时在页面显示的提示信息
  • title属性是鼠标悬停在图片上时显示一个小提示

8. 清除浮动的几种方式,各自的优缺点

其实方法很多,可自行Baidu,下面是最常用最基本的用法。

  • 从父标签中出来/撑不开父标签,给父标签加上overflow:auto;zoom:1;
    优点:简单,代码少,浏览器支持好
    缺点:不能和position配合使用

  • 把后续的同级标签覆盖,给后续的同级标签加上clear:both;
    优点:简单,代码少,浏览器支持好
    缺点:有时需要增加很空div

9. 简述一下srchref的区别

  • src是引入,页面必不可少的部分,通常会是页面上显示的内容,例如:img iframe等。
  • href是引用,与页面有关联,通常不在页面上显示,例如:a link等。

10. pxem的区别

基础问题不多言。

  • px相对于显示器屏幕分辨率。
  • em相对于当前对象内文本的字体尺寸。

11. 添加 删除 替换 插入到某个节点的方法?

基础问题不多言。

操作 Javascript方法 JQuery方法
添加 appendChild() append() appendTo() prepend() prependTo
删除 deleteChild() remove() empty()
替换 replaceChild() replaceWith() replaceAll()
插入 insertBefore() before() insertBefore() after() insertAfter()

二. 编程题

1. 编写一个数组去重的方法。

基础问题不多言。

function uniqueArray(arr){
// 存放结果
var res = [];
for(var i in arr){// 遍历数组元素
 if(res.indexOf(arr[i]) == -1){// 如果结果数组不存在该元素则保存
    res.push(arr[i]);
 }
}
// 返回去重后的数组
return res;
}
// 测试
uniqueArray([1,4,6,7,9,6,4,5]);

2. CSS实现div垂直水平居中。

实现方式有很多种,下面方式最简单。

绝对定位实现div垂直水平居中

div{
  width:宽度;
  height:高度;
  margin:auto;
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,228评论 0 8
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 114,863评论 24 450
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 7,195评论 2 19
  • 我家有七八个亲戚都在这二三年内换了新房子,于是在去年春节时,集中时间去各个家里拜访了一次。差不多有四个亲戚家是在同...
    苏听风阅读 3,623评论 0 36