根据左div设置右div的宽度[重复]

Posted

技术标签:

【中文标题】根据左div设置右div的宽度[重复]【英文标题】:Set width of the right div based on left div [duplicate] 【发布时间】:2019-08-16 23:50:59 【问题描述】:

我有一个标记,其中我有一个容器,可以说宽度为 100%,并且我在这个容器中有两个子元素。第一个子元素的宽度基于此 div 内的文本,然后下一个 div 应具有(容器宽度的宽度)-(第一个子元素)。

请看下图说明:

在这种情况下,白色框的宽度为 100%,宽度取决于其文本内容。绿色 div 应具有(白框宽度)-(红框宽度)。

如何在 CSS 中设置绿色宽度?这是我迄今为止尝试过的:

.ContentItemMenu 
  width: 100%;
  height: 50px;
  /* background-color: bisque; */
  border-bottom: 1px solid #c3c3c3;


.ContentTitle 
  width: auto;
  padding: 0 20px;
  height: 100%;
  float: left;
  font-size: 25px;
  font-family: opensansBold;
  text-align: left;
  line-height: 50px;
  background-color: #5144F0;


.SubContentTabs 
  width: 100%;
  height: 100%;
  float: left;
  background-color: aquamarine;
<div class="ContentItemMenu">
  <div class="ContentTitle">Some text</div>
  <div class="SubContentTabs"></div>
</div>

我是一个完整的 CSS 新手,所以如果需要更多说明,请告诉我。

【问题讨论】:

【参考方案1】:

使用 flexbox - 将 display: flex 添加到 ContentItemMenu 并将 flex: 1 设置为 SubContentTabs - 请参见下面的演示:

.ContentItemMenu 
  display: flex; /* ADDED */
  width: 100%;
  height: 50px;
  /* background-color: bisque; */
  border-bottom: 1px solid #c3c3c3;


.ContentTitle 
  width: auto;
  padding: 0 20px;
  height: 100%;
  float: left;
  font-size: 25px;
  font-family: opensansBold;
  text-align: left;
  line-height: 50px;
  background-color: #5144F0;


.SubContentTabs 
  width: 100%;
  height: 100%;
  float: left;
  background-color: aquamarine;
  flex: 1; /* ADDED */
<div class="ContentItemMenu">
  <div class="ContentTitle">Some text</div>
  <div class="SubContentTabs"></div>
</div>
<br/>
<div class="ContentItemMenu">
  <div class="ContentTitle">Some text here, this is a long text</div>
  <div class="SubContentTabs"></div>
</div>

【讨论】:

太棒了,所有浏览器都支持这种技术吗? 如果您必须支持非常旧的浏览器(或电子邮件客户端),您可以随时使用表格。 不需要很旧 :) 谢谢! 在所有 现代浏览器(IE11+、Chrome 和 Firefox)中,我想当你了解更多关于 CSS 的知识时,你会肯定偶然发现 flexbox: )

以上是关于根据左div设置右div的宽度[重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据宽度计算div的高度并保持比例[重复]

使用JQuery或CSS根据div宽度自动限制文本[重复]

从宽度设置div高度(反之亦然)[重复]

左右两栏固定宽度,中间自适应布局的5种方案

让左侧的 div 占据所有空间[重复]

当宽度根据百分比动态变化时,制作一个 <div> 正方形 [重复]