Form

以下是我为实现该结果而编写的代码.我试图应用Solution Found here,但要么是我的问题不同,要么是我没有抓住要点.

<div class="container">
  <div class="grid">
    <div class="left_flex">
      <div class="img"><img src="https://dummyimage.com/250x350/ddd/000000.png" /></div>
      <div class="a_link"><a href="#" target="_blank">a link</a></div>
    </div>
    <div class="right_flex">
      <div class="short_text">Short text</div>
      <div class="long_text">
        Lorem ipsum (...)
      </div>
    </div>
  </div>
</div>
.container {
  width: 600px;
}
.grid {
  display: flex;
  flex-flow: row nowrap;
  align-content: stretch;
  overflow: auto;
}
.left_flex,
.right_flex {
  flex-flow: column nowrap;
  display: flex;
  align-content: stretch;
}
.right_flex {
  overflow: auto;
}
.long_text {
  min-height: min-content;
}
.img img {
  max-width: 250px;
}

我省略了用于设置该段样式和拉长该段的代码.完整的代码可以在pen中找到.

我的目标是有一个供用户填写的表格.imgdiv是一个图片位置,大小和纵横比可以变化,但不会超过250px,窗体的右侧将根据其大小进行调整.整个容器有600px.

我想让long_textdiv扩展以填充空间,这样left_flexright_flex将具有相同的高度.如果long_text的内容太多,则会出现滚动条,内容会滚动.

我想要达到这个图像中呈现的效果:

Form2

推荐答案

我会考虑一种网格配置:

.container {
  width: 600px;
}
.grid {
  display: grid; /* a grid container */
  grid-template-columns: 1fr 1fr; /* 2 columns */
  border: 1px solid green;
  padding: 2px;
}
.left_flex,
.right_flex {
  display: grid; /* grid also */
  border: 1px solid blue;
  padding: 2px;
  margin: 2px;
}
.right_flex {
  contain: size; /* make sure the left column dictate the height  */
}
.long_text {
  overflow: auto; /* sccroll on the long text */
}
.img,
.a_link,
.short_text,
.long_text {
  border: 1px solid red;
  padding: 2px;
  margin: 2px;
}
.img img {
  max-width: 100%;
  display: block
}
<div class="container">
  <div class="grid">
    <div class="left_flex">
      <div class="img"><img src="https://dummyimage.com/250x350/ddd/000000.png" /></div>
      <div class="a_link"><a href="#" target="_blank">a link</a></div>
    </div>
    <div class="right_flex">
      <div class="short_text">Short text</div>
      <div class="long_text">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse lobortis mi arcu, eget commodo turpis luctus ut. Ut tincidunt arcu et quam maximus feugiat. Donec mauris urna, dignissim sit amet faucibus ac, interdum mattis mauris. Pellentesque ut porta turpis. In hac habitasse platea dictumst. Duis eu turpis vestibulum, tempus libero et, fringilla quam. Ut vitae pretium mauris. Aliquam quam neque, consectetur nec erat ac, lobortis venenatis lacus.

        Sed tristique risus ac ligula tincidunt pretium. Morbi varius rutrum elit eget pharetra. Ut euismod faucibus sem. Morbi convallis bibendum elit at sollicitudin. Vivamus iaculis, ante at varius tincidunt, nisi lorem iaculis nisl, et pellentesque risus lacus sed nunc. Quisque sit amet feugiat nibh. Quisque eleifend volutpat volutpat.

        Suspendisse nibh massa, aliquet vel lorem accumsan, viverra condimentum eros. Pellentesque eu iaculis ipsum. Etiam fringilla fringilla sollicitudin. Sed finibus, dolor euismod iaculis porta, turpis odio lobortis nibh, ac cursus augue est in nibh. Nam porttitor est auctor erat mollis placerat. Etiam sed pellentesque orci. Integer nec ullamcorper neque, ac consequat nunc.
      </div>
    </div>

  </div>
</div>

Css相关问答推荐

转换间隙值时基于百分比的弹性元素&跳转

如何在容器查询体中重新定义:Root的CSS自定义属性值?

如何向 Highcharts 迷你图添加具有淡入淡出效果的线性渐变?

如何使我的标语(h1元素)不居中对齐?

使用 place-content: center 的全宽 CSS 网格项目

为什么每次加载新页面时我的 React 侧边栏都会抖动?

如何在 Tailwind 中使用 `margin: y x;` 速记?

CSS 媒体查询不为桌面版的圣杯响应式布局包装 Flexbox 容器元素

Icomoon:如何避免重复索引(具有相同内容 ID 的不同图标)?

将 CSS 注入 Shadow 根.然而风格正在受到影响

如何通过单击
  • 激活 HTML 链接?
  • 如何根据其中的内容自动调整

    在 CSS 或 JavaScript 中反转图像的 colored颜色

    CSS:背景图像和填充

    通过javascript删除或禁用浏览器的焦点边框

    以原始大小的 50% 显示图像

    CSS过渡自动高度不起作用

    为什么是垂直对齐:文本顶部;不能在 CSS 中工作

    使用 HTML data-attribute 设置 CSS background-image url

    html元素(div)的全高,包括边框,填充和边距?