前端基础:从0到1制作简单网页(三)

作者:<但凡.日期:2025/10/27

HTML容器元素分类

1. 通用容器

  • <div> - 通用块级容器
  • <span> - 通用内联容器(处理行内内容)

2. 语义化容器(HTML5新增)

3. 列表容器

4. 表格容器

5. 表单容器

6. 其他容器

传统网页布局方式

传统网页布局主要基于HTML和CSS技术,通过不同的结构设计和样式控制实现页面排版。以下是几种常见的传统布局方式:

表格布局(Table Layout)

早期网页常用<table>标签进行布局,通过行(<tr>)和列(<td>)划分内容区域。

  • 特点:简单直观,兼容性好。
  • 缺点:代码冗余,语义性差,不利于SEO和响应式设计。
  • 示例
1<table border="1">  
2  <tr>  
3    <td>头部</td>  
4  </tr>  
5  <tr>  
6    <td>侧边栏</td>  
7    <td>主内容</td>  
8  </tr>  
9</table>  

浮动布局(Float Layout)

利用CSS的float属性让元素脱离文档流,实现多栏布局。

  • 特点:比表格布局更灵活,适合复杂排版。
  • 缺点:需要清除浮动(如使用clearfix),否则易引发布局错乱。
  • 示例
1.sidebar { float: left; width: 30%; }  
2.content { float: right; width: 70%; }  
3.clearfix::after { content: ""; display: block; clear: both; }  

定位布局(Position Layout)

通过position属性(如absolutefixedrelative)精确控制元素位置。

  • 特点:适合叠加元素或固定位置的组件(如导航栏)。
  • 缺点:脱离文档流可能导致父容器高度塌陷。
  • 示例
1.header { position: fixed; top: 0; width: 100%; }  

弹性盒子布局(Flexbox)

CSS3引入的弹性盒模型,通过display: flex实现动态空间分配和对齐。

  • 特点:一维布局,适合均分布局或垂直居中。
  • 缺点:不支持复杂多维布局。
  • 示例
1.container {  
2  display: flex;  
3  justify-content: space-between;  
4}  

网格布局(Grid)

CSS3的网格系统,通过display: grid定义行列结构,实现二维布局。

  • 特点:强大的行列控制能力,适合复杂布局。
  • 缺点:旧浏览器兼容性有限。
  • 示例
1.container {  
2  display: grid;  
3  grid-template-columns: 1fr 2fr;  
4}  

选择建议

  • 简单页面:浮动或Flexbox。
  • 复杂排版:Grid布局。
  • 兼容老旧浏览器:表格或浮动布局(需谨慎使用)。

传统布局方式各有优劣,现代开发中推荐优先使用Flexbox和Grid,兼顾语义化和响应式需求。

HTML 中的块元素

块元素(Block Elements)在页面中以块的形式显示,独占一行,默认情况下会自动换行。常见的块元素包括 <div><p><h1>-<h6><ul><ol><li><table> 等。

块元素的特点:

  • 独占一行,前后会自动换行。
  • 可以设置宽度(width)、高度(height)、内边距(padding)和外边距(margin)。
  • 默认宽度为父元素的 100%。

示例代码:

1<div style="background-color: lightblue; width: 200px; height: 100px;">
2  这是一个块元素。
3</div>
4<p style="background-color: lightgreen;">这是另一个块元素。</p>
5

HTML 中的行内元素

行内元素(Inline Elements)不会独占一行,只占据内容所需的宽度。常见的行内元素包括 <span><a><strong><em><img><input> 等。

行内元素的特点:

  • 不会独占一行,多个行内元素会排列在同一行。
  • 无法直接设置宽度和高度,宽度和高度由内容决定。
  • 可以设置水平方向的内边距和外边距,但垂直方向的外边距无效。

示例代码:

1<span style="background-color: yellow;">这是一个行内元素。</span>
2<a href="#" style="background-color: pink;">这是一个链接。</a>
3

