三列布局方式

2023-11-13

第一种

{/*
利用 overflow: hidden;的特性;
三栏的顺序分别为左-右-中。
左右两栏分别设置宽度以及左浮动和右浮动,脱离普通流,这时如果让中间栏高度大于2个边栏会发现两边栏实际上是叠在 main 上面的,因为 main 是块状元素,独占一行,浮动元素向相应的方法浮动,直到遇到容器的边框。
中间栏设置 overflow:hidden 创建BFC,这样就可以利用BFC不和浮动元素重叠的特性,让 main 的宽度自适应。
*/}

<div className="ThreeColumn1">
    <div className="left">左</div>
    <div className="right">右</div>
    <div className="main">自适应</div>
</div>
.ThreeColumn1 {
  margin: 50px;
}
.left {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 200px;
    height: 200px;
    float: left;
    background: lightblue;
  }
  .right {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 200px;
    height: 200px;
    float: right;
    background: rgb(230, 199, 173);
  }
  .main {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    height: 200px;
    overflow: hidden;
    background: rgb(173, 230, 201);
  }

第二种

{/*
内空Padding圣杯模式:
三栏的顺序为中-左-右,并包裹在ThreeColumn2容器内。
三栏同时设置float:left,左右两栏定宽、中间宽度100%。
利用负边距分别把left和right,这时视觉上left和right是叠在main上面的。
设置ThreeColumn2的左右padding分别为左右栏的宽度。
*/}

<div className="ThreeColumn2">
    <div className="main2">自适应</div>
    <div className="left2">左</div>
    <div className="right2">右</div>
</div>
.ThreeColumn2 {
  height: 200px;
  margin: 50px;
  padding: 0 120px 0 300px;
}
.main2 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 100%;
    float: left;
    background-color: rgb(251, 141, 141);
    height: 200px;
  }
  .left2 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    float: left;
    background-color: rgb(182, 182, 245);
    height: 200px;
    width: 300px;
    margin-left: -100%;
    position: relative;
    left: -300px;
  }
  .right2 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    float: left;
    background-color: rgb(241, 241, 162);
    height: 200px;
    width: 120px;
    margin-left: -120px;
    position: relative;
    right: -120px;
  }

第三种

{/*
外框子 Margin 双飞翼模式:
双飞翼布局跟圣杯很像,区别在于圣杯利用padding控制main的位置,双飞翼用margin控制main的位置。
需要额外在main里面加一层div,用于margin控制,但是可以免去左右两栏的相对定位。
*/}

<div className="ThreeColumn3">
    <div className="main3">
        <div className="main_warp">自适应</div>
    </div>
    <div className="left3">左</div>
    <div className="right3">右</div>
</div>
.ThreeColumn3 {
    height: 200px;
    margin-top: 10px;
}
.main3 {
    width: 100%;
    float: left;
}
/*在双飞翼布局里,中间栏的边框、背景色要在`main-warp`里设置*/
.main_warp {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    height: 200px;
    background: rgb(240, 104, 240);
    margin: 0 230px 0 200px; /*设置main的位置*/
}
.left3 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 200px;
    height: 200px;
    background: rgb(164, 245, 184);
    float: left;
    margin-left: -100%;
}
.right3 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 230px;
    height: 200px;
    float: left;
    margin-left: -230px;
    background: rgb(243, 165, 178);
}

第四种

{/*
flex布局:
三栏的顺序为左-中-右,并包裹在warp容器内。
warp设置display: flex,如果三栏高度自适应又希望顶部对齐,需要添加align-items: flex-start。
左右栏各自设置定宽。
*/}

<div className="ThreeColumn4">
    <div className="left4">左</div>
    <div className="main4">自适应</div>
    <div className="right4">右</div>
</div>
.ThreeColumn4 {
    height: 200px;
    display: flex;
    align-items: flex-start;
    margin-top: 10px;
}
.main4 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    flex: 1;
    height: 200px;
    background: rgb(243, 135, 243);
}
.left4 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 120px;
    height: 200px;
    background: pink;
  }
.right4 {
    text-align: center;
    color: white;
    font-weight: 500;
    font-size: 24px;
    line-height: 200px;
    width: 300px;
    height: 200px;
    background: greenyellow;
}

原文链接:https://blog.csdn.net/WangLuke_/article/details/118354314

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

