<div>高度百分比不起作用

时间:2015-06-19 19:05:18

标签: html css

我有一堆嵌套的div(我知道,可能不适合这种用途,但它只是一个临时的解决方案)。我试图让孩子按百分比分成不同的高度,但它不起作用; div只是扩展到适合文本所需的最小高度。

<div class="funnel" style="width:100%; height:600px">
    <div class="container-header">
      <p class="header"> Funnel Times </p>
    </div>
  <div class="outer" style="width: 100%; height:600px">
    <div class="innercontainer" style="width: 50%; height:600px; float: left">
      <center>
        <div class="signups-indie inner" style="width: 80%; height: 10%; background-color: #BFCCD5">
          <p class="funnelTimesText"> Sign-ups: 8 hours / 2.1% </p>
        </div>
        <div class="installs-indie inner" style="width: 80%; height: 10%; background-color: #9EB2BE">
          <p class="funnelTimesText"> Installs: 2 days / 12.9% </p>
        </div>
        <div class="action1-indie inner" style="width: 80%; height: 10%; background-color: #4A5A66">
          <p class="funnelTimesText"> Action 1: 2.5 days / 16.1% </p>
        </div>
        <div class="action2-indie inner" style="width: 80%; height: 10%; background-color: #333F47">
          <p class="funnelTimesText"> Action 2: 5.2 days / 17.4% </p>
        </div>
        <div class="conversions-indie inner" style="width: 80%; height: 10%; background-color: #AF212F">
          <p class="funnelTimesText"> Conversions: 8 days / 51.5% </p>
        </div>

      </center>
    </div>  
    <div class="innercontainer" style="width: 50%; height:600px; float: left">
      <center>  
        <div class="signups-team inner" style="width: 80%; height: 1.8%; background-color: #BFCCD5">
          <p class="funnelTimesText"> Sign-ups: 10 hours / 1.8% </p>
        </div>
        <div class="installs-team inner" style="width: 80%; height: 10.9%; background-color: #9EB2BE">
          <p class="funnelTimesText"> Installs: 2.5 days / 10.9% </p>
        </div>
        <div class="action1-team inner" style="width: 80%; height: 8.7%; background-color: #4A5A66">
          <p class="funnelTimesText"> Action 1: 2 days / 8.7% </p>
        </div>
        <div class="action2-team inner" style="width: 80%; height: 13.1%; background-color: #333F47">
          <p class="funnelTimesText"> Action 2: 5.2 days / 17.4% </p>
        </div>
        <div class="conversions-team inner" style="width: 80%; height: 65%; background-color: #AF212F">
          <p class="funnelTimesText"> Conversions: 8 days / 51.5% </p>
        </div>
      </center>
    </div>
  </div>
</div>

这里也是一个小提琴,在那里你可以看到它不起作用: http://jsfiddle.net/3w08gdmf/

2 个答案:

答案 0 :(得分:1)

要使用%height,每个嵌套元素必须明确指定其高度。它的直接父母需要它的高度。如果父级没有指定高度(绝对或相对),则不起作用。

代码中的中心元素没有指定高度。

http://jsfiddle.net/3w08gdmf/2/

.innercontainer center{
    height: 100%;
}

答案 1 :(得分:0)

出于好奇,为什么使用严格的HTML而不是CSS来设置标记的样式?如果你这样做,每当你调整任何东西时,你必须手动改变HTML中的所有内容。其次,百分比是父<div>的百分比,基本上这意味着,如果您<div id="A"><div id="B">嵌套在<div id="A">中,那么<div id="B">将是<div id="A"> <div id="A"> <div id="B"></div> <!-- See how B is nested WITHIN A --> </div> 的百分比。

简而言之:

<强> HTML

#A {
height: 100px; // Set Height
}

#B {

height: 80%; 

// This is 80% of the parent DIV "A" which is = to 80px because 80% of 100 is 80

}

<强> CSS

{{1}}

希望这可以解决问题。

编辑HTML以进行澄清和一些标点符号编辑。