HTML 中的行内块元素

行内块元素(Inline-Block Elements)结合了块元素和行内元素的特性,既可以设置宽度和高度,又不会独占一行。常见的行内块元素包括 <img><input>(默认情况下),也可以通过 CSS 的 display: inline-block 将其他元素设置为行内块元素。

行内块元素的特点:

  • 不会独占一行,多个行内块元素会排列在同一行。
  • 可以设置宽度、高度、内边距和外边距。
  • 默认宽度由内容决定。

示例代码:

1<span style="display: inline-block; width: 100px; height: 50px; background-color: orange;">
2  这是一个行内块元素。
3</span>
4<img src="example.jpg" style="width: 50px; height: 50px;">
5

如何切换元素的显示类型

通过 CSS 的 display 属性可以切换元素的显示类型:

  • display: block:将元素设置为块元素。
  • display: inline:将元素设置为行内元素。
  • display: inline-block:将元素设置为行内块元素。

示例代码:

1<span style="display: block; background-color: lightgray;">原本是行内元素,现在显示为块元素。</span>
2<div style="display: inline; background-color: lightcoral;">原本是块元素,现在显示为行内元素。</div>
3

项目实战:

HTML 结构

以下是一个基础的个人博客 HTML 框架,包含标题、导航栏、文章列表和页脚:

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>我的个人博客</title>
7    <link rel="stylesheet" href="styles.css">
8</head>
9<body>
10    <header>
11        <h1>我的个人博客</h1>
12        <nav>
13            <ul>
14                <li><a href="#">首页</a></li>
15                <li><a href="#">关于我</a></li>
16                <li><a href="#">文章</a></li>
17                <li><a href="#">联系</a></li>
18            </ul>
19        </nav>
20    </header>
21
22    <main>
23        <article>
24            <h2>文章标题1</h2>
25            <p class="meta">发布于 2023年5月1日</p>
26            <p>这里是文章摘要内容...</p>
27            <a href="#" class="read-more">阅读更多</a>
28        </article>
29
30        <article>
31            <h2>文章标题2</h2>
32            <p class="meta">发布于 2023年4月15日</p>
33            <p>这里是另一篇文章摘要内容...</p>
34            <a href="#" class="read-more">阅读更多</a>
35        </article>
36    </main>
37
38    <footer>
39        <p>© 2023 我的个人博客. 保留所有权利.</p>
40    </footer>
41</body>
42</html>
43

CSS 样式

以下是配套的CSS样式,为博客添加基本布局和美观效果:

1/* 基础样式重置 */
2body {
3    font-family: 'Arial', sans-serif;
4    line-height: 1.6;
5    margin: 0;
6    padding: 0;
7    color: #333;
8    background-color: #f5f5f5;
9}
10
11/* 布局样式 */
12header {
13    background: #2c3e50;
14    color: white;
15    padding: 1rem 0;
16    text-align: center;
17}
18
19nav ul {
20    list-style: none;
21    padding: 0;
22    display: flex;
23    justify-content: center;
24}
25
26nav ul li {
27    margin: 0 15px;
28}
29
30nav a {
31    color: white;
32    text-decoration: none;
33}
34
35main {
36    max-width: 800px;
37    margin: 2rem auto;
38    padding: 0 20px;
39}
40
41article {
42    background: white;
43    margin-bottom: 20px;
44    padding: 20px;
45    border-radius: 5px;
46    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
47}
48
49.meta {
50    color: #7f8c8d;
51    font-size: 0.9rem;
52}
53
54.read-more {
55    display: inline-block;
56    background: #3498db;
57    color: white;
58    padding: 5px 10px;
59    border-radius: 3px;
60    text-decoration: none;
61}
62
63footer {
64    text-align: center;
65    padding: 1rem 0;
66    background: #2c3e50;
67    color: white;
68}
69

响应式设计

添加媒体查询使博客在移动设备上也能良好显示:

