За последние 24 часа нас посетили 16887 программистов и 1312 роботов. Сейчас ищет 1361 программист ...

Верстка для галереи

Тема в разделе "HTML и CSS", создана пользователем Dagdamor, 4 мар 2008.

  1. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Есть галерея картинок на странице, каждая картинка - это превьюшка + название, все обернуто в DIV фиксированной ширины и высоты.
    Вопрос: как сделать так, чтобы можно было вывести штук 20 этих DIVов на страницу, а браузер сам бы автоматически подбирал количество превьюшек на строке, разбивая их по строкам?
    Написал <div style="float:left">, но это приводит к тому, что весь массив дивов (хоть и правильно поделенных на строки) жмется к левому краю страницы, а справа остается нелицеприятная пустота. :( Нужно сделать так, чтобы отображалось по центру страницы.
     
  2. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Вот пример, чтобы пояснить...

    HTML:
    1. div { border:1px solid black; }
    2. div.pic { float:left; width:100px; height:100px; margin:5px; }
    3.  
    4. <div style="width:380px;height:250px">
    5.  
    6. <!-- 1-я "картинка" -->
    7. <div class="pic" style="background-color:green"></div>
    8.  
    9. <!-- 2-я "картинка" -->
    10. <div class="pic" style="background-color:red"></div>
    11.  
    12. <!-- 3-я "картинка" -->
    13. <div class="pic" style="background-color:blue"></div>
    14.  
    15. <!-- 4-я "картинка" -->
    16. <div class="pic" style="background-color:yellow"></div>
    17.  
    18. </div>
    Получается такое:
    [​IMG]

    А хотелось бы такое:
    [​IMG]

    Ну или как вариант, такое:
    [​IMG]
     
  3. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
  4. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    А чем не устраивает завернуть все DIV align="center"?
    т.е.

    HTML:
    1.  <div align="center" style="width:380px;height:250px">
    2.  
    3.  <!-- 1-я "картинка" -->
    4.  <div class="pic" style="background-color:green"></div>
    5.  
    6.  <!-- 2-я "картинка" -->
    7.  <div class="pic" style="background-color:red"></div>
    8.  
    9.  <!-- 3-я "картинка" -->
    10.  <div class="pic" style="background-color:blue"></div>
    11.  
    12.  <!-- 4-я "картинка" -->
    13.  <div class="pic" style="background-color:yellow"></div>
    14.  
    15.  </div>
    Ну или на крайний случай:

    HTML:
    1. <div align="center">
    2.  <div style="width:380px;height:250px">
    3.    
    4.   <!-- 1-я "картинка" -->
    5.   <div class="pic" style="background-color:green"></div>
    6.    
    7.   <!-- 2-я "картинка" -->
    8.   <div class="pic" style="background-color:red"></div>
    9.    
    10.   <!-- 3-я "картинка" -->
    11.   <div class="pic" style="background-color:blue"></div>
    12.    
    13.   <!-- 4-я "картинка" -->
    14.   <div class="pic" style="background-color:yellow"></div>
    15.    
    16.   </div>
    17. </div>
     
  5. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Вльдемар
    Там точно такая же фигня - прямоугольники жмутся к левому краю.

    S.t.A.M.
    Оба варианта не работают... посмотри на те картинки, которые я выложил, на то, что мне нужно. Отступы слева и справа должны быть одинаковыми. Второго варианта вообще не понял. "380px" - это для примера, в реальном случае ширина страницы заранее неизвестна.
     
  6. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Dagdamor
    Вариант 2 у меня получился, засунув внурь главного div'a таблицу и прописав ей align=center и padding-left 5%. Div'ы кубики внутри таблицы.
    Не знаю, насколько устроит вариант.
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Elkaz
    Тогда уж яваскриптом вычислять количество возможных превьюшек и строить на основанных данных таблицу.
     
  8. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    А тебе принципиально <div>? если заменить их на <span> то все будет Ок!

    HTML:
    1.  div { border:1px solid black; }
    2.  span.pic { width:100px; height:100px; margin:5px; }
    3.  </style>
    4.  
    5.  <div align="center" style="width:380px;height:250px">
    6.  
    7.  <!-- 1-я "картинка" -->
    8.  <span class="pic" style="background-color:green"></span>
    9.  
    10.  <!-- 2-я "картинка" -->
    11.  <span class="pic" style="background-color:red"></span>
    12.  
    13.  <!-- 3-я "картинка" -->
    14.  <span class="pic" style="background-color:blue"></span>
    15.  
    16.  <!-- 4-я "картинка" -->
    17.  <span class="pic" style="background-color:yellow"></span>
    18.  
    19.  </div>
     
  9. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Кстати 2-ой вариант работает.
    Если у тебя превьюшки все одинковой ширины - в стилях дива (там где сейчас 380) задешь ширину дива = ширину превьюхи * N кол-во картинок. Он будет выводить по N-картинок в строке

    HTML:
    1.  <style>
    2.  div { border:1px solid black; }
    3.  div.pic { float:left; width:100px; height:100px; margin:5px; }
    4.  </style>
    5.  
    6.  <div align="center">
    7.   <div style="width:380px;height:250px">
    8.    
    9.    <!-- 1-я "картинка" -->
    10.    <div class="pic" style="background-color:green"></div>
    11.    
    12.    <!-- 2-я "картинка" -->
    13.    <div class="pic" style="background-color:red"></div>
    14.    
    15.    <!-- 3-я "картинка" -->
    16.    <div class="pic" style="background-color:blue"></div>
    17.    
    18.    <!-- 4-я "картинка" -->
    19.    <div class="pic" style="background-color:yellow"></div>
    20.    
    21.    </div>
    22.  </div>
     
  10. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    S.t.A.M.
    Вариант со спанами не работает в Опере 9 и Firefox :( там они просто пропадают.
    Второй вариант не годится, "380px" указано всего лишь для примера, в реальности ширина обрамляющего дива (или страницы) заранее неизвестна.