css - Flex框不包含其子元素

时间:2016-07-20 09:49:09

标签: html css flexbox

我在列表项中有一个容器,它有一个flex显示。当此容器内的内容也是display flex时,容器会调整大小,而不是内容溢出。 list元素看起来像这样。

如果标签太长,列表项会相应调整大小,而不是让标签溢出。

#div {
  width: 300px;
  border: 1px solid red;
}

#userimage {
  width: 20px;
  height: 20px;
  border: 1px solid red;
}

#usertag {
  display: flex;
}

#inner {}

#outer {
  display: flex;
}

ul {
  list-style-type: none;
}

p {
  margin: 0;
  text-overflow: ellipsis;
  overflow: hidden;
}
<div id="div">
  <ul>
    <li>
      <div id="outer">
        <div id="inner">
          <input type="checkbox" id="checkbox" />
        </div>
        <div id="usertag">
          <div id="userimage">
          </div>
          <p>
            <label>1</label>
          </p>
        </div>
      </div>
    </li>
    <li>
      <div id="outer">
        <div id="inner">
          <input type="checkbox" id="checkbox" />
        </div>
        <div id="usertag">
          <div id="userimage">

          </div>
          <p>
            <label>12312312312451232e524t230t923t8rq0w9t8q0w9er</label>
          </p>
        </div>
      </div>
    </li>
  </ul>
</div>

第二个列表项已根据此处标签的大小调整大小。 我希望文本显示省略号。当我改变外部div的显示时会发生这种情况。但这种调整被搞砸了。

这是柔性显示的工作原理吗?或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

你需要给你孩子的外部宽度。
给复选框“inner”div赋予宽度= 10% 你的“usertag”div的宽度= 90%。

#div {
  width: 300px;
  border: 1px solid red;
}

#userimage {
  width: 20px;
  height: 20px;
  border: 1px solid red;
}

#usertag {
  display: flex;
  width: 100%;
}

#inner {
width: 10%;
}

#outer {
  display: flex;
  width: 90%;
}

ul {
  list-style-type: none;
}

p {
  margin: 0;
  text-overflow: ellipsis;
  overflow: hidden;
}
<div id="div">
  <ul>
    <li>
      <div id="outer">
        <div id="inner">
          <input type="checkbox" id="checkbox" />
        </div>
        <div id="usertag">
          <div id="userimage">
          </div>
          <p>
            <label>1</label>
          </p>
        </div>
      </div>
    </li>
    <li>
      <div id="outer">
        <div id="inner">
          <input type="checkbox" id="checkbox" />
        </div>
        <div id="usertag">
          <div id="userimage">

          </div>
          <p>
            <label>12312312312451232e524t230t923t8rq0w9t8q0w9er</label>
          </p>
        </div>
      </div>
    </li>
  </ul>
</div>