前端修炼篇②:CSS入门与布局 - 美化网页与精确控制
为HTML骨架穿上华丽外衣,实现精准的页面布局🎨
学习目标
- ✅ 掌握CSS基础语法和选择器
- ✅ 理解盒模型的核心概念
- ✅ 熟练使用Flexbox进行页面布局
- ✅ 能够为网页添加美观的样式效果
📖📖 教程概览
如果说HTML是网页的骨架,那么CSS就是网页的衣服和妆容。本教程将带你学习如何用CSS美化网页,并掌握现代布局技术Flexbox,让你的页面既美观又专业。
💻💻 第一步:CSS基础入门
1.1 什么是CSS?
CSS(层叠样式表)用于控制网页的表现形式,包括颜色、字体、间距、布局等视觉样式。
1.2 CSS的三种引入方式
/* 1. 行内样式(不推荐大量使用) */
<div style="color: red; font-size: 16px;">内容</div>
/* 2. 内部样式表 */
<style>
.box { color: blue; margin: 10px; }
</style>
/* 3. 外部样式表(推荐) */
<link rel="stylesheet" href="styles.css">
1.3 基础CSS语法
选择器 {
属性: 值;
属性: 值;
}
/* 示例 */
h1 {
color: #333;
font-size: 24px;
text-align: center;
}
🛠🛠 第二步:核心概念详解
2.1 常用选择器
/* 元素选择器 */
p { color: blue; }
/* 类选择器(最常用) */
.title { font-size: 20px; }
/* ID选择器 */
#header { background: #f5f5f5; }
/* 后代选择器 */
nav a { text-decoration: none; }
/* 伪类选择器 */
a:hover { color: red; }
2.2 盒模型(Box Model)
每个HTML元素都是一个盒子,包含:
- content:内容区域
- padding:内边距
- border:边框
- margin:外边距
.box {
width: 200px;
height: 100px;
padding: 20px;
border: 2px solid #333;
margin: 10px;
}
2.3 常用样式属性
/* 文字样式 */
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
color: #333;
text-align: center;
line-height: 1.5;
/* 背景样式 */
background-color: #f0f0f0;
background-image: url('bg.jpg');
/* 盒子样式 */
width: 100%;
height: 200px;
padding: 20px;
margin: 10px auto;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
🌟🌟 第三步:Flexbox布局实战
3.1 为什么需要Flexbox?
传统布局方式难以实现复杂的对齐和分布,Flexbox提供了更简单、更强大的布局解决方案。
3.2 Flex容器属性
.container {
display: flex; /* 开启Flex布局 */
flex-direction: row; /* 主轴方向:row|row-reverse|column|column-reverse */
justify-content: center; /* 主轴对齐:flex-start|center|flex-end|space-between|space-around */
align-items: center; /* 交叉轴对齐:flex-start|center|flex-end|stretch */
flex-wrap: wrap; /* 换行:nowrap|wrap|wrap-reverse */
}
3.3 Flex项目属性
.item {
flex: 1; /* 伸缩比例 */
order: 2; /* 排列顺序 */
align-self: center; /* 单个项目对齐 */
}
🎮🎮 第四步:实战演练 - 美化个人简介页面
任务要求:
为上一篇创建的HTML个人简介页面添加CSS样式,实现:
- 整体页面居中布局
- 使用Flexbox进行版块排列
- 添加美观的颜色和间距
- 实现响应式基础效果
完整CSS代码示例:
/* 重置默认样式 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: white;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
overflow: hidden;
}
/* Header样式 */
header {
background: linear-gradient(135deg, #3498db, #2980b9);
color: white;
padding: 30px;
text-align: center;
}
header h1 {
font-size: 2.5em;
margin-bottom: 10px;
}
header p {
font-size: 1.2em;
opacity: 0.9;
}
/* Main内容区域 */
main {
padding: 30px;
}
section {
margin-bottom: 30px;
padding: 20px;
border-left: 4px solid #3498db;
background: #f8f9fa;
border-radius: 8px;
}
section h2 {
color: #2c3e50;
margin-bottom: 15px;
font-size: 1.5em;
}
/* 技能列表样式 */
.skills {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 10px;
}
.skills li {
background: #3498db;
color: white;
padding: 8px 15px;
border-radius: 20px;
list-style: none;
}
/* Footer样式 */
footer {
background: #2c3e50;
color: white;
padding: 20px;
text-align: center;
}
footer a {
color: #3498db;
text-decoration: none;
margin: 0 10px;
}
footer a:hover {
text-decoration: underline;
}
/* 响应式设计 */
@media (max-width: 768px) {
.container {
margin: 10px;
border-radius: 10px;
}
header {
padding: 20px;
}
header h1 {
font-size: 2em;
}
main {
padding: 20px;
}
}
在HTML中引入CSS:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>个人简介 - 张三</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<!-- 页面内容 -->
</div>
</body>
</html>
📚📚 小结与练习
本章重点回顾:
- CSS用于控制网页的视觉表现
- 盒模型是布局的基础概念
- Flexbox是现代布局的强大工具
- 响应式设计确保在不同设备上的良好体验
练习任务:
- 为你的个人简介页面实现以上CSS样式
- 尝试修改颜色方案,创建不同的视觉风格
- 使用Flexbox创建一个简单的导航菜单
- 为页面添加hover交互效果
💡💡 常见问题
Q:CSS样式不生效怎么办?
A:检查选择器是否正确、CSS文件路径是否正确、浏览器缓存是否清除
Q:如何实现垂直居中?
A:使用Flexbox的align-items: center
或justify-content: center
Q:盒模型中的宽度计算方式?
A:使用box-sizing: border-box
可以让宽度包含padding和border
👉👉 下一步预告
在下一篇中,我们将学习JavaScript,为网页添加交互功能,让页面真正"活"起来!
版权申明
本文系作者 @sgyyds 原创发布在孙哥博客站点。未经许可,禁止转载。
暂无评论数据