理论汇总JavaScript技术Web开发

148道 CSS 与 JavaScript 基础面试题

2021-04-06  本文已影响0人  前小小

前言:

本篇文章主要分享 CSS 与 JavaScript 基础面试题。CSS 和 JavaScript 都是前端基础知识,是前端学习中一定要学的内容,也是前端面试中必不可少的内容。

CSS面试题

1. 介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的?

相关知识点:

IE盒模型和W3C标准盒模型的区别:

在ie8+浏览器中使用哪个盒模型可以由box-sizing(CSS新增的属性)控制,默认值为 content-box,即标准盒模型;

如果将 box-sizing 设为 border-box 则用的是IE盒模型。如果在 ie6,7,8中DOCTYPE缺失会将盒子模型解释为IE盒子模型。若在页面中声明了DOCTYPE类型,所有的浏览器都会把盒模型解释为W3C盒模型。

2. CSS 选择符有哪些?

3. ::before 和 :after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用。

相关知识点:

4. 伪类与伪元素的区别

5. CSS 中哪些属性可以继承?

有继承性的属性:

注意:当一个属性不是继承属性时,可以使用 inherit 关键字指定一个属性应从父元素继承它的值,inherit 关键字用于显式地指定继承性,可用于任何继承性 / 非继承性属性。

6. CSS 优先级算法如何计算?

相关知识点:
CSS的优先级是根据样式声明的特殊性值来判断的。选择器的特殊性值分为四个等级,如下:

计算方法:

计算实例:

#demo a{
    color: orange;
}/*特殊性值:0,1,0,1*/

div#demo a{
    color: red;
}/*特殊性值:0,1,0,2*/

注意:

7. 关于伪类 LVHA 的解释?

a标签有四种状态:链接访问前、链接访问后、鼠标滑过、激活
分别对应四种伪类:link、:visited、:hover、:active;

当链接未访问过时:

当链接访问过时,情况基本同上,只不过需要将 :link 换成 :visited。

这个顺序能不能变?可以,但也只有 :link 和 :visited 可以交换位置,因为一个链接要么访问过要么没访问过,不可能同时满足,也就不存在覆盖的问题。

8. CSS3 新增伪类有那些?

9. 如何居中 div?

div {
  width: 200px;
  margin: 0 auto;
}
.container {
  background: rgba(0, 0, 0, 0.5);
  text-align: center;
  font-size: 0;
}

.box {
  display: inline-block;
  width: 500px;
  height: 400px;
  background-color: pink;
}
div {
  position: absolute;
  width: 300px;
  height: 300px;
  margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: pink; /*方便看效果*/
}
/*确定容器的宽高宽500高300的层设置层的外边距*/
div{
  position: absolute;/*绝对定位*/
  width: 500px;
  height: 300px;
  top: 50%;
  left: 50%;
  margin: -150px00-250px;/*外边距为自身宽高的一半*/
  background-color: pink;/*方便看效果*/
}
/*未知容器的宽高,利用`transform`属性*/
div {
  position: absolute; /*相对定位或绝对定位均可*/
  width: 500px;
  height: 300px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: pink; /*方便看效果*/
}
/*利用flex布局实际使用时应考虑兼容性*/
.container {
  display: flex;
  align-items: center; /*垂直居中*/
  justify-content: center; /*水平居中*/
}
.containerdiv {
  width: 100px;
  height: 100px;
  background-color: pink; /*方便看效果*/
}
/*利用text-align:center和vertical-align:middle属性*/
.container {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  text-align: center;
  font-size: 0;
  white-space: nowrap;
  overflow: auto;
}

.container::after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.box {
  display: inline-block;
  width: 500px;
  height: 400px;
  background-color: pink;
  white-space: normal;
  vertical-align: middle;
}

10. display 有哪些值?说明他们的作用。

11. position 的值 relative 和 absolute 定位原点是?

相关知识点:

