html - 具有动态宽度的 CSS 3 div

标签 html css

我会尽量用简短的语言来解释。

我有三个 div,我们称它们为 A、B 和 C。
我希望他们在同一条线上。
我想在 div B 中放置一个图像,但有一些限制,所以我希望 div B 具有最大宽度和最大高度限制。
然后,侧div,A和C应该互相填充剩余空间的一半。
我试过使用 display: table 但图像占用的空间会发生奇怪的事情。

有人知道该怎么办吗?

到目前为止的代码:

.table
{
    display: table;

    width: 729px;
    height: 343px;
}

.left
{
    display: table-cell;
    background-color: red;
}

.center
{
    display: table-cell;
    max-width: 429px;
    max-height: 343px;
    background-color: green;
}

.right
{
    display: table-cell;
    background-color: deepskyblue;
}
<div class="table">
    <div class="left"> a </div>

    <div class="center"> <img src="https://c1.staticflickr.com/9/8452/7936998300_6ab78565ff_m.jpg"> </div>

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

fiddle :https://jsfiddle.net/vasndLt3/

如您所见,“绿色区域”比图片大。

预期:Image

注意高度随内容更新。

最佳答案

使用 flexbox 可以轻松实现.

.table {
  display: flex;
  flex-direction: row;
  width: 729px;
  height: 343px;
}

.left {
  flex: 1;
  background-color: red;
}

.center {
  max-width: 429px;
  max-height: 343px;
  background-color: green;
}


.right {
  flex: 1;
  background-color: deepskyblue;
}
<div class="table">
  <div class="left"> a </div>

  <div class="center"> <img src="https://c1.staticflickr.com/9/8452/7936998300_6ab78565ff_m.jpg"> </div>

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

关于html - 具有动态宽度的 CSS 3 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774209/

相关文章:

html - 仅使用 CSS 将列表转换为 2 列

javascript - 段落内的 PHP Echo 不适用于所有记录

html - 将 Bootstrap 输入元素移到页面下方

html - 使用 CSS 中的类设置 <th> 的样式

javascript - JavaScript 中的自定义消息框

javascript - 从另一个模态打开一个模态

javascript - 如何使用 jQuery 执行脚本直至其加载

html - 删除使用 d3 创建的表中的列空间

javascript - 滚动到顶部后如何将导航栏的位置更改为固定?

html - 为什么我的媒体查询变量在 Bootstrap 中不起作用?