CSS(层叠样式表)是一种用于描述HTML(超文本标记语言)文档外观样式的语言。它定义了如何在网页中呈现元素的布局、颜色、字体、大小等属性。CSS文件通常与HTML文件分离,使得修改样式更加灵活和可维护。
CSS基于选择器和声明的规则,通过将样式应用于匹配选择器的元素来改变其外观。选择器可以基于元素类型、类名、ID、属性选择等进行匹配。声明则包含一个属性和一个值,用于描述元素的样式。
CSS具有层叠的特性,即当不同的CSS规则应用于同一个元素时,它们按照特定的优先级顺序进行应用。这使得开发者可以通过引入不同的样式表或者在同一个样式表中使用不同的规则来改变元素的外观。
CSS还支持一些高级特性,如盒模型、浮动、定位等,使得开发者可以更加精细地控制元素的布局和位置。此外,CSS还支持动画、过渡和响应式设计等功能,为网页提供了丰富的交互和响应性。
例如,原始的CSS代码:
body {
margin: 0;
padding: 0;
}
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
}
压缩后的CSS代码:
body{margin:0;padding:0}.container{width:100%;max-width:1200px;margin:0 auto}
例如,原始的HTML代码:
<head>
<link rel="stylesheet" href="normalize.css">
<link rel="stylesheet" href="main.css">
</head>
合并后的HTML代码:
<head>
<link rel="stylesheet" href="styles.css">
</head>
例如,原始的CSS代码:
@import 'normalize.css';
@import 'main.css';
改进后的CSS代码:
@import url('normalize.css');
@import url('main.css');
例如,原始的HTML代码:
<head>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="mobile.css" media="max-width: 600px">
</head>
改进后的HTML代码:
<head>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="mobile.css" media="screen and (max-width: 600px)">
</head>
*
)通常比其他选择器匹配更多的元素,因此在可能的情况下应避免使用它们。例如,原始的CSS代码:
* {
margin: 0;
padding: 0;
}
改进后的CSS代码:
body {
margin: 0;
padding: 0;
}
/* 原始样式 */
div .container .list-item {
/* 样式 */
}
/* 优化后的样式 */
.list-item {
/* 样式 */
}
/* 原始样式 */
.container {
width: 100%;
}
.list-item {
margin: 10px;
}
/* 优化后的样式 */
.container,
.list-item {
width: 100%;
margin: 10px;
}
/* 原始样式 */
@keyframes fadeIn {
0% { opacity: 0; }
100% { opacity: 1; }
}
.element {
animation: fadeIn 1s;
}
/* 优化后的样式 */
@keyframes fadeIn {
0%, 100% { opacity: 0; }
50% { opacity: 1; }
}
.element {
animation: fadeIn 1s;
}
/* 原始样式 */
.container {
width: 100%;
margin: 10px;
padding: 20px;
border-radius: 5px;
background-color: #fff;
}
/* 优化后的样式 */
$container-width: 100%;
$container-margin: 10px;
$container-padding: 20px;
$container-border-radius: 5px;
$container-background-color: #fff;
.container {
width: $container-width;
margin: $container-margin;
padding: $container-padding;
border-radius: $container-border-radius;
background-color: $container-background-color;
}
/* 原始样式 */
.button {
background-image: url('button1.png');
}
/* 优化后的样式 */
.button {
background-image: url('sprite.png');
background-position: -10px -20px;
width: 40px;
height: 40px;
}