响应式 2 列 CSS 布局,包括固定宽度的侧边栏?

2023-12-11

在任何地方都找不到这个问题的解决方案(我猜这一定是一个非常常见的问题)。

我正在创建一个带有侧边栏的响应式设计,其中侧边栏需要具有 200px 的固定宽度,并且高度未知。我怎样才能使主要内容区域占据所有剩余宽度,而不会出现任何异常行为。

我最接近的是以下内容,但它的问题是侧边栏可能与页脚重叠。任何人都可以建议修复我的代码,或者与我分享一些有效的代码吗?

            * {
            padding: 0;
            margin: 0;
            outline: 0;
            -moz-box-sizing: content-box;
            -webkit-box-sizing: content-box;
            box-sizing: content-box;
        }
        body {
            background: orange;
        }
        #container {
            max-width: 1000px;
            min-width: 768px;
            margin: 0 auto;
            background: yellow;
            position: relative;
            height: 100%;
        }
        #header {
            background: purple;
            color: white;
            text-align: center;
            padding: 10px;
        }
        #main {
            position: relative;
        }
        aside {
            background: blue;
            width: 200px;
            color: white;

            position: absolute;
            top: 0;

            /* change this to "right: 0;" if you want the aside on the right. Also, change the "margin-left" code, below. */
            left: 0;

            padding-top: 20px;
            padding-bottom: 20px;

            padding-left: 10px; /* If you change this value, remember to change the margin-left value of #primary */
            padding-right: 10px; /* ditto */
        }
        #primary {
            background: red;

            /* change this to margin-right if you want the aside on the right. Also change the "left" code, above. */
            margin-left: 220px; /* aside_width + aside_left_padding + aside_right_padding = 200px + 10px + 10px */
            padding: 1em; /* whatever */
        }
        #footer {
            background: green;
            color: white;
            padding: 10px;
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
        }

        <div id="container">
        <div id="header">
            <h1>LAYOUT TEST #2</h1>
        </div>
        <div id="main">
            <div id="primary">
                <h2>THIS IS THE MAIN CONTENT ** THIS IS THE MAIN CONTENT ** THIS IS THE MAIN CONTENT</h2>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <h2>sub heading</h2>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <h2>sub heading</h2>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
            </div>
            <aside>
                <h3>navigation (left)</h3>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
                <p>lorem ipsum</p>
            </aside>
        </div>
        <div id="footer">
            <h1>LAYOUT TEST #2</h1>
        </div>
    </div>

1 = 使用弹性盒:http://jsfiddle.net/rudiedirkx/CjWbv/2/

#main {
    display: flex;
}
#primary {
    background: #bbb;
    flex: 1;
}
aside {
    background: #ddd;
    flex: 0 0 200px;
}

2 = 与calc(): http://jsfiddle.net/rudiedirkx/CjWbv/

#main:after { clearfix here }
#primary {
    float: left;
    background: #bbb;
    width: calc(100% - 200px);
}
aside {
    background: #ddd;
    float: right;
    width: 200px;
}

两者都需要对旧版浏览器(和供应商前缀)进行回退。从其他答案中选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

响应式 2 列 CSS 布局,包括固定宽度的侧边栏? 的相关文章

  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • 对一组复选框使用 HTML5“必需”属性?

    使用支持 HTML5 的较新浏览器 例如 FireFox 4 时 并且表单字段具有属性required required 并且表单字段为空 空白 然后点击提交按钮 浏览器检测到 必填 字段为空 并且不提交表单 相反 浏览器会显示一条提示 要
  • 使用deployJava.runApplet来定位特定元素

    经过多年成功维护一个使用旧有的小程序 嵌入Java小程序的方法 我们无法捂住耳朵唱 啦啦啦 不再了 是时候使用 deployJava runApplet 当我使用点击处理程序触发此方法时 此处通过 jQuery 在按钮上使用事件侦听器 但这
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 如何通过单击图像预览上的“x”从文件输入中删除图像?

    我目前有一个文件输入 一旦用户上传图像 就会显示图像预览 在图像预览上 有一个 x 可以从列表中删除图像预览 单击此 x 后 有什么方法可以从输入中的文件集中删除图像吗
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • Textmate“注释”命令对于 css 代码无法正常工作

    当我在 TextMate 中切换 CSS 源代码的注释时遇到一些问题 Using the shortcut CMD I activate the Comment Line Selection command from the source
  • HTML5 历史 API

    我如何使用 HTML5 历史 api 我确实经历过https developer mozilla org en DOM Manipulated the browser history https developer mozilla org
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • 如何为背景图像添加边距?

    我想向背景图像添加边距 以便将其与屏幕中间保持距离 但将其添加到该类中会为整个主体添加边距 body poppage background url Imagenes tip3 png 50 200px no repeat E2E4E9 我怎
  • 如何并排放置两个

    我有两个 div 我想要并排放置的元素 如下所示 navigation content 我想要导航 div 根据需要尽可能大 但不能更大 收缩以适应行为 内容 div 然后应该填充剩余的空间 如何在不指定百分比 例如 20 80 的情况下使
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas

