写一个左中右的满屏布局,左右固定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. 优化中间内容区加载优先级

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

我们在中间内容区加载 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 布局可以简化响应式设计,同时确保布局的灵活性和可维护性。

相关推荐
李游Leo7 分钟前
HarmonyOS 7 ArkTS + ohpm:三方 JS 库副作用隔离与 API 26 升级回归【鸿蒙心迹】
javascript·回归·harmonyos
你挚爱的强哥13 分钟前
【sgKeyboard】自定义组件:虚拟键盘
前端·javascript·计算机外设
锅里游的鱼吖19 分钟前
echarts自定义折线图
前端·javascript·数据库
hunteritself36 分钟前
卷卷卷!GPT-6 Sol、Luna 正式发布,OpenAI 开始卷价格了
大数据·前端·人工智能·深度学习·transformer
何何____1 小时前
Vue 全局事件总线详解
前端·javascript·vue.js
涉密IT资质笔记2 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
u0111026752 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
事圆则缓2 小时前
Flutter 状态管理框架对比(五):GetX 的响应式、依赖注册与生命周期
前端·javascript·flutter
广州智造3 小时前
Radioss复合材料使用的单元属性
前端·设计·cad·建模·cae·radioss
ss2733 小时前
AI全栈实战 | 2.1-03 JavaScript 核心:单线程+事件循环为什么不等同于多线程,原型链 vs Java 继承
java·开发语言·javascript