CSS浮动水平溢出

时间:2017-12-11 01:07:41

标签: html css recursion overflow

我有以下jsfiddle:https://jsfiddle.net/CLight/1emh82cv/

这是一个递归结构,它由两个共享顶行的双胞胎和第二个/底行的一个单元组成。这三个单元将递归插入底部单元格。 我试图找出如何让细胞在溢出时水平展开,而不会破坏结构。非常感谢。

这是html:

 <div class="cell-main">
  <div class="cell-left">
    testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte
  </div>
  <div class="cell-right">
    test
  </div>
  <div class="cell-bottom">
    <div class="cell-left">
      test
    </div>
    <div class="cell-right">
      test
    </div>
    <div class="cell-bottom">

      <div class="cell-left">
        test
      </div>
      <div class="cell-right">
        test
      </div>

    </div>
  </div>
</div>

这是CSS:

*{
    box-sizing: border-box; 
}
div{
  border: 1px solid black;
}

.cell-left {
    height: 100%;
    padding: 5px;
    width: 50%;
    float: left;
    text-align:left
}

.cell-right {
    height: 100%;
    padding: 5px;
    width: 50%;

    float: left;
    text-align:right
}

.cell-bottom {
    height: 100%;
    padding: 5px;
    width: 94%;
    margin-left: 3%;
    float: left;
}

.cell-main {
    height: 100%;
    padding: 5px;
    width: 100%;
    float:left;
}

编辑:更新了jsfiddle和title。

1 个答案:

答案 0 :(得分:1)

我认为您正在搜索overflow-wrap属性。

  

overflow-wrap CSS属性指定浏览器是否应在单词中插入换行符以防止文本溢出其内容框。 (Mozilla MDN)

此属性可以具有以下值,如果您需要递归,则全局值可能对您有意义:

/* Keyword values */
overflow-wrap: normal;
overflow-wrap: break-word;

/* Global values */
overflow-wrap: inherit;
overflow-wrap: initial;
overflow-wrap: unset;

如果您想保持包裹的高度,请使用主overflow: auto上的div

请参阅我的代码段!

*{
    box-sizing: border-box; 
}
div{
  border: 1px solid black;
  overflow-wrap: break-word;
}

.cell-left {
    height: 100%;
    padding: 5px;
    width: 50%;
    float: left;
    text-align:left
}

.cell-right {
    height: 100%;
    padding: 5px;
    width: 50%;

    float: left;
    text-align:right
}

.cell-bottom {
    height: 100%;
    padding: 5px;
    width: 94%;
    margin-left: 3%;
    float: left;
}

.cell-main {
    height: 100%;
    padding: 5px;
    width: 100%;
    float:left;
}
<div class="cell-main">
  <div class="cell-left">
    testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestte
  </div>
  <div class="cell-right">
    test
  </div>
  <div class="cell-bottom">
    <div class="cell-left">
      test
    </div>
    <div class="cell-right">
      test
    </div>
    <div class="cell-bottom">

      <div class="cell-left">
        test
      </div>
      <div class="cell-right">
        test
      </div>

    </div>
  </div>
</div>