网站基础:CSS基础介绍
作者: 字符空间 发布时间: 2025-11-03 阅读: 17
一、CSS简介
CSS(Cascading Style Sheets)即层叠样式表,是用来描述HTML文档样式的语言。
CSS的主要作用:
- 控制网页的布局和外观
- 实现内容与表现的分离
- 提高代码的可维护性
- 实现响应式设计
CSS发展历程:
- CSS1 - 1996年发布,基础样式功能
- CSS2 - 1998年发布,增加定位等功能
- CSS3 - 模块化发布,增加动画、渐变等高级特性
二、CSS基本语法
1. CSS规则集结构
选择器 {
属性: 值;
属性: 值;
}
示例:
p {
color: red;
font-size: 16px;
margin: 10px;
}
语法说明:
- 选择器 - 指定要样式化的HTML元素
- 声明块 - 包含在一对大括号中
- 声明 - 属性与值的组合
- 属性 - 要设置的样式属性
- 值 - 属性的具体设置
三、CSS引入方式
1. 行内样式
直接在HTML标签的style属性中编写样式
<p style="color: blue; font-size: 14px;">这是一个段落</p>
2. 内部样式表
在HTML文档的<head>部分使用<style>标签
<style>
p {
color: green;
margin: 10px;
}
</style>
3. 外部样式表
使用单独的.css文件,通过<link>标签引入
<link rel="stylesheet" href="styles.css">
4. 导入样式
在CSS文件中使用@import导入其他CSS文件
@import url("other-styles.css");
四、CSS选择器
1. 基础选择器
| 选择器类型 | 语法 | 描述 | 示例 |
|---|
| 元素选择器 | 元素名 | 选择指定HTML元素 | p { color: red; } |
| 类选择器 | .类名 | 选择具有指定class的元素 | .text { font-size: 16px; } |
| ID选择器 | #id名 | 选择具有指定id的元素 | #header { background: blue; } |
| 通用选择器 | * | 选择所有元素 | * { margin: 0; padding: 0; } |
2. 组合选择器
| 选择器类型 | 语法 | 描述 | 示例 |
|---|
| 后代选择器 | 选择器1 选择器2 | 选择选择器1内的所有选择器2 | div p { color: red; } |
| 子选择器 | 选择器1 > 选择器2 | 选择作为选择器1直接子元素的选择器2 | ul > li { list-style: none; } |
| 相邻兄弟选择器 | 选择器1 + 选择器2 | 选择紧接在选择器1后的选择器2 | h1 + p { margin-top: 0; } |
| 通用兄弟选择器 | 选择器1 ~ 选择器2 | 选择在选择器1后面的所有选择器2 | h1 ~ p { color: blue; } |
3. 属性选择器
| 选择器 | 描述 | 示例 |
|---|
| [attribute] | 选择带有指定属性的元素 | [target] { background: yellow; } |
| [attribute=value] | 选择属性值等于value的元素 | [type="text"] { border: 1px solid; } |
| [attribute^=value] | 选择属性值以value开头的元素 | [href^="https"] { color: green; } |
| [attribute$=value] | 选择属性值以value结尾的元素 | [src$=".jpg"] { border: 2px solid; } |
4. 伪类选择器
| 伪类 | 描述 | 示例 |
|---|
| :hover | 鼠标悬停时的样式 | a:hover { color: red; } |
| :focus | 元素获得焦点时的样式 | input:focus { border-color: blue; } |
| :first-child | 选择作为其父元素的第一个子元素 | li:first-child { font-weight: bold; } |
| :nth-child(n) | 选择作为其父元素的第n个子元素 | tr:nth-child(odd) { background: #f2f2f2; } |
五、CSS常用属性
1. 文本属性
| 属性 | 描述 | 常用值 |
|---|
| color | 文本颜色 | red, #ff0000, rgb(255,0,0) |
| font-size | 字体大小 | 16px, 1em, 100% |
| font-family | 字体族 | Arial, "Microsoft YaHei" |
| text-align | 文本对齐 | left, center, right, justify |
| line-height | 行高 | 1.5, 24px, 150% |
2. 盒模型属性
| 属性 | 描述 | 示例 |
|---|
| width / height | 宽度 / 高度 | width: 200px; height: 100px; |
| margin | 外边距 | margin: 10px 5px; |
| padding | 内边距 | padding: 15px; |
| border | 边框 | border: 1px solid #000; |
| box-sizing | 盒模型计算方式 | box-sizing: border-box; |
3. 背景属性
| 属性 | 描述 | 示例 |
|---|
| background-color | 背景颜色 | background-color: #f0f0f0; |
| background-image | 背景图片 | background-image: url("bg.jpg"); |
| background-repeat | 背景重复 | background-repeat: no-repeat; |
| background-position | 背景位置 | background-position: center top; |
六、CSS盒模型
盒模型组成:
- 内容区域(Content) - 包含实际内容
- 内边距(Padding) - 内容与边框之间的空间
- 边框(Border) - 围绕内边距和内容的边框
- 外边距(Margin) - 边框外的透明区域
两种盒模型:
- 标准盒模型(content-box)
元素宽度 = width + padding + border
- IE盒模型(border-box)
元素宽度 = width(包含padding和border)
七、CSS布局
1. 显示类型(display)
| 值 | 描述 | 特点 |
|---|
| block | 块级元素 | 独占一行,可设置宽高 |
| inline | 行内元素 | 不独占一行,不可设置宽高 |
| inline-block | 行内块元素 | 不独占一行,可设置宽高 |
| none | 隐藏元素 | 元素不显示,不占空间 |
2. 定位(position)
| 值 | 描述 | 示例 |
|---|
| static | 默认定位 | 元素正常流排列 |
| relative | 相对定位 | 相对于自身原位置定位 |
| absolute | 绝对定位 | 相对于最近定位祖先元素定位 |
| fixed | 固定定位 | 相对于浏览器窗口定位 |
| sticky | 粘性定位 | 在特定阈值时变为固定定位 |
3. 浮动(float)
img {
float: left;
margin-right: 10px;
}
4. 弹性布局(Flexbox)
.container {
display: flex;
justify-content: space-between;
align-items: center;
}
八、CSS单位
常用单位:
| 单位 | 类型 | 描述 | 示例 |
|---|
| px | 绝对单位 | 像素 | font-size: 16px; |
| % | 相对单位 | 百分比 | width: 50%; |
| em | 相对单位 | 相对于父元素字体大小 | margin: 2em; |
| rem | 相对单位 | 相对于根元素字体大小 | font-size: 1.5rem; |
| vw / vh | 相对单位 | 视口宽度/高度的1% | width: 50vw; |
九、CSS实战示例
完整CSS样式表示例:
/* 重置默认样式 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 页面主体样式 */
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
background-color: #f4f4f4;
}
/* 头部样式 */
.header {
background: #35424a;
color: white;
padding: 20px 0;
text-align: center;
}
/* 导航菜单样式 */
.nav-menu {
list-style: none;
display: flex;
justify-content: center;
gap: 20px;
}
.nav-menu a {
color: white;
text-decoration: none;
padding: 5px 10px;
}
.nav-menu a:hover {
background: #e8491d;
border-radius: 3px;
}
/* 主要内容区域 */
.main-content {
max-width: 1200px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
/* 按钮样式 */
.btn {
display: inline-block;
padding: 10px 20px;
background: #35424a;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
text-decoration: none;
}
.btn:hover {
background: #e8491d;
}
/* 响应式设计 */
@media (max-width: 768px) {
.nav-menu {
flex-direction: column;
gap: 10px;
}
.main-content {
margin: 10px;
padding: 15px;
}
}
十、CSS调试技巧
常用调试方法:
- 使用浏览器开发者工具(F12)
- 临时添加边框检查元素边界:border: 1px solid red;
- 使用背景色检查元素区域:background-color: rgba(255,0,0,0.1);
- 检查CSS特异性(Specificity)
- 验证CSS语法正确性
十一、CSS最佳实践
编码规范:
- 使用外部样式表
- 合理组织CSS代码结构
- 使用有意义的类名
- 避免使用!important
- 使用CSS预处理器(Sass/Less)
性能优化:
- 减少CSS文件大小
- 使用CSS雪碧图
- 避免过度嵌套
- 使用transform和opacity实现动画
十二、学习资源推荐
在线教程:
- MDN Web Docs - 最权威的Web技术文档
- W3School - 适合初学者的教程
- CSS-Tricks - 高级技巧和教程
- 菜鸟教程 - 中文教程,适合入门
练习平台:
- CodePen - 在线代码编辑和分享
- JSFiddle - 前端代码测试平台
- CSS Battle - CSS编码游戏
十三、总结
CSS学习要点:
- 掌握选择器的使用方法
- 理解盒模型和布局原理
- 熟悉常用属性的使用
- 学会响应式设计
- 掌握调试和优化技巧
进阶方向:
- CSS预处理器(Sass、Less)
- CSS框架(Bootstrap、Tailwind CSS)
- CSS动画和过渡
- CSS架构方法论(BEM、OOCSS)
CSS是网页设计的核心技能,通过不断实践和探索,你将能够创建出美观、专业的网页界面。
❤️收藏
👍点赞
用户评论
发表评论