css - 如何使两列的起始高度相同?

标签 css css-multicolumn-layout

在我的演示(http://jsfiddle.net/pdExf/864/)中,第四个元素的起始位置高于第一个。我该如何解决这个问题?

片段:

span {
  margin-left: 14px;
  flex: 1 1 auto;
  overflow: 'hidden';
  word-wrap: break-word;
  /* white-space: -moz-pre-wrap !important; */  /* Mozilla, since 1999 */
  white-space: -webkit-pre-wrap; /*Chrome & Safari */
  white-space: -pre-wrap; /* Opera 4-6 */
  white-space: -o-pre-wrap; /* Opera 7 */
  white-space: pre-wrap; /* css-3 */
  word-wrap: break-word; /* Internet Explorer 5.5+ */
  word-break: break-all;
  white-space: normal;
  background-color: yellow;
}

label {
  box-sizing: border-box;
  background: white;
  color: black;
  padding: 10px;
  margin: 10px 10px 20px 10px;
  display: flex;
  border: 1px solid black;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

ul {
  display: inline-flex, flex: 1 1 auto;
  flex-wrap: wrap;
  margin: 10px 0px 0px 10px;
  column-count: 2;
  column-gap: 20px;
}

div {
  height: 130px;
  background-color: lightblue;
  overflow: scroll;
}

li {
  display: inline; /* want labels to display left-to-right */
  background-color: green;
}
<div>
  <ul>
    <li>
      <label>
            <input type="checkbox"/>
            <span > 1-thisisaverrrrrrrrrrrrryyyyyy_long_word_with_no_spaces </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 2-thisisaverrrrrrrrrrrrryyyyyy_long_word_with_no_spaces </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 3-thisisaverrrrrrrrrrrrryyyyyy_long_word_with_no_spaces </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 4-very_short_word </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 5-medium_length_word </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 6-still_no_spaces </span>
          </label>
    </li>
    <li>
      <label>
            <input type="checkbox"/>
            <span> 7-thisisaverrrrrrrrrrrrryyyyyy_long_word_with_no_spaces   </span>
          </label>
    </li>
  </ul>
</div>

最佳答案

span {
  margin-left: 14px;
  flex: 1 1 auto;
  overflow: 'hidden',
  word-wrap: break-word;
   /* white-space: -moz-pre-wrap !important; */  /* Mozilla, since 1999 */
  white-space: -webkit-pre-wrap; /*Chrome & Safari */ 
  white-space: -pre-wrap;      /* Opera 4-6 */
  white-space: -o-pre-wrap;    /* Opera 7 */
  white-space: pre-wrap;       /* css-3 */
  word-wrap: break-word;       /* Internet Explorer 5.5+ */
  word-break: break-all;
  white-space: normal;
  background-color: yellow;
}

label {
  box-sizing: border-box;
  background: white;
  color: black;
  padding: 10px;
  /*margin: 10px 10px 20px 10px;*/
  display: flex;
  border: 1px solid black;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

ul {
  display: inline-flex,
  flex: 1 1 auto;
  flex-wrap: wrap;
  margin: 10px 0px 0px 10px;
  column-count: 2;
  column-gap: 20px;
}

div {
  height: 130px;
  background-color: lightblue;
  overflow: scroll;
}

li {
  display: inline; // want labels to display left-to-right
  background-color: green;
  margin: 20px 10px 10px; // add margin here
}

关于css - 如何使两列的起始高度相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282735/

相关文章:

css - 使用 CSS 列并确保直接子项的内容不换行

css - 如何把这一系列的规则做成mixin呢?

html - 为什么我的多列布局在 Firefox 中将所有内容都放在一列中?

css - page-break-inside:避免和 block 级元素在 Chrome 中创建空列

html - 显示 :none; 后 Span 元素仍然可见

html - 包含 div 和部分的 CSS3 多列

html - 从同一高度开始的多列布局

html - 基于标签指令使用css隐藏文本字段

html - 如何使通过 "class"响应包含的背景图像

javascript - 使用 jquery 从上到下淡化和翻译 "position:absolute"元素