当前位置: 首页 > 知识库问答 >
问题:

javascript - 弹性布局怎么解决?

闾丘英悟
2023-05-12

两个div弹性布局,左边宽度自适应且距离右边div10px,右边的div也是弹性布局且右边的div超出换行,左边的div跟右边div的第一行对齐8AB30D42-EC59-488b-A6C4-312629DD5EE2.png

共有2个答案

陈琪
2023-05-12

要求:

  1. 左右两侧是弹性布局;
  2. 左侧宽度自适应,左侧 div 与右侧 div 间距为 10px;
  3. 右侧 div 内容,会自动换行。

实现:

  1. 设置 .container 属性 display: flex;
  2. 左侧 .div1

    1. 设置 flex-shrink: 0;,避免宽度被压缩,此时 .div1 宽度取决于其内容(内容不会换行)。
    2. 设置 align-self: flex-start;,使 .div1.div2 首行对齐。
  3. 右侧 .div2

    1. 设置 flex-grow: 1;,自动拉伸,填满.container剩余空间。
    2. 设置 display: flex;flex-wrap: wrap;,内部 span 元素在超出后会自动换行。

参考代码:

CSS:

    .container {
        width: 100%;
        display: flex;
    }

    .div1 {
        margin-right: 10px;
        flex-shrink: 0;
        align-self: flex-start;
    }

    .div2 {
        flex-grow: 1;
        display: flex;
        flex-wrap: wrap;
    }

html:

<div class="container">
    <div class="div1">
        <!--content 1-->
        content 1-122323
    </div>
    <div class="div2">
        <!--content 2-->
        <span>content 2-1</span>
        <span>content 2-2</span>
        <span>content 2-3</span>
        <span>content 2-4</span>
        <span>content 2-5</span>
        <span>content 2-6</span>
        <span>content 2-7</span>
    </div>
</div>
帅煌
2023-05-12

看看是不是你要的效果
不确定是否理解对

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

<style>
  .container {
    display: flex;
    align-items: flex-start;
  }
  
  .left {
    flex: 1;
    margin-right: 10px;
  }
  
  .right {
    flex: 1;
    overflow: hidden; /* 防止超出换行 */
  }
</style>
 类似资料:
  • 主要内容:1. 基本概念,2. 容器属性,3. 项目属性Flex 是 Flexible Box 的缩写,意为“弹性布局”或者“弹性盒子”,是 CSS3 中的一种新的布局模式,可以简便、完整、响应式地实现各种页面布局,当页面需要适应不同的屏幕大小以及设备类型时非常适用。目前,几乎所有的浏览器都支持 Flex 布局。 1. 基本概念 采用 Flex 布局的元素,称为 Flex 容器(flex container),简称“容器”。它的所有子元素自动成为容器成

  • import { Flexbox,FlexboxItem } from 'feui'; components: { [Flexbox.name]: Flexbox, [FlexboxItem.name]: FlexboxItem } .flex-demo{ text-align: center; color: #fff; background-color: #

  • 使用指南 组件介绍 本组件大量用到 flex 知识,同时实现栅格系统(12 列)。 引入方式 import { Flexbox,FlexboxItem } from 'feart'; components: { 'fe-flexbox': Flexbox, 'fe-flexbox-item': FlexboxItem } 代码演示 横向排列 <fe-flexbox> <f

  • 虽然流式布局可以充分利用可用空间,但是,在高分辨率的屏幕上,行仍然会过长,让用户不舒服。相反,在低分辨率的屏幕上,或增加文本的字体大小时,行又变得非常短,内容很零碎。对于这个问题,弹性布局可能是一种解决方案。 弹性布局实际上是一种尺寸比较灵活的固定宽度设计,页面上的所有元素都使用 em 单位值来设置元素的宽度,而不是浏览器窗口宽度。当浏览器的字号发生改变时,em 值也会随之改变,因此,设计的宽度最

  • 之前我们介绍过,响应式网站设计主要包括三部分:弹性布局、媒体查询和弹性媒介。我们分别了解下这几个。 弹性布局 所谓的弹性布局,说的是在创建网站的时候,采用流体网格布局方式,动态地调整网站布局宽度以此来适应各种设备屏幕大小。 弹性布局不使用固定的测量单位,比如像素或者英寸。原因显而易见,视窗( viewport )的高度和宽度在不同设备之间是不断变化的,那么弹性网站布局为了适应这种变化,所以就不可能

  • 弹性盒子(Flexible Box)是一种用于按行或按列布局元素的一维布局方法,使用该布局的组件即为弹性容器(flex container),容器内的直系子组件则是弹性项目(flex item),他们可以膨胀以填充额外的空间,收缩以适应更小的空间,它们在 CSS 属性都为初始的情况下都会有下列行为: 项目排列成一行。(容器的 flex-direction 属性的初始值是 row) 项目从主轴的起始