Web/03-CSS进阶/CSS面试题.md
2019-10-05 11:59:34 +08:00

116 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 常见问题
### 你是如何理解 HTML 语义化的
**语义化**指对文本内容的结构化内容语义化选择合乎语义的标签代码语义化
**举例**段落用 p边栏用 aside主要内容用 main 标签
**好处**
- 便于开发者阅读和维护
- 有利于SEO让浏览器的爬虫和辅助技术更好的解析
**语义化标签介绍**
在HTML5出来之前我们习惯于用div来表示页面的章节或者不同模块但是`div`本身是没有语义的但是现在HTML5中加入了一些语义化标签来更清晰的表达文档结构
20180322_1120.jpg
参考链接
- [初探 · HTML5语义化](https://zhuanlan.zhihu.com/p/32570423)
### meta viewport 是做什么用的怎么写
```html
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
```
控制页面在移动端不要缩小显示
### canvas 元素是干什么的
MDN [canvas 入门手册](https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API)。
### 说一下CSS盒模型
可以参考本人的另外一篇文章02-CSS基础/06-CSS盒模型详解
### css reset Normalize.css 有什么区别
> 此题考英文
二者都是用来**统一**浏览器的默认样式
- reset重置相对暴力不管你有没有用统统重置成一样的效果且影响的范围很大讲求跨浏览器的一致性一刀切
- `Normalize.css` 标准化相对平和注重通用的方案重置掉该重置的样式保留有用的 user agent 样式同时进行一些 bug 的修复这点是 reset 所缺乏的去伪存真
参考链接
- [Normalize.css 与传统的 CSS Reset 有哪些区别](https://p.baidu.com/question/ab496162636234613761335c00)
- [CSS3初始化代码Normalize.css中文版](http://www.bbsxiaomi.com/html_css/html5_css3/177.html)
- [谈谈一些有趣的 CSS 话题](https://github.com/chokcoco/iCSS)
- [前端面试之CSS总结()](https://segmentfault.com/a/1190000006890725)
### 选择器的优先级如何确定
- 选择器越具体优先级越高 #xxx 大于 .yyy
- 同样优先级写在后面的覆盖前面的
- color: red !important; 优先级最高
### BFC 是什么
overflow:hidden 取消父子 margin 合并 另一种推荐做法`padding-top: 0.1px;`
### 如何清除浮动
1overflow: hidden
2.clearfix 清除浮动写在爸爸身上
```css
.clearfix::after {
content: '';
display: block;
clear: both;
}
/* 兼容 IE */
.clearfix {
zoom: 1;
}
```
### 伪类和伪元素的区别是什么
概念上的区别
- 伪类表示一种状态
- 伪元素是真的有元素比如 ::after 是真的有元素可以在页面上显示内容
使用上的区别
- 伪类使用单冒号
- 伪元素使用双冒号
## 参考链接
- [互联网公司招聘启事的正确阅读方式](https://zhuanlan.zhihu.com/p/33998813)