12. CSS3 有哪些新特性?(根据项目回答)

13. 请解释一下 CSS3 的 Flex box(弹性盒布局模型),以及适用场景?

相关知识点:
Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

任何一个容器都可以指定为Flex布局。行内元素也可以使用Flex布局。注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis),项目默认沿主轴排列。

以下6个属性设置在容器上:

以下6个属性设置在项目上:

14. 用纯 CSS 创建一个三角形的原理是什么?

采用的是相邻边框连接处的均分原理。将元素的宽高设为0,只设置 border,把任意三条边隐藏掉(颜色设为transparent),剩下的就是一个三角形。

#demo {
  width: 0;
  height: 0;
  border-width: 20px;
  border-style: solid;
  border-color: transparent transparent red transparent;
}

篇幅有限,只有题目和部分答案,需要资料可以加入裙【953352883】领取100道CSS面试题,JavaScript基础面试题文档(包含题目和答案)

  1. 一个满屏品字布局如何设计?
  2. CSS 多列等高如何实现?
  3. 经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用 hack 的技巧?
  4. li 与 li 之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
  5. 为什么要初始化 CSS 样式?
  6. 什么是包含块,对于包含块的理解?
  7. CSS 里的 visibility 属性有个 collapse 属性值是干嘛用的?在不同浏览器下以后什么区别?
  8. width:auto 和 width:100%的区别
  9. 绝对定位元素与非绝对定位元素的百分比计算的区别
  10. 简单介绍使用图片 base64 编码的优点和缺点。
  11. 'dsplay'、'position'和'float'的相互关系?
  12. margin 重叠问题的理解。
  13. 对 BFC 规范(块级格式化上下文:block formatting context)的理解?
  14. IFC 是什么?
  15. 请解释一下为什么需要清除浮动?清除浮动的方式
  16. 使用 clear 属性清除浮动的原理?
  17. zoom:1 的清除浮动原理?
  18. 移动端的布局用过媒体查询吗?
  19. 使用 CSS 预处理器吗?喜欢哪个?
  20. CSS 优化、提高性能的方法有哪些?
  21. 浏览器是怎样解析 CSS 选择器的?
  22. 在网页中应该使用奇数还是偶数的字体?为什么呢?
  23. margin 和 padding 分别适合什么场景使用?
  24. 抽离样式模块怎么写,说出思路,有无实践经验?
  25. 简单说一下 css3 的 all 属性。
  26. 为什么不建议使用统配符初始化 css 样式。
  27. absolute 的 containingblock(包含块)计算方式跟正常流有什么不同?
  28. 对于 hasLayout 的理解?
  29. 元素竖向的百分比设定是相对于容器的高度吗?
  30. 全屏滚动的原理是什么?用到了 CSS 的哪些属性?
  31. 什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的 IE?
  32. 视差滚动效果,如何给每页做不同的动画?
  33. 如何修改 chrome 记住密码后自动填充表单的黄色背景?
  34. 怎么让 Chrome 支持小于 12px 的文字?
  35. 让页面里的字体变清晰,变细用 CSS 怎么做?
  36. font-style 属性中 italic 和 oblique 的区别?
  37. 设备像素、css 像素、设备独立像素、dpr、ppi 之间的区别?
  38. layout viewport、visual viewport 和 ideal viewport 的区别?
  39. position:fixed; 在 android 下无效怎么处理?
  40. 如果需要手动写动画,你认为最小时间间隔是多久,为什么?
  41. 如何让去除 inline-block 元素间间距?
  42. 有一个高度自适应的 div,里面有两个 div,一个高度 100px,希望另一个填满剩下的高度。
  43. png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?
  44. 浏览器如何判断是否支持 webp 格式图片
  45. 什么是 Cookie 隔离?
  46. style 标签写在 body 后与 body 前有什么区别?
  1. 什么是 CSS 预处理器/后处理器?
  2. 阐述一下 CSSSprites
  3. 使用 rem 布局的优缺点?
  4. 画一条 0.5px 的线
  5. transition 和 animation 的区别
  6. 什么是首选最小宽度?
  7. 为什么 height:100%会无效?
  8. min-width/max-width 和 min-height/max-height 属性间的覆盖规则?
  9. 内联盒模型基本概念
  10. 什么是替换元素?
  11. 替换元素的计算规则?
  12. content 与替换元素的关系?
  13. margin:auto 的填充规则?
  14. margin 无效的情形
  15. border 的特殊性?
  16. 什么是基线和 x-height?
  17. line-height 的特殊性?
  18. vertical-align 的特殊性?
  19. overflow 的特殊性?
  20. 无依赖绝对定位是什么?
  21. absolute 与 overflow 的关系?
  22. clip 裁剪是什么?
  23. relative 的特殊性?
  24. 什么是层叠上下文?
  25. 什么是层叠水平?
  26. 元素的层叠顺序?
  27. 层叠准则?
  28. font-weight 的特殊性?
  29. text-indent 的特殊性?
  30. letter-spacing 与字符间距?
  31. word-spacing 与单词间距?
  32. white-space 与换行和空格的控制?
  33. 隐藏元素的 background-image 到底加不加载?
  34. 如何实现单行/多行文本溢出的省略(...)?
  35. 常见的元素隐藏方式?
  36. css 实现上下固定中间自适应布局?
  37. css 两栏布局的实现?
  38. css 三栏布局的实现?
  39. 实现一个宽高自适应的正方形
  40. 实现一个三角形

