写一个左中右的满屏布局,左右固定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 布局可以简化响应式设计,同时确保布局的灵活性和可维护性。

相关推荐
知识分享小能手1 小时前
微信小程序入门学习教程,从入门到精通,微信小程序常用API(上)——知识点详解 + 案例实战(4)
前端·javascript·学习·微信小程序·小程序·html5·微信开放平台
清灵xmf1 小时前
CSS field-sizing 让表单「活」起来
前端·css·field-sizing
文火冰糖的硅基工坊2 小时前
[光学原理与应用-480]:《国产检测设备对比表》
前端·人工智能·系统架构·制造·半导体·产业链
excel2 小时前
Qiankun 子应用生命周期及使用场景解析
前端
weixin_446260852 小时前
Django - 让开发变得简单高效的Web框架
前端·数据库·django
蓝莓味的口香糖2 小时前
【JS】什么是单例模式
开发语言·javascript·单例模式
ObjectX前端实验室3 小时前
【react18原理探究实践】异步可中断 & 时间分片
前端·react.js
SoaringHeart3 小时前
Flutter进阶:自定义一个 json 转 model 工具
前端·flutter·dart
努力打怪升级3 小时前
Rocky Linux 8 远程管理配置指南(宿主机 VNC + KVM 虚拟机 VNC)
前端·chrome
brzhang3 小时前
AI Agent 干不好活,不是它笨,告诉你一个残忍的现实,是你给他的工具太难用了
前端·后端·架构