我看到很多网站,都会对CSS初始化:margin: 0; padding: 0;
<style>
* {
margin: 0;
padding: 0;
}
</style>
比如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>web</title>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="root" style="height: 100vh"></div>
<script type="module" src="./main.tsx"></script>
</body>
</html>
请问这个目的是什么呢?
这叫 CSS Reset 或 CSS Normalize。
不同浏览器下某些元素的某些样式初始值是不同的,所以即便一个网页你一行 CSS 都不写,在不同浏览器下打开它的渲染结果也是不同的。为了抹平这种差异,所以诞生了这种技术方案。
你要问为啥浏览器不把这些初始值给统一了,那是因为很多都是“上古时代”还没有形成标准的时候各家厂商自己实现的,这玩意儿一旦实现并被广泛使用以后就成了 Feature 了,不是想改就能改的了。