用flex 实现圣杯布局和双飞翼布局一样的效果 ??? 不是很强但是很骚

谁说flex不能实现圣杯布局和双飞翼布局 进来看骚操作

哈喽哈喽,大家好!!! 我是你们的金樽清酒。最近啊,我在复习css的内容,为面试做准备。记得高中的时候,在上物理课上大家都学到过左手定则吧。老师在上课讲的时候我就在想一定得左手吧,右手不行嘛,左手磁感线穿手心,右手就磁感线穿手背呗。于是我就把我的想法告诉了我的老师,虽然老师说我傻,但是拉近了与老师的距离,后面老师说一看见你我就想起来你的右手定则。希望大家看了之后不要忘记这个用flex实现圣杯布局的男人。只求博人一笑。

假如您也和我一样,在准备春招。欢迎加我微信shunwuyu,这里有几十位一心去大厂的友友可以相互鼓励,分享信息,模拟面试,共读源码,齐刷算法,手撕面经。来吧,友友们!"

圣杯布局和双飞翼布局

我们都知道圣杯布局和双飞翼布局是实战常用的布局方式,非常的牛逼。它们牛逼的点在什么地方呢?那就是将主体部分的html结构放在前面,这种方式可以将重要的内容展示出来,不会先让用户先看广告。

让我们看一下圣杯布局的小demo

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .wrap {
      height: 200px;
      padding: 0 200px 0 200px;
    }

    .left {
      width: 200px;
      height: 100%;
      background-color: aqua;

      float: left;
      position: relative;
      right: 200px;
      margin-left: -100%;
    }

    .content {
      width: 100%;
      height: 100%;
      background-color: cadetblue;
      float: left;

    }

    .right {
      width: 200px;
      height: 100%;
      background-color: bisque;
      float: left;
      margin-left: -200px;
      position: relative;
      right: -200px;
    }
  </style>
</head>

<body>
  <div class="wrap">
    <div class="content">content</div>

    <div class="left">left</div>
    <div class="right">right</div>


  </div>
</body>

</html>

双飞翼布局的小demo

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .wrap {
      height: 200px;
    }

    .conatiner {
      height: 100%;
      background-color: cadetblue;
      padding: 0 200px 0 200px;
      float: left;
      width: 100%;
      box-sizing: border-box;
    }

    .left {
      width: 200px;
      height: 100%;
      background-color: aqua;
      float: left;
      margin-left: -100%;
    }

    .right {
      width: 200px;
      height: 100%;
      background-color: bisque;
      float: left;
      margin-left: -200px;
    }
  </style>
</head>

<body>
  <div class="wrap">

    <div class="conatiner">
      <div class="content">content</div>
    </div>

    <div class="left">left</div>
    <div class="right">right</div>

  </div>
</body>

</html>

这两种布局牛逼的地方都是在html结构上将中间主体部分放在前面先加载。那我们能不能用flex来实现呢?

用flex实现圣杯布局和双飞翼布局

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .wrap {
            height: 200px;
            display: flex;
        }

        .left {
            width: 200px;
            height: 100%;
            background-color: aqua;
            order: 3;
        }

        .content {
            width: 100%;
            height: 100%;
            background-color: cadetblue;
            flex: 1;
            order: 2;
        }

        .right {
            width: 200px;
            height: 100%;
            background-color: bisque;
            order: 1;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <div class="content">content</div>
        <div class="left">left</div>
        <div class="right">right</div>
    </div>
    弹性布局的方法
</body>

</html>

我们都知道,flex可以轻松实现三栏布局,但是主体内容得放在第二个位置。那我就放在第一个位置,然后用flex里面得order给盒子排序也能达到这个效果,就这样轻松用flex完成了圣杯布局和双飞翼布局一样的办法。可能比较搞笑,但是我还是得给它起个名字叫排序布局吧。

总结

三栏布局是很常见的一种布局方式,将左右两边固定宽度,然后中间的主体内容可以自适应宽度。而圣杯布局和双飞翼布局的html结构将主体放在前面,先加载主体内容,在实际应用的时候就不会让用户看广告了。而用弹性布局可以简单的实现三栏布局,但是主体内容没有放在前面,但是可以放在前面,用order属性调整盒子出现的顺序就行了,但博一乐,轻点喷哦,友友们。

假如您也和我一样,在准备春招。欢迎加我微信shunwuyu,这里有几十位一心去大厂的友友可以相互鼓励,分享信息,模拟面试,共读源码,齐刷算法,手撕面经。来吧,友友们!"

相关推荐
大家的林语冰3 分钟前
✌️ 让 Rust 再次伟大,pnpm 12 抛弃 TypeScript,移植 Rust 原地起飞!
前端·javascript·node.js
XPoet1 小时前
AI 编程工程化:实战——从 0 到 1 搭建 AI 编程工作流
前端·后端·ai编程
-今昭-1 小时前
Logstash 管理
java·服务器·前端
名字还没想好☜2 小时前
React 用自定义 useDebounce Hook 治好搜索框频繁请求:防抖、竞态取消与卸载清理
前端·javascript·react.js·react·hooks
杉氧2 小时前
Flutter 跨平台多端适配与 Android/iOS 一键自动化打包发布
android·前端·flutter
障碍的枫子2 小时前
xss和CSRF的攻击和防御
前端·xss·csrf
用户921080262862 小时前
3. 给 Bubble 新增一个 Agent Variant
前端
抓不住时间的沙2 小时前
butterfly主题美化,打造属于自己的个性博客
java·开发语言·前端·javascript·node.js·github
kyriewen2 小时前
前端切图仔被 AI 新闻淹死的第 N 天,我用 TRAE Work 定时任务救了自己
前端·人工智能·trae
京东云开发者2 小时前
【全栈实践】第一个 AI Agent 项目:从零搭建 AI 音频创作助手(高级篇)
前端·agent·音视频开发