css 如何在文本更改时保持div宽度为50%?[duplicate]

fkaflof6  于 2023-01-14  发布在  其他
关注(0)|答案(3)|浏览(2438)
    • 此问题在此处已有答案**:

(41个答案)
1年前关闭。
我有两个divs,其中width: 50%和文本内容被 Package 在容器中,问题是当文本内容改变时,宽度也改变:

我有一个容器的固定宽度等于200px

.container {
  display: block;
  width: 200px;
}

.text1 {
  background-color: red;
  width: 50%;
  display: inline;
}

.text2 {
  background-color: blue;
  width: 50%;
  display: inline;
}
<div class='container'>
  <div class='text1'>Text1</div>
  <div class='text2'>Text2</div>
</div>

如何在文本更改时保持子div宽度的50%?JSFiddle链接:

jgovgodb

jgovgodb1#

您可以在此处使用CSS Flexbox

.container {
  display: flex;
  width: 200px;
}

.text1 {
  background-color: red;
  width: 50%;
}

.text2 {
  background-color: blue;
  width: 50%;
}
<div class='container'>
  <div class='text1'>Text1</div>
  <div class='text2'>Text2</div>
</div>
r7s23pms

r7s23pms2#

CSS解决方案
inline元素仅使用其内容指定的宽度。
使用float: left;display: flex实现来实现display: block;

    • display: block实施**
.container {
  display: block;
  width: 200px;
}

.text {
  width: 50%;
  display: block;
  float: left;
}

.text1 {
  background-color: red;
}

.text2 {
  background-color: blue;
}
<div class='container'>
  <div class='text text1'>1</div>
  <div class='text text2'>Text2</div>
</div>
    • display: flex实施**

如果是flex布局,则不需要指定子元素的宽度,只需在子元素中添加flex-grow: 1flex: 1即可。
一个二个一个一个

0s7z1bwu

0s7z1bwu3#

虽然flexbox应该可以工作,正如其他回复所给出的那样,但您也可以通过使用columns来实现。
只需将**.container上的列数指定为2列,并将.text1.text2上的列宽**设置为50%。
是这样的:

.container {
  display: block;
  width: 200px;
  column-count: 2;
}

.text1 {
  background-color: red;
  column-width: 50%;
}

.text2 {
  background-color: blue;
  column-width: 50%;
}

<div class='container'>
     <div class='text1'>1</div>
     <div class='text2'>Text2</div>
</div>

这是JSFiddle

相关问题