三列布局方式 的相关文章

  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • HTML5 支持命名空间吗?

    我们是否可以使用新标签来扩展 HTML5 例如
  • 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

    我想使用 HTML5 视频播放器并流式传输视频 S3 CloudFront 可以实现这一点吗 我了解 Amazon 使用 RTMP 流媒体协议和 HTML5video标签不支持 RTMP 有没有办法用 HTML5 播放器播放视频 Wayne
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • 输入类型=图像 - onclick(),将触发其事件,但在 jquery 中的函数上表现不佳

    我认为这可能是两篇文章 2个问题 所以如果你对此发表评论 我会将它们分开 主要问题实际上是 我怎样才能为按钮设置图像背景 简单且正确 我想现在我可以确定这些事实了 因为我在将图像设置为按钮背景时遇到了 小 问题 我想 好吧 如果很难设置的话
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 设置浏览器窗口最小化的最小尺寸限制?

    有没有办法在所有浏览器中手动设置浏览器窗口的最小尺寸 你可以试试 body min width 600px 一旦视口小于 600 像素 您将得到一个水平滚动条 这仅适用于支持 min width CSS 属性的现代浏览器 我认为不可能限制用
  • 对一组复选框使用 HTML5“必需”属性?

    使用支持 HTML5 的较新浏览器 例如 FireFox 4 时 并且表单字段具有属性required required 并且表单字段为空 空白 然后点击提交按钮 浏览器检测到 必填 字段为空 并且不提交表单 相反 浏览器会显示一条提示 要
  • 如何隐藏 URL 中的锚标记

    如何隐藏地址栏中以下链接 href 的哈希值 a href index php dev name 所以它会将我重定向到index php dev name 但我希望地址栏只显示index php 您可以使用 Javascript oncli
  • CSS设置默认滚动位置

    有没有办法将滚动位置设置为默认值 我知道如何在 javascript 中做到这一点 例如使用 jquery div divWithScroll attr scrollTop 200 但我只想用CSS来做 我不知道是否可行 不 CSS 中没有
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • iOS7 中“-webkit-overflow-scrolling: touch” 最初的屏幕外元素被破坏

    既然转基因种子已经发布了 我们现在可以谈谈了 看起来 iOS7 中的 webkit overflow scrolling touch 已损坏 最初不在屏幕上的元素的触摸事件不会触发 或者在某些情况下只是不可靠 这是一个例子
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG

