CSS3页面布局-三栏-中栏流动布局

三栏-中栏流动布局

用负外边距实现

实现三栏布局且中栏内容区不固定的核心问题就是处理右栏的定位,

并在中栏内容区大小改变时控制右栏与布局的关系。

控制两个外包装容器的外边距,一个包围三栏,一个包围左栏和中栏。

html 复制代码
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>5.2 三栏-固定宽度布局</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        body {
            font: 1em helvetica, arial, sans-serif;
        }

        div#main_wrapper {
            min-width: 600px;
            max-width: 1100px;
            margin: 0 auto;
            background: #eee;
        }

        header {
            padding: 5px 10px;
            background: #3f7ccf;
        }

        div#threecolwrap {
            float: left;
            width: 100%;
        }

        div#twocolwrap {
            float: left;
            width: 100%;
            margin-right: -210px;
        }

        nav {
            float: left;
            width: 150px;
            background: #f00;
            padding: 20px 0;
        }

        nav>* {
            margin: 0 10px;
        }

        li {
            list-style-type: none;
        }

        article {
            width: auto;
            margin-left: 150px;
            margin-right: 210px;
            background: #eee;
            padding: 20px 0;
        }

        article>* {
            margin: 0 20px;
        }

        aside {
            float: left;
            width: 210px;
            background: #ffed53;
            padding: 20px 0;
        }

        aside>* {
            margin: 0 10px;
        }

        footer {
            color: aliceblue;
            clear: both;
            width: 100%;
            text-align: center;
            background: #000;
        }
    </style>
</head>

<body>
    <div id="main_wrapper">
        <header>
            头部
        </header>
        <div id="threecolwrap"><!-- 三栏外包装 -->
            <div id="twocolwrap"><!-- 两栏外包装,左中栏 -->
                <nav>
                    <!-- 无序列表 -->
                    <ul>
                        <li>Link1</li>
                        <li>Link2</li>
                        <li>Link3</li>
                    </ul>
                </nav>
                <article>
                    <!-- 文本元素 -->
                    <h1>四川合江气温达42.2℃ 连续两天热到全国第一</h1>
                    <p>
                        【四川合江气温达42.2℃ 连续两天热到全国第一】财联社8月22日电,
                        据中央气象台官网信息,截至8月22日17时,在逐小时气温实况排行榜中,
                        川渝地区气温在当天11时至17时连续7个小时霸榜全国高温榜"前十"。
                        其中,四川合江在17时以42.2℃热到了全国第一。
                        而在8月21日下午,四川合江的气温也突破40℃,登顶全国高温榜第一。
                    </p>
                    <hr />
                    <h1>外交部回应黑神话悟空全球大热</h1>
                    <p>
                        21日,外交部发言人毛宁就"中国的国产游戏《黑神话:悟空》上线后,受到国际玩家青睐"作出回应:反映了中国文化的吸引力。
                    </p>
                </article>
            </div>
            <aside>
                <h1>这是一个侧边栏</h1>
                <p>
                    今年是南开大学建校105周年。8月21日,南开大学2001级校友、字节跳动创始人张一鸣与南开大学2001级校友、字节跳动CEO梁汝波共同捐赠人民币2亿元,主要用于支持南开数学研究和人才培养。
                </p>
            </aside>
        </div>
        <footer>
            这是页脚
        </footer>
    </div>
</body>

</html>
相关推荐
千鼎数字孪生-可视化9 分钟前
Web技术栈重塑HMI开发:HTML5+WebGL的轻量化实践路径
前端·html5·webgl
凌辰揽月9 分钟前
7月10号总结 (1)
前端·css·css3
天天扭码33 分钟前
很全面的前端面试——CSS篇(上)
前端·css·面试
EndingCoder35 分钟前
搜索算法在前端的实践
前端·算法·性能优化·状态模式·搜索算法
sunbyte40 分钟前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleVerticalSlider(双垂直滑块)
前端·javascript·css·vue.js·vue
Favor_Yang1 小时前
SQL Server通过存储过程实现HTML页面生成
前端·信息可视化·sqlserver·存储过程
中微子2 小时前
JavaScript事件循环机制:面试官最爱问的10个问题详解
前端
Eighteen Z2 小时前
CSS揭秘:10.平行四边形
前端·css·css3
拾光拾趣录2 小时前
虚拟DOM
前端·vue.js·dom
爱学习的茄子2 小时前
JavaScript事件循环深度解析:理解异步执行的本质
前端·javascript·面试