Что мешает правильно отформатировать таблицы с помощью CSS, когда таблица создается функциями PHP? - PullRequest
0 голосов
/ 03 октября 2011

У меня есть таблица, которая динамически строится в моем веб-приложении.Количество строк и содержимое в строках определяется рядом функций PHP.

Как только это определено, они вызывают другой набор функций PHP, которые создают отдельные строки таблицы и содержат классы, чтобы определить, как они должны выглядеть.Несмотря на то, что в моем приложении есть рабочие таблицы повсюду, я не могу понять, почему я не могу настроить стандартные и форматирующие таблицы для работы с этой таблицей.Вывод упорядочен в таблицу, но я не могу изменить размер шрифта, минимальную ширину, цвет фона или что-то еще.

Если бы кто-то мог указать на мою проблему, это было бы очень полезно!

Вот функция PHP, которая определяет структуру:

// Determines the core number of buckets and the appropriate general structure for tree
function drawFullTree ($hyp, $b_count, $sb_count, $b, $sb)
{
// loop through *all* buckets
// if any bucket has no-sub buckets, put three (blanks) in it
for($i = 0; $i < $b_count; $i++){
    if(!isset($sb[$i])){
        $sb[$i][0] = '(blank)';
        $sb[$i][1] = '(blank)';
        $sb[$i][2] = '(blank)';
    }
}

echo '<table class="answer">';
    if($b_count > 0){
        if(isset($sb[0])){
            drawBuc_Sub($b[0], $sb[0]);  
        }
        else{
            echo 'sub-bucket blank';
        }
    }
    if($b_count == 0){
        echo 'What! No buckets - lets turn up the effort here!';
    }
    else if($b_count == 1){
        echo "One bucket! Ok, it's a start... keep 'em coming";
    }
    else if($b_count == 2){
        drawTop_Hyp_Buc_Sub($hyp, $b[1], $sb[1]);
    }
    else if($b_count == 3){
        drawHyp_Buc_Sub($hyp, $b[1], $sb[1]);
        drawBuc_Sub($b[2], $sb[2]);  
    }
    else if($b_count == 4){
        drawBuc_Sub($b[1],$sb[1]);
        writeHyp($hyp);
        drawBuc_Sub($b[2],$sb[2]);
        drawBuc_Sub($b[3],$sb[3]);
    }
    else if($b_count == 5){
        drawBuc_Sub($b[1],$sb[1]);
        drawHyp_Buc_Sub($hyp, $b[2],$sb[2]);
        drawBuc_Sub($b[3],$sb[3]);
        drawBuc_Sub($b[4],$sb[4]);
    }
    else if($b_count == 6){
        drawBuc_Sub($b[1],$sb[1]);
        drawBuc_Sub($b[2],$sb[2]);
        writeHyp($hyp);
        drawBuc_Sub($b[3],$sb[3]);
        drawBuc_Sub($b[4],$sb[4]);
        drawBuc_Sub($b[5],$sb[5]);
    }
echo '</table>';
}

Вот примерФункция PHP, где я не могу правильно применить форматирование:

function writeHyp_Buc_Sub ($hyp, $buc, $sub)
{
echo '<tr>';
    echo '<td class="x">' . $hyp . '</td>';
    echo '<td class="x">' . $buc . '</td>';
    echo '<td class="x">' . $sub . '</td>';
echo '</tr>';
}

А вот CSS, который у меня есть:

table{
border-collapse: collapse; 
}


td
{
font-size:.80em;
color: #333333;
padding: 6px 4px;
text-align:left;
/*border-bottom: 1px dotted #cccccc;*/
}

table.answer{
background-color:green;
border:3px black;
}

td.x
{
width:230px;
font-size:1.1em;
border:2px solid black; /*#DCDCDC; */
}

jquery, который вызывает функции php и вставляет их в страницу:

    $('#process_structure').live('click', function () {
    var postData = $('#inputs_structure').serializeArray();
    postData.push({name: 'count', value: count});
    $('#testing').fadeOut('slow');
    $.ajax ({
        type: "POST",
        url: "structure_process.php",
        data: $.param(postData),
        success: function(text){
            $('#testing').fadeIn('500', function(){
                $('#testing').html(text);
            })
        }
    });

    $(this).parent().html('<form action="structure.php"><button class="begin_mod_button">Do another!</button></form>');

    clearInterval(interval);
    return false;
});

1 Ответ

0 голосов
/ 03 октября 2011

Ваш CSS находится в заголовке HTML-документа? в противном случае это может быть проблемой ... если вы используете IE <= 7 (возможно, также и более новые версии), я почти уверен, что это решение. IE отображает css только при загрузке страницы ... встроенный css не применяется к новым объектам, вставленным в dom, если css отсутствует в разделе head. </p>

так как php являются функциями, я думаю, они выводят правильный html (вы, вероятно, используете их в другом месте). так что единственное, что может быть неверным (учитывая приведенное выше утверждение), это ваша html / css "привязка".

...