Условное выравнивание текста внутри абзаца html - PullRequest
0 голосов
/ 16 июля 2011

Вот данные таблицы, которые иногда должны быть выровнены по правому краю, а другие времена - по центру:

<td colspan="5"><p align="right"><?php echo number_format($total_adjusted_taxes,2) ?></p></td>

Что определяет выравнивание по центру вправо или по центру:

<?php $r_or_c = (count($categories)==1?"right":"left");    
?>

Как лучше всего использовать эту переменную $r_or_c внутри тега p?

Ответы [ 4 ]

0 голосов
/ 16 июля 2011

Как мой комментарий к вопросу, на который ответил ОП:

... действительно [то, что] [он] искал.Работает отлично [ly].

Я решил опубликовать этот комментарий как ответ:

Я бы предложил полностью удалить тег p и использовать <td style="text-align: <?php echo $r_or_c; ?>;">,Или назначьте имя класса для td ('right' или 'center') и используйте его для стилизации text-alignment.

0 голосов
/ 16 июля 2011
<td colspan="5"><p align="<?php echo (count($categories)==1?"right":"left");?>"><?php echo number_format($total_adjusted_taxes,2) ?></p></td>

Это то, что ты спросил?

0 голосов
/ 16 июля 2011

Просто засунь это туда. Не так много осложнений.

<td colspan="5"><p align="<?=$r_or_c?>"><?php echo number_format($total_adjusted_taxes,2) ?></p></td>

В дополнение к этому, вы должны начать использовать CSS для стилизации:)

.align-right { text-align: right; }
.align-left { text-align: left; }

-

<td colspan="5"><p class="align-<?=$r_or_c?>"><?php echo number_format($total_adjusted_taxes,2) ?></p></td>
0 голосов
/ 16 июля 2011

Я напишу что-то вроде этого. Вы собираетесь отобразить правильное значение:

<p align="<?php echo count($categories)=='1' ? 'right' : 'left'; ?>">....</p>

Я предпочитаю использовать CSS для стилизации элементов, поэтому вы можете использовать тот же метод для назначения другого класса или просто style="text-align:<?php echo....;?>">. Лучше использовать класс, потому что вам не нужно вносить изменения в каждый абзац, в котором вы пишете свой встроенный стиль.

Если вы определяете свою переменную где-то еще и просто хотите повторить ее (похоже, что вы делаете):

$r_or_c = count($categories)=='1' ? "right" : "left";

<p align="<?php echo $r_or_c;?>">....</p>

Как сказал кто-то другой, лучше не использовать этот встроенный стиль, иначе в будущем ваш код будет сложнее поддерживать. Вы также можете использовать стиль <td> вместо абзаца:

CSS:

  .left { text-align:left;}
  .right { text-align:right;}
 /* OR : */
 td.left {}
 td.right{}

HTML:

<td class="<?php echo $r_or_c;?>">......</td>

Кроме того, вы сказали «центр», но написали «слева», не знаю, что вам действительно нужно, поэтому в случае просто замените «налево» на «центр», явно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...