随机推荐

  • ubuntu解决matplotlib绘图中文显示问题

    首先来看一下没有解决问题前的样子 设置横纵坐标以及title的时候全都是显示的方框 这让我们很苦恼 那有没有什么办法解决呢 方法一 比较推荐方法一 一次解决 永久受益 后续不用再设置 1 首先下载Simhei ttf 这里不给下载链接了请自
  • K8s - Pod配置容器

    1 编写配置文件以及pod创建过程 root k8s master yaml cat ceph rbd deployment yaml apiVersion apps v1 kind Deployment metadata name ngi
  • 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

    别具一格 原创唯美浪漫情人节表白专辑 复制就可用 html5 css3 svg 表白爱心代码 1 一 前言 回眸之间 丰盈了岁月 涟漪了思绪 轻轻落笔 不写伤痕 不写仇怨 只写岁月经历领悟后的感恩与体会 说来有点尴尬 我一个奶奶级别的 却从
  • 《大数据导论》理解大数据

    本节书摘来自华章出版社 Spark大数据分析 核心概念 技术及实践 一书中的第1章 第1节 作者托马斯 埃尔 Thomas Erl 瓦吉德 哈塔克 Wajid Khattak 保罗 布勒 Paul Buhler 更多章节内容可以访问云栖社区
  • Unity_Shader_ Properties属性的赋值

    Shader Unlit vf2 in out 输入与输出 Properties MainColor 我是主颜色 Color 1 0 0 1 SubShader Pass CGPROGRAM pragma vertex vert pragm
  • Redis学习 - Tp6配置并使用redis图文详解 小皮面板(三)

    这篇文章主要介绍了Thinkphp6 配置并使用redis的方法 结合实例形式详细分析了Redis的安装 配置以及thinkphp6操作Redis的基本技巧 需要的朋友可以参考下 一 安装redis ThinkPHP内置支持的缓存类型包括f
  • 让ExtJs 2.02的例子也支持换肤

    今天在论坛看到有朋友问我 网站上的换肤功能是如何做的 其实换肤的方法在下载回来的例子中是已经存在的了 但是不知道为什么该功能在ext 2 02下并不可用 要加上换肤功能主要有两个步聚 1 在html页面 每一个例子 的body中间加上以下代
  • 动态软件测试是什么意思,什么是动态测试?

    什么是动态测试 1 概述 动态测试是建立在程序的实行进程傍边 根据对被被测对象内部情况的理解与否 分为黑盒测试盒白盒测试 黑盒测试又称为功能测试 数据驱动测试或基于规格说明的测试 这种测试不消理解被测试对象的内部情况 而依靠需要规格说明中的
  • L2-2 病毒溯源 (25 分)(Dfs详细解析)

    病毒容易发生变异 某种病毒可以通过突变产生若干变异的毒株 而这些变异的病毒又可能被诱发突变产生第二代变异 如此继续不断变化 现给定一些病毒之间的变异关系 要求你找出其中最长的一条变异链 在此假设给出的变异都是由突变引起的 不考虑复杂的基因重
  • curl: (51)Unable to communicate securely with peer

    最近公司做的项目需要联通另一个系统 对方给了个token 测试一下该token是否有效 因为是在Linux上 没有postman 只能通过curl命令发送网络请求 但是实际测试时 由于服务器上有些库的版本比较低 出现各种问题 写篇文章记录一
  • 论文翻译 —— Deep Reinforcement Learning from Human Preferences

    标题 Deep Reinforcement Learning from Human Preferences 文章链接 Deep Reinforcement Learning from Human Preferences blogpost L
  • linux无法引导 rescue 救援模式

    OS版本为 RHEL 7 查看当前引导设备为 dev sda 破坏MBR 执行 dd if dev zero of dev sda bs 446 count 1 重启系统 不能引导 使用光盘进入救援模式 进入troubleshooting
  • IDEA 中设置全局 hook 解决提交代码时 missing changeId 的问题

    背景 IDEA 下载好 Git 项目 安装好 Gerrit 插件后 提交代码时无法将代码 Push 到 Git 仓库 报 missing changeId 的错误 或者说报 rejected by remote 的错误 这是因为 IDEA
  • 判断密码是否合法 (PHP代码函数)

    判断密码是否合法 PHP代码函数 代码来源 Monxin config functions php function is passwd v pattern w 1 100 if preg match pattern v return tr
  • Unity 使用按键控制角色运动

    创建角色 创建一个脚本PlayerController 创建控制器 使用boolean值 脚本 using System Collections using System Collections Generic using UnityEng
  • MySQL实践——MySQL中支持的字符集和排序规则

    一 MySQL字符集概念 1 1 MySQL中的utf8和utf8mb4 我们常说 utf8 字符集表示一个字符需要使用1 4个字节 但是我们常用的一些字符使用1 3个字节就可以表示了 而在 MySQL 中字符集表示一个字符所用最大字节长度
  • 车载以太网新宠SomeIP及其在AutoSAR的应用

    作者结合自身的工作经验介绍SomeIP协议以及在AutoSAR中的实现 汽车不断智能化和网联化的趋势 使得原本的通讯方式 CAN 不堪重负 因此新的需求带来了新的技术 SomeIP应运而生 1 SomeIP的由来 随着汽车智能化和网络化的发
  • Problem E: C语言习题5.21--算法:汉诺塔

    Problem E C语言习题5 21 算法 汉诺塔 Time Limit 1 Sec Memory Limit 64 MB Description 汉诺塔 又称河内塔 问题是印度的一个古老的传说 开天辟地的神勃拉玛在一个庙里留下了三根金刚
  • 基于JSR181标准开发ActiveMQ与Petals ESB交互

    前一节讲到Petals ESB使用JMS连接ActiveMQ到总线 其中因为开发版本的不同和一些细节的配置不到 很难能够正确的使用JMS 如果遇到复杂的JMS需求时 这种方式操作太多 太发太多 而且不容易控制 Petals ESB 4 2支
  • 三列布局方式

    第一种 利用 overflow hidden 的特性 三栏的顺序分别为左 右 中 左右两栏分别设置宽度以及左浮动和右浮动 脱离普通流 这时如果让中间栏高度大于2个边栏会发现两边栏实际上是叠在 main 上面的 因为 main 是块状元素 独