Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Нужна идея, как сделать элементы новостей в одну строку

00 голосов
4
Здравствуйте!

В стандартном шаблоне новости выводятся в цикле в таком виде:

Код
<p class="news-item">
<a>Название</a>

<div>
Тело новости
</div>

</p>


Но мне нужно, чтобы элементы выводились в одну строку. Например, если у меня большой экран, то влазит 3 элемента, а если маленький, то влазит 2 элемента, а третий на вторую строку уходит. Вот как-то так.

Я пробовал <p> заменять на <div style="display:inline;">, но нужного результата нет.

В принципе, можно, чтоб хотя бы по 2 элемента выводились в одной строке. Это, наверное, можно сделать через <table>, но я не знаю, как изменить условие в цикле, чтобы он выводил все правильно.

Помогите идеями, пожалуйста.
спросил 31 Июль, 13 от Ursa (260 баллов)

4 Ответы

00 голосов
Цитата
Я пробовал <p> заменять на <div style="display:inline;">, но нужного результата нет.


И не будет. Напишите так:

<div style="float: left">

Ну и ширину какую-то укажите ему.

После вывода блока новостей не забудьте еще поставить блок с таким стилем:
clear : both;

Т.е., все вместе должно выглядеть примерно так:
Код
<div id="news">
   <div class="news-item">новость 1</div>
   <div class="news-item">новость 2</div>
      ...
   <div class="news-item">новость N</div>
</div>
<div class="clear"></div>


Стили:
Код
.news-item {
  float: left;
  width: 100px;
  margin: 5px; /*на ваше усмотрение*/
}

.clear {
  clear : both;
}
ответил 31 Июль, 13 от Texnik (1,860 баллов)
00 голосов
Спасибо, сейчас попробую
ответил 29 Сен, 13 от Ursa (260 баллов)
00 голосов
Круто, все работает как надо! Спасибо большое!
ответил 30 Дек, 13 от Ursa (260 баллов)
00 голосов
да незачто. вообще, это не самый лучший метод, выстраивать несколько (неизвестно сколько) плавающих элементов друг за другом. Надо на разных разрешениях монитора тестировать.
Почему -а потому, что лучше точно знать, сколько блоков влезет в обертку в ряд, а то фигня может получиться. Т.е., у обертки фиксировать ширину, и рассчитать ширину плавающих блоков, приплюсовать отступы. И должно быть так - ширина обертки = (ширина плавающих+отступы)*количество. Вообще это практически тоже самое получится, что таблица. Ну это "лирическое отступление", а так, дело ваше, конечно.
ответил 15 Апр, 14 от Texnik (1,860 баллов)

Похожие вопросы

0 голосов
8 ответов
спросил 11 Июнь, 13 от Nadejda (180 баллов)
0 голосов
5 ответов
спросил 06 Ноя, 13 от SicknezZz (200 баллов)
0 голосов
2 ответов
0 голосов
1 ответ
спросил 30 Сен, 13 от Chemikals (840 баллов)