2012-05-09 5 views
0

Предположим, что я вытягиваю текст из нескольких сообщений в базе данных MySQL, хронологически используя PHP. Я хочу, чтобы мои сообщения отображались как альтернативные вправо и влево.Динамическое альтернативное выравнивание по правому краю

Важно отметить, что я хочу, чтобы сообщения могли быть удалены. Если сообщение удалено, я хочу, чтобы другие сообщения сохраняли динамическое чередующееся выравнивание.

Можете ли вы дать мне несколько идей о том, как это сделать с помощью CSS?

+0

Вы хотите, чтобы сообщения удалялись динамически, а затем все остальные строки были перекрашены? – JakeParis

+0

Нет, я не планирую, чтобы динамические вещи свистели. Это действительно хорошо для моего первого полноценного приложения с нуля. Спасибо! – Joseph

ответ

2

Использование :odd и :even pseudoClasses (на новый браузер)

например

div:nth-child(odd) { text-align: left } 
div:nth-child(even) { text-align: right } 

если вы хотите сохранить прежний порядок после после удаления, просто установите display: none при удалении поста (вместо удаления узла из DOM)

Если вы хотите вместо того, чтобы изменить положение dinamycally все последующие сообщения просто удаляют полностью узел

+0

Как поддерживает браузер для этих псевдо классов? (не забавный, просто настоящий вопрос) – JakeParis

+0

, к сожалению, не работает над IE <= 8 – fcalderan

+0

Интересно. Означает ли это, что каждый 2 дочерний элемент div будет выровнен правильно. Или мне нужно дать определенный идентификатор каждому элементу div? – Joseph

2

После того как вы получили свои результаты из базы данных, поместите имя класса в переменную php. В цикле foreach переключайтесь между двумя именами классов, когда цикл работает. Как так:

//php file 
$alt = 'Row'; 

foreach($results as $row) { 
    echo '<div class="' . $alt . '">some content</div>'; 
    $alt = ($alt == 'Row') ? 'altRow' : 'Row'; 
} 

, а затем в таблице стилей:

.Row { 
    text-align: left; 
} 

.altRow { 
    text-align: right; 
} 
+0

Извините, исправлена ​​ошибка в коде. – JakeParis

+0

Я бы использовал 'foreach ($ results as $ key => $ row) {$ odd = $ key & 1? 'odd': 'even';} ' – Mikey

+0

@Mikey Почему? .... – JakeParis

Смежные вопросы