首页 > 其他分享 >写一个三栏布局,中间固定,两边自适应(平均)

写一个三栏布局,中间固定,两边自适应(平均)

时间:2024-12-12 09:34:22浏览次数:3  
标签:flex 三栏 color 布局 1fr background 两边

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>三栏布局</title>
    <style>
        body {
            margin: 0; /* 去除默认外边距 */
        }
        .container {
            display: flex;
            height: 100vh; /* 示例高度,可根据需要调整 */
        }
        .left, .right {
            flex: 1; /* 自适应宽度,平均分配剩余空间 */
            background-color: lightblue; /* 示例背景颜色 */
        }
        .center {
            width: 300px; /* 固定宽度 */
            background-color: lightcoral; /* 示例背景颜色 */
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">左侧</div>
        <div class="center">中间</div>
        <div class="right">右侧</div>
    </div>
</body>
</html>

解释:

  • display: flex;: 将容器设置为 flex 布局。
  • flex: 1;: 让左侧和右侧的 div 平均分配剩余空间。 flex: 1;flex-grow: 1; flex-shrink: 1; flex-basis: 0; 的简写。
    • flex-grow: 1;:允许项目扩展以填充可用空间。由于左右两栏都设置为 1,它们会平均分配剩余空间。
    • flex-shrink: 1;:允许项目收缩以防止溢出。
    • flex-basis: 0;:初始主尺寸为 0,以便 flex-grow 生效。
  • width: 300px;: 设置中间 div 的固定宽度。
  • height: 100vh;: 设置容器高度为视口高度,只是一个示例,可以根据需要调整。
  • 去除默认外边距: body { margin: 0; } 去除了 body 的默认外边距,避免布局错乱。

其他方案 (使用 Grid 布局):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>三栏布局</title>
    <style>
        body {
            margin: 0;
        }
        .container {
            display: grid;
            grid-template-columns: 1fr 300px 1fr; /* 1fr 表示剩余空间的比例 */
            height: 100vh;
        }
        .left {
            background-color: lightblue;
        }
        .center {
            background-color: lightcoral;
        }
        .right {
            background-color: lightgreen;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">左侧</div>
        <div class="center">中间</div>
        <div class="right">右侧</div>
    </div>
</body>
</html>

Grid 布局的 grid-template-columns: 1fr 300px 1fr; 更简洁地定义了三列的宽度。1fr 表示剩余空间的比例,因此左右两列会平分剩余空间。

选择哪种方案取决于你的具体需求和项目上下文。 Flexbox 通常更灵活,而 Grid 在处理二维布局时更强大。 这两个方案都能实现你想要的三栏布局。

标签:flex,三栏,color,布局,1fr,background,两边
From: https://www.cnblogs.com/ai888/p/18601480

相关文章

  • 写出不定宽度的子级div,在相对于固定宽度的父级元素水平居中的布局
    要实现不定宽子级div相对于固定宽度父级元素水平居中,可以使用几种方法:1.使用Flexbox:这是最现代化和推荐的方法,兼容性也很好。<divclass="parent"><divclass="child">不定宽度内容</div></div>.parent{width:500px;/*固定宽度*/display:flex;......
  • 使用div+css进行布局有什么好处?
    使用div+CSS进行布局在前端开发中有很多好处,总结如下:1.结构与样式分离:这是最重要的好处之一。HTML的div元素负责网页的结构和内容,而CSS负责网页的样式和外观。这种分离使得代码更清晰、易于维护和修改。例如,你可以轻松地改变整个网站的字体或颜色,而无需修改HTML结......
  • Layui open弹出输入法影响布局
    layui.openlayui.open里面有from表单。当点击input输入框弹出输入法,弹窗就会向下移动,导致弹窗下面的按钮溢出屏幕显示。//监听窗口大小变化事件$(window).on('resize',function(){varlayero=$('.layui-layer').eq(index);adjustLayerPosition(layero);});fu......
  • 转载:【AI系统】昇腾数据布局转换
    NHWC的数据排布方式更适合多核CPU运算,NCHW的数据排布方式更适合GPU并行运算。那么接下来让我们了解一下在华为昇腾的NPU中,这种特征图的存储方式。截止到2024年,华为昇腾在私有格式的数据处理和特殊的数据形态越来越少,主要是得益于AI编译器和软件的迭代升级,更加合理......
  • 转载:【AI系统】布局转换原理与算法
    数据布局转换目前已经越来越多地用于编译器的前端优化,将内部数据布局转换为后端设备友好的形式。数据布局转换主要影响程序的空间局部性,所谓空间局部性指的是如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用其附近的一个内存位置,它会影响到程序执行中的缓存及其他性......
  • 转载:【AI系统】昇腾数据布局转换
    NHWC的数据排布方式更适合多核CPU运算,NCHW的数据排布方式更适合GPU并行运算。那么接下来让我们了解一下在华为昇腾的NPU中,这种特征图的存储方式。截止到2024年,华为昇腾在私有格式的数据处理和特殊的数据形态越来越少,主要是得益于AI编译器和软件的迭代升级,更加合理......
  • 转载:【AI系统】布局转换原理与算法
    数据布局转换目前已经越来越多地用于编译器的前端优化,将内部数据布局转换为后端设备友好的形式。数据布局转换主要影响程序的空间局部性,所谓空间局部性指的是如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用其附近的一个内存位置,它会影响到程序执行中的缓存及其他性......
  • 转载:【AI系统】昇腾数据布局转换
    NHWC的数据排布方式更适合多核CPU运算,NCHW的数据排布方式更适合GPU并行运算。那么接下来让我们了解一下在华为昇腾的NPU中,这种特征图的存储方式。截止到2024年,华为昇腾在私有格式的数据处理和特殊的数据形态越来越少,主要是得益于AI编译器和软件的迭代升级,更加合理......
  • 请说说你在写布局时对于浏览器兼容性的感受或总结
    在前端开发中,处理浏览器兼容性问题就像一场永无止境的战斗,令人既爱又恨。编写能够在不同浏览器(Chrome、Firefox、Safari、Edge,更不用说各种移动浏览器)和它们的各种版本中良好运行的布局代码,需要技巧、耐心和大量的测试。以下是我对浏览器兼容性的一些感受和总结:痛点:CSS前缀:......
  • 使用纯css布局中一个“王”字
    可以使用CSS的伪元素::before和::after,结合transform属性来实现一个“王”字。以下是一种可能的实现方式:.king{position:relative;width:80px;height:80px;border:2pxsolidblack;/*王字的边框*/margin:20px;/*外边距,方便观察*/}.king::be......