随机推荐

  • 如何使用 PHP 将文件从一个目录复制到另一个目录?

    假设我有一个文件test php in foo目录以及bar 我该如何更换bar test php with foo test php using PHP 我使用的是 Windows XP 跨平台解决方案会很棒 但首选 Windows 你可
  • SQLSTATE[HY000] [2054] 服务器向客户端发送了未知的字符集。请向开发人员报告[重复]

    这个问题在这里已经有答案了 我正在尝试在 laravel 中创建一个登录系统 我已经更新了环境 文件包含一个名为 kokodb 的数据库 但是 当我运行此代码时 php 工匠迁移 在 cmd 中 我遇到了以下错误 在 Connection
  • 无法使用 Admin SDK Firebase 获取用户列表

    如果我添加到 Firebase 云功能 我无法获取用户列表 我尝试了很多方法 并遵循了 firebase 文档的指南 但它只是继续运行 但从未加载 exports listAllUsers functions https onRequest
  • 如何在按钮单击时使用 javascript 或 jquery 执行 ctrl+c 或复制命令

    是否可以使用单击事件执行复制命令 I have some text selected and I want this text to be copied on onClick event so that I am able to past
  • 如何在 Spyder 中的所有其他窗口之上显示 matplotlib 图形窗口

    我正在使用 Spyder IDE 我发现 matplotlib 图形窗口总是显示在其他窗口后面 例如 在启动 Spyder 后立即输入plt plot 0 1 0 1 在控制台中 我在 Spyder 主窗口后面看到了一个绘图 如何使新的图形
  • 为什么服务器运行时PHP ftp_connect失败?

    一段时间以来 我一直在尝试通过 FTP 连接到我的服务器 但似乎无法正常工作 connection id ftp connect example com 22 运行此代码时 它会挂起一段时间 直到 PHP 最终告诉我脚本执行时间太长并退出
  • 如何使用 javascript 或 jquery 检查命名窗口是否存在

    这是场景 我在网站的页脚中有一个静态音频播放器 如果您转到另一个页面 音频播放器将重新加载 这不是问题 因为它是音频流 而不是静态文件 该页脚中还有一个链接 单击该链接将导致整个静态页脚消失 并弹出一个包含音频流的窗口 当然 问题是 如果有
  • 如何将 PIL `Image` 转换为 Django `File`?

    我正在尝试转换UploadedFile到 PILImage对象对其进行缩略图 然后转换 PILImage我的缩略图函数返回到的对象File目的 我怎样才能做到这一点 无需写回文件系统 然后通过 open 调用将文件带回内存的方法是使用 St
  • 标签不会显示在 d3 力图上

    我是 d3 的初学者 我发现特别有用且有趣的图表之一是 d3 力图 我一直在尝试它 但由于某种原因 我在这个特定的数据集上遇到了很多麻烦 具体来说 我一直在尝试让标签显示在我的 d3 力图上 但它就是行不通 这是我的代码
  • 需要帮助理解循环

    好吧 我想做的事情看起来相当简单 但它并没有按照我想要的方式工作 我知道我只是没有得到什么 本质上我正在尝试读取控制台输入 并将其分配给一个变量 然后我想检查该变量以查看它是否是有效数字 如果不是 我想告诉用户它是无效的 并重新开始循环 直
  • 变体双亚型超过最大值

    当我查看 变体数据类型 文档时 它说具有 double 子类型的变体可以支持最大 1 79769313486232E308 15 位数字 的正值 并且 当包含货币 小数和双精度值的变体变量超出其各自的范围时 会发生错误 但是 当我运行以下代
  • 如何将带有日期和时间 AM/PM 的字符串转换为 24 小时 mysql 时间戳格式

    我正在尝试从具有以下内容的字符串将日期和时间插入 mysql 日期时间字段日 月 年 时 分 秒 上午 下午 format 20 10 2014 05 39 PM 20 10 2014 05 39 AM 我知道 MYSQL 时间戳格式是 y
  • 针对 Access 数据库的 pyodbc 查询出现“可选功能未实现”错误

    对于任何可以提供帮助的人 提前表示感谢 我正在运行 64 位 Windows 10 64 位 Office 和 64 位 python 3 7 2 使用 pyodbc 我尝试执行如下所示的 Select 语句 SELECT FROM Eco
  • Flutter中如何动态生成多个Dropdown?

    我有 Java 背景 对 Flutter 很陌生 我陷入了需要动态创建多个下拉列表的场景 例如 有一项披萨优惠提供 2 个大披萨 2 个小披萨和 1 份饮料 因此 每当顾客选择任何披萨时 他 她必须选择一种口味 如果有 2 个大披萨 我需要
  • Chart.js v2:甜甜圈内甜甜圈之间的空间

    我正在使用 Chart js v2 5 0 我把甜甜圈放在甜甜圈里面 我想要两个甜甜圈之间的距离 A 变大而不影响同一甜甜圈内切片之间的距离 B 请看下图 目前我正在使用该房产边框宽度 然而 这也会影响宽度B 请看下面的代码 options
  • 为什么 akka 需要不可变消息

    或者换句话说 可变消息是否有正确的用途 我面临的用例是我想要处理基本上属于类型的对象 Map
  • SimpleHttpOperator Airflow,数据模板化

    我正在尝试正确渲染data里面一个SimpleHttpOperator在 Airflow 中 并通过我发送的配置dag run result SimpleHttpOperator task id schema detector http c
  • `%in%` 和 `==` 有什么区别?

    df lt structure list x 1 10 time c 0 5 0 5 1 2 3 0 5 0 5 1 2 3 Names c x time row names c NA 10L class data frame df df
  • 关于Struts2中的Action映射 - 没有映射Action

    我正在尝试运行我的 struts 应用程序 但收到错误操作未映射我已经看到名称空间是正确的 但仍然收到错误 struts xml
  • 响应式 2 列 CSS 布局,包括固定宽度的侧边栏?

    在任何地方都找不到这个问题的解决方案 我猜这一定是一个非常常见的问题 我正在创建一个带有侧边栏的响应式设计 其中侧边栏需要具有 200px 的固定宽度 并且高度未知 我怎样才能使主要内容区域占据所有剩余宽度 而不会出现任何异常行为 我最接近