1@media (max-width: 600px) {
2    nav ul {
3        flex-direction: column;
4    }
5    
6    nav ul li {
7        margin: 5px 0;
8    }
9    
10    main {
11        padding: 0 10px;
12    }
13}
14

增强功能

可以为博客添加更多交互元素,以下是一个简单的CSS动画效果:

1.read-more:hover {
2    background: #2980b9;
3    transform: scale(1.05);
4    transition: all 0.3s ease;
5}
6
7article:hover {
8    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
9}
10

教学要点

  1. HTML语义化标签的使用(header, nav, article, footer)
  2. CSS盒模型的基本应用
  3. Flex布局实现导航栏
  4. 响应式设计的实现方法
  5. 简单的交互效果
  6. 阴影和圆角的美化处理

这个示例包含了个人博客的基本元素,可以根据教学需求进一步扩展功能,如添加评论区域、分类标签或侧边栏等。


前端基础:从0到1制作简单网页(三)》 是转载文章,点击查看原文


相关推荐


从海量文档到精准数据:文档抽取技术驱动金融财税决策新范式
智能图像文字识别OCR2025/10/24

在金融与财税这个由海量文档驱动的领域中,效率与准确性是生命线。从繁复的财务报表、五花八门的发票,到冗长的合同与合规文件,传统的人工处理方式不仅成本高昂、效率低下,还极易出错。随着人工智能技术的成熟,文档抽取技术正成为解决这些痛点的关键利器,驱动着整个行业向智能化、自动化加速转型。 文档抽取技术简介及其工作原理 文档抽取技术是自然语言处理(NLP)和计算机视觉(CV)的一个交叉分支,其核心目标是从非结构化或半结构化的文档(如PDF、图片、扫描件)中,自动识别、定位并提取出特定的关键信息,并将其


金庸群侠传2攻略
funny-flash2025/10/22

金庸群侠传2攻略 金庸群侠传2加强版-免插件在线玩 本文为转载,原文地址:https://www.bilibili.com/opus/654149447904657428 一、前期衡阳城(游戏起始) 江湖称号:江湖小混混  (修炼《吐纳心法》至第5重时悟《吐纳术》)  1.田伯光欺负小尼姑任务。两次选帮助者,可提升一定属性。 2.客栈二楼,选1.上前搭讪(是否与他结拜影响到华山任务)  →选1 我虽非正人君子,但还知道廉耻!→得九转熊蛇丸  →选2 田兄在上,受小弟一拜!  →选1 阻止田伯光杀


每周读书与学习->JMeter主要元件详细介绍(一)配置元件
张永清-老清2025/10/21

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 在前面的学习中,我们已经讲到在Jmeter中配置元件主要用于完成性能测试中一些常见配置信息的配置,在前面的章节学习中,大家或许已经对配置元件的使用和作用有了一个初步的了解,在本章节学习中,我们将对一些常见的配置元件进行详细的介绍。 1、配置元件 1.1.CSV数据文件设置 如下图所示,CSV 数据文


AWS云基础设施可观测性完整指南
ivwdcwso2025/10/20

引言 在现代云原生架构中,可观测性已成为确保系统稳定性、性能和可靠性的关键要素。本文将深入探讨如何在AWS云环境中构建完整的可观测性体系,涵盖监控、日志、追踪和告警的最佳实践。 可观测性三大支柱 1. 指标监控 (Metrics) 指标是系统性能的数值化表示,提供系统健康状况的量化视图。 核心指标类型: 基础设施指标: CPU、内存、磁盘、网络 应用指标: 响应时间、吞吐量、错误率 业务指标: 用户活跃度、交易量、转化率 2. 日志记录 (Logs) 日志提供系


为何一个系统上线要经过N轮测试?带你看懂企业级发布体系
G探险者2025/10/19