JavaScript 基础面试题

  1. 介绍JavaScript的基本数据类型
  2. 说说写JavaScript的基本规范?
  3. jQuery使用建议
  4. Ajax使用
  5. JavaScript有几种类型的值?你能画一下他们的内存图吗?
  6. 栈和堆的区别?
  7. Javascript实现继承的几种方式
  8. Javascript创建对象的几种方式?
  9. Javascript作用链域
  10. 谈谈this的理解
  11. eval是做什么的?
  12. 什么是window对象? 什么是document对象?
  13. null,undefined的区别?
  14. ["1", "2", "3"].map(parseInt) 答案是多少?
  15. 关于事件,IE与火狐的事件机制有什么区别? 如何阻止冒泡?
  16. 什么是闭包(closure),为什么要用它?
  17. javascript 代码中的"use strict";是什么意思 ? 使用它区别是什么?
  18. 如何判断一个对象是否属于某个类?
  19. new操作符具体干了什么呢?
  20. Javascript中,执行时对象查找时,永远不会去查找原型的函数?
  21. 对JSON的了解?
  22. JS延迟加载的方式有哪些?
  23. 同步和异步的区别?
  24. 什么是跨域问题 ,如何解决跨域问题?
  25. 页面编码和被请求的资源编码如果不一致如何处理?
  26. 模块化开发怎么做?
  27. AMD、CMD规范区别?
  28. requireJS的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何缓存的?)
  29. call和apply
  30. documen.write和 innerHTML的区别
  31. 回流与重绘
  32. DOM操作
  33. 数组对象有哪些原生方法,列举一下
  34. 那些操作会造成内存泄漏
  35. 什么是Cookie 隔离?
  36. 响应事件
  37. flash和js通过什么类如何交互?
  38. Flash与Ajax各自的优缺点?
  39. 有效的javascript变量定义规则
  40. XML与JSON的区别?
  41. HTML与XML的区别?
  42. 渐进增强与优雅降级
  43. Web Worker和Web Socket?
  44. JS垃圾回收机制?
  45. web应用从服务器主动推送data到客户端的方式?
  46. 如何删除一个cookie?
  47. attribute与property的区别?
  48. Ajax请求的页面历史记录状态问题?
上一篇下一篇

猜你喜欢

热点阅读