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

相关推荐
GISer_Jing2 分钟前
浏览器 Agent 插件开发规格书 (SPEC)
前端·ai·前端框架·edge浏览器
别叫我->学废了->lol在线等15 分钟前
评估总结模块(暂不做)
前端
清灵xmf21 分钟前
CC Switch:解决 AI 编程工具配置
前端·人工智能·cc switch
IT_陈寒33 分钟前
Redis缓存击穿把我坑惨了,原来这样解决才靠谱
前端·人工智能·后端
mfxcyh1 小时前
Vue3 右键菜单实现方案(基于 vue3-context-menu)
前端
treesforest1 小时前
从IP地址归属地查询到IP地理位置精准查询指南
服务器·前端·网络
棉猴1 小时前
python海龟绘图之画布与窗口
javascript·python·html·setup·turtle·海龟绘图·screensize
LF男男1 小时前
WindmillBullect.cs
前端
小白学大数据1 小时前
Python 爬虫爬取应用商店数据:请求构造与数据解析
前端·爬虫·python·数据分析
pkowner1 小时前
若依分页问题及解决方法
java·前端·算法