前端面试题汇总 - HTML & CSS

1. doctype的意义是什么?

  • 让浏览器以标准模式渲染
  • 让浏览器知道元素的合法性

2. HTML、XHTML、HTML5的关系?

  • HTML属于SGML
  • XHTML属于XML,是HTML进行XML严格化的结果
  • HTML5不属于SGML或XML,比XML宽松

3. HTML5有什么变化?

  • 新的语义化元素
  • 表单增强
  • 新的API(离线、音视频、图形、实时通信、本地存储、设备能力)
  • 分类和嵌套变更

4. em和i有什么区别?

  • em是语义化的标签,表强调
  • i是纯样式的标签,表斜体
  • HTML5中i不推荐使用,一般用做图标

5. 语义化的意义是什么?

  • 开发者容易理解
  • 极其容易理解结构(搜索、读屏软件)
  • 有助于SEO
  • semantic microdata

6. 哪些元素可以自闭合?

  • 表单元素input
  • 图片img
  • br、hr
  • meta、link

7. HTML和DOM的关系?

  • HTML是死的
  • DOM由HTML解析而来,是活的
  • JS可以维护DOM

8. property和attribute的区别?

  • attribute是死的,是写在html中的
  • property是活的
  • 修改不互相影响

9. form的作用?

  • 直接提交表单
  • 使用submit / reset按钮
  • 便于浏览器保存表单
  • 第三方库可以整体提取值
  • 第三方库可以进行表单验证

10. 选择器权重?

  • ID选择器 #id +100
  • 类、属性、伪类 +10
  • 元素、伪元素 +1
  • 其他选择器 +0

11. css背景?

(1)渐变色背景

.c2{
		height:90px;
        /* background: -webkit-linear-gradient(left, red, green); */
        /* background: linear-gradient(to right, red, green); */
        /* background: linear-gradient(180deg, red, green); */
        /* background: linear-gradient(135deg, red 0, green 10%, yellow 50%, blue 100%); */
        background: linear-gradient(135deg, transparent 0, transparent 49.5%, green 49.5%, green 50.5%, transparent 50.5%, transparent 100%),
                linear-gradient(45deg, transparent 0, transparent 49.5%, red 49.5%, red 50.5%, transparent 50.5%, transparent 100%);  /* 交叉线背景 */
        background-size: 30px 30px;
    }

12. 文字折行?

  • overflow-wrap(word-wrap)通用换行控制 —— 是否保留单词
  • word-break 针对多字节文字 —— 中文句子也是单词
  • white-space 空白处是否换行

13. base64的使用?

  • 用于减少HTTP请求
  • 适用于小图片
  • base64的体积约为原图4/3

14. 伪类和伪元素的区别?

  • 伪类表状态
  • 伪元素是真的有元素
  • 前者单冒号,后者双冒号

15. 如何美化checkbox?

  • label[for]和id
  • 隐藏原生input
  • :checked + label

16. 如何实现3D效果?

  • perspective: 500px;
  • transform-style:preserve-3d;
  • transform: translate rotate …

17. css动画?

(1)动画的原理

  • 视觉暂留作用
  • 画面逐渐变化

(2)动画的作用

  • 愉悦感
  • 引起注意
  • 反馈
  • 掩饰

(3)css中动画的类型

  • transition补间动画
  • keyframe关键帧动画、逐帧动画(animation)

(4)补间动画

  • 位置 - 平移(left/right/margin/transform)
  • 方位 - 旋转(transform)
  • 大小 - 缩放(transform)
  • 透明度(opacity)
  • 其他 - 线性变换(transform)

(5)关键帧动画

  • 相当于多个补间动画
  • 与元素状态的变化无关
  • 定义更加灵活

(3)逐帧动画

  • 适用于无法补间计算的动画
  • 资源较大
  • 适用steps() animation-timing-function: steps(1);

18. 过渡动画和关键帧动画的区别?

  • 过渡动画需要有状态变化
  • 关键帧动画不需要状态变化
  • 关键帧动画能控制更精细

19. 如何实现逐帧动画?

  • 使用关键帧动画
  • 去掉补间(steps)

20. css动画的性能?

  • 性能不坏
  • 部分情况下优于JS
  • 但JS可以做到更好
  • 部分高危属性box-shadow等
发布了23 篇原创文章 · 获赞 0 · 访问量 494

猜你喜欢

转载自blog.csdn.net/qq_33084055/article/details/104279503