php - Float 导致空的 div 消失 - 为什么?

标签 php css

更新:JSFiddle 链接在这里 http://jsfiddle.net/truBB/

我正在使用 PHP 创建一系列用于数据显示的 div:

function supp_data_div($state_id) {
    $data_value_array = get_supp_data(get_page_id(), $state_id); 

    $return_div = '<div id="supp_data'.$state_id.'" class="supp_data">';
    $is_percent = get_supp_data_type(get_page_id()); // returns '%' if true


    for($i=0; $i < sizeof($data_value_array); $i++) {
        $data_pair = $data_value_array[$i];
        $data_name = $data_pair[0];
        $data_value = $data_pair[1];
        if ($is_percent) 
            $bar_chart = '<div class="bar-chart" width="'.$data_value.'"></div>';
        $return_div = $return_div.'<div class="supp-data-item"><div class="supp-data-left">'.$data_name.'</div><div class="supp-data-right">'.$bar_chart.'<div class="data-item">'.$data_value.$is_percent.'</div>'.'</div></div>';
    }
    $return_div = $return_div.'</div>';

    return $return_div;

}

我希望我的 $data_value 像这样直接显示在 $bar_chart 之后:

|||||||||||| $数据值

使用我当前的 CSS .bar-chart 显示在我的 .data-item 类之上。如果我将 float:left 添加到 .bar-chart.bar-chart 就会完全消失。

CSS:

.supp_data {
    position: absolute;
    top:  18px;
    right: 8px;
    width:  250px;
    height: 250px;
    z-index: 9999;
    background-color: white;

    display: none;

    padding:  10px 10px 10px 10px;


    border: 3px solid #888;
    -moz-box-shadow: 0 0 10px #4e4747;
    -webkit-box-shadow: 0 0 10px #4e4747;
    box-shadow: 0 0 10px #4e4747;

    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px; /* future proofing */
    -khtml-border-radius: 10px; /* for old Konqueror browsers */
}

.supp-data-item {
    display: block;
    clear: both;
}

.supp-data-left {
    text-align: right;
    float: left;
    width: 120px;
    padding-bottom: 5px;
    padding-right: 5px;
    border-right: 1px solid #999;
}

.supp-data-right {
    float: left;
    font-weight: bold;
    margin-left: 4px;
    padding-left: 8px;
    padding-bottom: 5px;
    padding-right: 5px;
    margin-top: 0 auto;
    margin-bottom: 0 auto;
    vertical-align: middle;
    display: table-cell;

}

.bar-chart {
    height: 14px;
    background-color: $dark-grey;

}

.data-item {
    float: left;
}  

最佳答案

好的,我将您的 CSS 复制到 Fiddle 中,并从 .supp_data 中删除了 display:none;。然后我将 float:left; 添加到 .bar-chart 并修复了 background-color: $dark-grey 属性,一切似乎都是表现正常。

你可以在这里看到:jsfiddle.net/truBB/3

关于php - Float 导致空的 div 消失 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10989731/

相关文章:

Php 错误 - 不确定它来自哪里或它意味着什么?

php - 如何在PHP中定义一个带参数且不闭包的回调并使用?

php - Netbeans 找不到我所有的 include_once 路径

php - 使用 codeigniter 时如何在字段集中居中输入标签?

javascript - 缩小宽度时如何调整高度?

php - 如何在 Symfony 2 中返回实体的本地化属性

html - 如何使用 Bootstrap 类对齐 Google Recaptcha?

css - 如何使应用程序脚本 Web 应用程序显示为实际可用高度的 100%?

javascript - IE8 中的绝对定位中断

php - Mysql PHP 查询统计字段长度