写出几个初始化CSS的样式,并解释说明为什么要这样写
以下是一些初始化 CSS 样式,并解释了为什么这样写:
/* 重置内外边距 */
* {
margin: 0;
padding: 0;
}
/* 继承 box-sizing */
*,
*::before,
*::after {
box-sizing: inherit;
}
html {
box-sizing: border-box; /* 使用 border-box 模型 */
font-size: 62.5%; /* 设置根元素字体大小为 10px,方便 rem 使用 */
-webkit-text-size-adjust: 100%; /* 防止 iOS Safari 自动调整字体大小 */
}
body {
font-family: sans-serif; /* 设置默认字体 */
line-height: 1.5; /* 设置行高 */
min-height: 100vh; /* 确保 body 至少占据整个视口高度 */
-webkit-font-smoothing: antialiased; /* macOS/iOS 上的字体平滑 */
-moz-osx-font-smoothing: grayscale; /* Firefox 上的字体平滑 */
}
img, picture, video, iframe, table, figure {
display: block; /* 防止图片底部出现空白 */
max-width: 100%; /* 限制图片宽度,防止溢出容器 */
height: auto; /* 保持图片宽高比 */
}
a {
text-decoration: none; /* 去除链接下划线 */
color: inherit; /* 继承父元素颜色 */
}
ul, ol {
list-style: none; /* 去除列表默认样式 */
}
button, input, select, textarea {
font: inherit; /* 继承父元素字体样式 */
background-color: transparent; /* 背景透明 */
border: none; /* 去除默认边框 */
padding: 0; /* 去除默认内边距 */
appearance: none; /* 去除默认外观样式 */
cursor: pointer; /* 设置鼠标样式为指针 */
}
/* 禁用按钮默认样式 */
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
解释:
-
* { margin: 0; padding: 0; }
: 这是最常见的重置样式,用于去除所有元素的默认内外边距。不同浏览器对不同元素的默认内外边距设置不同,这会导致布局出现差异。这个规则可以消除这些差异,使布局更可控。 -
box-sizing: border-box;
:border-box
模型将元素的padding
和border
包含在元素的宽度和高度内,而不是在元素的宽度和高度之外添加。这使得计算元素的尺寸更加直观和方便。 -
font-size: 62.5%;
: 将根元素的字体大小设置为 10px,方便使用rem
单位。1rem
等于根元素的字体大小,因此设置根元素字体大小为 10px 后,1rem
就等于10px
,方便计算。 -
-webkit-text-size-adjust: 100%;
: 防止 iOS Safari 自动调整字体大小,确保字体大小与设计一致。 -
font-family: sans-serif;
: 设置默认字体为无衬线字体。 -
line-height: 1.5;
: 设置行高,提高文本可读性。 -
min-height: 100vh;
: 确保body
元素至少占据整个视口高度。 -
-webkit-font-smoothing
和-moz-osx-font-smoothing
: 用于字体平滑,使字体在不同操作系统上显示更清晰。 -
img, picture, video, iframe, table, figure { display: block; ... }
: 将这些元素设置为块级元素,防止图片底部出现空白,并限制其最大宽度,防止溢出容器。 -
a { text-decoration: none; color: inherit; }
: 去除链接默认下划线,并继承父元素颜色。 -
ul, ol { list-style: none; }
: 去除列表默认样式。 -
button, input, select, textarea { ... }
: 重置表单元素样式,去除默认样式,并继承父元素字体。 -
**`button