写一个左中右的满屏布局,左右固定220px,中间自适应并且要优先加载

左中右满屏布局实现

在前端开发中,实现一个左中右的满屏布局是一个常见的需求。本文将介绍如何创建一个左右固定宽度为 220px 的布局,中间部分自适应宽度,并且优化中间部分的加载优先级。

1. HTML 结构

我们首先需要设计一个基础的 HTML 结构。布局包含三个主要部分:左侧菜单、中间内容区和右侧菜单。

html 复制代码
<!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 class="sidebar left">左侧菜单</div>
        <div class="content">中间内容区</div>
        <div class="sidebar right">右侧菜单</div>
    </div>
</body>
</html>

2. CSS 样式

接下来,我们将使用 CSS 来实现布局样式。我们需要确保左右两侧的菜单宽度固定,并且中间内容区自适应宽度。

css 复制代码
* {
    box-sizing: border-box; /* 确保 padding 和 border 不影响宽度 */
    margin: 0;
    padding: 0;
}

body, html {
    height: 100%; /* 使得 body 和 html 充满屏幕 */
}

.container {
    display: flex; /* 使用 Flexbox 布局 */
    height: 100vh; /* 设置容器高度为视口高度 */
}

.sidebar {
    width: 220px; /* 左右固定宽度 */
    background-color: #f0f0f0; /* 背景颜色 */
}

.left {
    background-color: #c0c0c0; /* 左侧菜单背景色 */
}

.right {
    background-color: #b0b0b0; /* 右侧菜单背景色 */
}

.content {
    flex: 1; /* 中间内容区自适应宽度 */
    background-color: #ffffff; /* 中间内容区背景色 */
    padding: 20px; /* 内容内边距 */
    overflow: auto; /* 内容溢出时显示滚动条 */
}

3. 优化中间内容区加载优先级

为了确保中间内容区的优先加载,我们可以利用 HTMLdeferasync 属性来优化脚本的加载,确保中间内容区的渲染不会被阻塞。

我们在中间内容区加载 JavaScript 文件时,可以使用如下方式:

html 复制代码
<script src="script.js" defer></script>

defer 属性会确保脚本在文档解析完毕后执行,这样可以避免阻塞中间内容的渲染。

4. 完整代码示例

完整的代码示例如下:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>左中右满屏布局</title>
    <style>
        * {
            box-sizing: border-box; /* 确保 padding 和 border 不影响宽度 */
            margin: 0;
            padding: 0;
        }

        body, html {
            height: 100%; /* 使得 body 和 html 充满屏幕 */
        }

        .container {
            display: flex; /* 使用 Flexbox 布局 */
            height: 100vh; /* 设置容器高度为视口高度 */
        }

        .sidebar {
            width: 220px; /* 左右固定宽度 */
            background-color: #f0f0f0; /* 背景颜色 */
        }

        .left {
            background-color: #c0c0c0; /* 左侧菜单背景色 */
        }

        .right {
            background-color: #b0b0b0; /* 右侧菜单背景色 */
        }

        .content {
            flex: 1; /* 中间内容区自适应宽度 */
            background-color: #ffffff; /* 中间内容区背景色 */
            padding: 20px; /* 内容内边距 */
            overflow: auto; /* 内容溢出时显示滚动条 */
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar left">左侧菜单</div>
        <div class="content">中间内容区</div>
        <div class="sidebar right">右侧菜单</div>
    </div>
    <script src="script.js" defer></script>
</body>
</html>

结论

通过以上步骤,我们成功实现了一个左右固定宽度为 220px 的满屏布局,中间内容区自适应并优先加载。使用 Flexbox 布局可以简化响应式设计,同时确保布局的灵活性和可维护性。

相关推荐
升鲜宝供应链及收银系统源代码服务11 小时前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
i建模12 小时前
将Edge浏览器的标签页从顶部水平排列**移至左侧垂直侧边栏
前端·edge
跟着珅聪学java12 小时前
js编写中文转unicode 教程
前端·javascript·数据库
英俊潇洒美少年12 小时前
Vue3 深入响应式系统
前端·javascript·vue.js
颜酱12 小时前
回溯算法实战练习(3)
javascript·后端·算法
英俊潇洒美少年14 小时前
React 最核心 3 大底层原理:Fiber + Diff + 事件系统
前端·react.js·前端框架
我命由我1234514 小时前
React Router 6 - 概述、基础路由、重定向、NavLink、路由表
前端·javascript·react.js·前端框架·ecmascript·html5·js
LJianK114 小时前
java封装
java·前端·数据库
yaaakaaang14 小时前
(四)前端,如此简单!---Promise
前端·javascript
aini_lovee14 小时前
C# 实现邮件发送源码(支持附件)
开发语言·javascript·c#