大家好,我是G探险者! 在 IT 行业中,一个系统从开发完成到最终上线生产,并不是一蹴而就的过程。 你可能听说过这样的说法:“代码要经过 N 轮测试才能上线。” 从开发环境(DEV)到系统集成测试(SIT),再到用户验收测试(UAT),最后部署到生产环境(PROD),每一步都在为最终的稳定上线保驾护航。 这种多环境、多阶段的发布流程,表面上看似繁琐,但它背后承载的是风险控制、质量保障与团队协作的体系化思想。 如果缺乏这些环节,哪怕一个小小的配置错误、接口不兼容、性能瓶颈,都可能在生产环境引发严重


注入“侨动力” 锻造“湘非链”
hg01182025/10/17

2025年非洲侨团侨领侨商湖南行首场活动在长沙举办。 红网时刻新闻记者 聂伊岑 秦楼 卢欣 陈啸鼎 长沙报道 汇聚侨智侨力,深化湘非合作。 9月27日至30日,2025年非洲侨团侨领侨商湖南行活动在长沙、邵阳两地举办。 长沙市雨花区8个优质项目牵手非洲;15个湘非合作项目落地湖南湘江新区;邵阳海外订单纷至沓来;10位“海外招商大使”成为湖南与非洲之间最活跃的“经贸使者”。 本次湖南行成功将双方的深厚友谊与共同愿景转化为了实实在在的合作成果。 回顾4天的活动,不难发现,湖南与非洲的“朋


Redis(64)Redis的Lua脚本有哪些常见场景?
Victor3562025/10/16

Redis 的 Lua 脚本可以极大提升操作的原子性和效率,特别适用于需要多个 Redis 命令组合执行的场景。以下是一些常见的使用场景,并结合代码进行详细说明。 1. 分布式锁 Redis 的 Lua 脚本常用于实现分布式锁,以确保多个客户端在并发访问时的互斥性。 示例:分布式锁的获取与释放 -- 获取锁 local lock_key = KEYS[1] local lock_value = ARGV[1] local ttl = tonumber(ARGV[2]) if redis.cal


Python 的内置函数 bytearray
IMPYLH2025/10/14

Python 内建函数列表 > Python 的内置函数 bytearray class bytearray(x=b''): ''' 创建 bytearray :param x: 要转换的变量 :return: x 转换为 bytearray 后的值 ''' Python 的内置函数 bytearray 是一个可变序列,用于存储字节数据。它类似于 bytes 类型,但主要区别在于 bytearray 是可变的,而 bytes 是不可变的。以下是关于


【HarmonyOS AI赋能】朗读控件详解
GeorgeGcs2025/10/13

【HarmonyOS AI赋能】朗读控件详解 一、前言 鸿蒙系统提供了系统级别的朗读控件,来实现对文本进行朗读的业务需求。不需要复杂的SDK接入和集成,就可实现商业级别的朗读效果。 朗读控件分为听筒组件和朗读控制器,以及朗读面板三部分组成。 朗读面板又分为吸边小面板和全屏朗读面板。 需要注意的是,仅支持中国境内(不包含中国香港、中国澳门、中国台湾)提供服务。并且实时朗读的正文信息长度10000字符以内。 二、如何使用朗读控件? 以下代码为上图所示的DEMO源码,可直接新建工程后,贴到index


不止能聊,还能“动手”:谷歌AI代理掀起数字浪潮
墨风如雪2025/10/12

想象一下,你不再需要亲自盯着屏幕,点击鼠标,输入文字,一遍遍重复那些枯燥的在线操作。有一天,你只需对AI说一声:“帮我预订下周五的餐厅,找到离家最近的那个,并且确保能带宠物。”然后,它就能像一个训练有素的助手,熟练地在浏览器中穿梭,完成一系列复杂的任务——搜索、筛选、填写信息、预约…… 这并非遥远的科幻场景。就在最近,谷歌扔下了一颗重磅炸弹:Gemini 2.5 Computer Use模型正式登场。这不仅仅是一个新模型,更是谷歌向“计算机使用智能体”(CUA)这个未来战场吹响的号角,预示着AI

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0