HTML网页布局是网页开发的基础,可以通过练习构建各种布局来增强你的HTML和CSS技能。可以从创建一个基本的HTML结构开始,然后使用CSS进行样式设计。将CSS直接放入HTML文件中使用<style>标签,方便一次性看到效果。一般使用通常是放在单独的文件中。

1、单列布局

单列布局通常用于简单的博客或文档页面。页面内容在一个单一的垂直流中展示。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>单列布局示例</title>
    <style>
        /* 样式内容 */
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            line-height: 1.6;
            color: #333;
            background-color: #f4f4f4;
        }
        header {
            background: #333;
            color: #fff;
            padding: 20px 0;
            text-align: center;
        }
        header nav ul {
            list-style: none;
            padding: 0;
        }
        header nav ul li {
            display: inline;
            margin-right: 10px;
        }
        header nav ul li a {
            color: #fff;
            text-decoration: none;
        }
        main {
            padding: 20px;
            background: #fff;
            margin: 20px auto;
            max-width: 800px;
            box-shadow: 0 0 10px #ccc;
        }
        footer {
            text-align: center;
            padding: 10px 0;
            background: #333;
            color: #fff;
        }
        footer p {
            margin: 0;
        }
    </style>
</head>
<body>
    <header>
        <h1>我的网站</h1>
        <nav>
            <ul>
                <li><a href="#home">首页</a></li>
                <li><a href="#about">关于</a></li>
                <li><a href="#contact">联系方式</a></li>
            </ul>
        </nav>
    </header>
    <main>
        <section id="home">
            <h2>欢迎来到我的网站</h2>
            <p>这里是内容简介。</p>
        </section>
        <section id="about">
            <h2>关于我们</h2>
            <p>这里是关于我们的信息。</p>
        </section>
        <section id="contact">
            <h2>联系方式</h2>
            <p>这里是联系方式。</p>
        </section>
    </main>
    <footer>
        <p>版权所有 © 2024</p>
    </footer>
</body>
</html>

2、双列布局

双列布局布局通常有一个主要内容区域和一个侧边栏,适合新闻网站、博客等。一个网页,左侧是较窄的侧边栏用于导航链接,右侧是内容显示区域。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>双列布局示例</title>
    <style>
        * {
            box-sizing: border-box;
        }
        body {
            margin: 0;
            font-family: Arial, sans-serif;
        }
        .container {
            display: flex;
            min-height: 100vh; /* 使用视窗高度,确保内容充满整个屏幕高度 */
        }
        .sidebar {
            width: 20%; /* 侧边栏宽度为总宽度的20% */
            background-color: #f8f8f8;
            padding: 20px;
        }
        .sidebar ul {
            list-style: none;
            padding: 0;
        }
        .sidebar ul li a {
            text-decoration: none;
            color: black;
            display: block;
            padding: 10px;
            transition: background-color 0.3s;
        }
        .sidebar ul li a:hover {
            background-color: #ddd;
        }
        .content {
            flex-grow: 1; /* 内容区域填充剩余空间 */
            padding: 20px;
            background-color: #fff;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar">
            <ul>
                <li><a href="#home">首页</a></li>
                <li><a href="#services">服务</a></li>
                <li><a href="#about">关于我们</a></li>
                <li><a href="#contact">联系方式</a></li>
            </ul>
        </div>
        <div class="content">
            <h1>欢迎来到我的网页</h1>
            <p>这里是内容区域,你可以放置任何你想展示的信息。</p>
        </div>
    </div>
</body>
</html>

3、三列布局

三列布局通常包括两个侧边栏和一个中间的主内容区域,这种布局适用于提供大量导航选项和广告的网站。创建一个三列布局,中间宽大用于主内容,两侧较窄用于导航和广告。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>三列布局示例</title>
    <style>
        body {
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            margin: 0;
            font-family: Arial, sans-serif;
        }
        header, footer {
            background-color: #333;
            color: white;
            padding: 1em;
            text-align: center;
        }
        #main-container {
            display: flex;
            flex: 1;
            padding: 20px;
        }
        nav, article, aside {
            padding: 20px;
        }
        nav {
            flex: 1;
            background-color: #f4f4f4;
        }
        article {
            flex: 3;
            background-color: #fff;
            border: 1px solid #ccc;
        }
        aside {
            flex: 1;
            background-color: #f4f4f4;
        }
        footer {
            background-color: #333;
            color: white;
            text-align: center;
            padding: 1em;
        }
    </style>
</head>
<body>
    <header>页眉 - 网站标题或Logo</header>
    <div id="main-container">
        <nav>左侧导航</nav>
        <article>中间主内容区</article>
        <aside>右侧广告或其他信息</aside>
    </div>
    <footer>页脚 - 版权信息或链接</footer>
</body>
</html>

4、网格布局

网格布局通过CSS Grid实现,非常灵活,适用于复杂的页面设计。使用CSS Grid技术创建一个具有多个卡片(每个卡片包含图像和文本)的响应式网格。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网格布局示例</title>
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            font-family: Arial, sans-serif;
        }

        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 20px;
            padding: 20px;
        }

        .card {
            background: #f9f9f9;
            border: 1px solid #ccc;
            border-radius: 8px;
        }

        .card img {
            width: 100%;
            height: auto;
            border-top-left-radius: 8px;
            border-top-right-radius: 8px;
        }

        .text {
            padding: 10px;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="card">
            <img src="https://via.example.com/400x200.png?text=Image+1" alt="Placeholder Image 1">
            <div class="text">这是卡片1的文本。</div>
        </div>
        <div class="card">
            <img src="https://via.example.com/400x200.png?text=Image+2" alt="Placeholder Image 2">
<div class="text">这是卡片2的文本。</div> </div> <div class="card"> <img src="https://via.example.com/400x200.png?text=Image+3" alt="Placeholder Image 3">
<div class="text">这是卡片3的文本。</div> </div> <div class="card"> <img src="https://via.example.com/400x200.png?text=Image+4" alt="Placeholder Image 4"> <div class="text">这是卡片4的文本。</div> </div> </div> </body> </html>

5、全屏布局

全屏布局通常用于着陆页面或全屏滚动网站,每个屏幕完全填满一个视觉部分。设计一个全屏滚动网站,每向下滚动一屏展示新的内容。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>全屏滚动布局</title>
    <style>
        html, body {
            margin: 0;
            padding: 0;
            height: 100%;
        }
        .section {
            height: 100vh; /* 视窗的100%高度 */
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 32px;
            font-family: Arial, sans-serif;
            color: #fff;
        }
        #section1 { background-color: #ff5555; }
        #section2 { background-color: #55ff55; }
        #section3 { background-color: #5555ff; }
        #section4 { background-color: #ffff55; }
    </style>
</head>
<body>
    <div class="section" id="section1">第一屏</div>
    <div class="section" id="section2">第二屏</div>
    <div class="section" id="section3">第三屏</div>
    <div class="section" id="section4">第四屏</div>
</body>
</html>