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

相关推荐
前端架构师-老李15 小时前
16 Electron 应用自动更新方案:electron-updater 完整指南
前端·javascript·electron
一只学java的小汉堡15 小时前
HTML 01入门:从概念到开发环境搭建与页面头部配置
前端·css·html
拖拉斯旋风15 小时前
📚 JavaScript 变量声明三剑客:`var`、`let`、`const` 学习笔记
javascript
用户214965158987516 小时前
从零搭建uniapp环境-记录
前端
可触的未来,发芽的智生17 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
努力写代码的熊大17 小时前
stack、queue与priority_queue的用法解析与模拟实现
java·前端·javascript
im_AMBER17 小时前
React 06
前端·javascript·笔记·学习·react.js·前端框架
wyzqhhhh18 小时前
前端常见的设计模式
前端·设计模式
IT_陈寒18 小时前
React 19重磅前瞻:10个性能优化技巧让你少写30%的useEffect代码
前端·人工智能·后端
m0_7482336418 小时前
C++开发中的常用设计模式:深入解析与应用场景
javascript·c++·设计模式