Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как расположить div'ы без перевода строки, и по центру одновременно 
:(
    Опции темы
Replicator
Дата 8.3.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Проблема в следующем: необходимо расположить div'ы (именно блоковые элементы) так, чтобы они шли один за другим без переносов на следующую строку. Перенос появляется тогда, когда в ряду заканчивается место. При этом строки с div'ами должны располагаться по центру.

Делаю всем div'ам float: left, но при этом их не расположить по центру.

Инлайнами их делать нельзя, так как при этом не выставить размер div'a.
Таблицу ставить нельзя, так как тогда по горизонтали всегда одинаковое количество ячеек, а смысл в том, чтобы их количество зависело от разрешения.
Можно вставить все div'ы в какой-либо контейнер, но пока они float, это бесполезно.

Вот пример страницы: http://zero.kanet.ru/test/index.html.
Вот код:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"><head><title>File Archive</title>

  
    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="alternate" type="application/rss+xml" title="RSS 2.0 Новости сайта" href="http://filar/rssfeed.xml">
    <link href="http://filar/files/skin/default/favicon.ico" rel="shortcut icon" type="image/x-icon">
    <link rel="stylesheet" type="text/css" href="index_files/style.css"></head><body>
    <div class="header">
      <img src="index_files/filar.jpg" alt="Logo">

      <span>
Программа <em>File Archive</em>, версия 1.0<br>
Разработчик: Alexander N Zubakov &lt;<a href="mailto:[email protected]">[email protected]</a>&gt;
      </span>
    </div>

    <div class="file">
  <a href="http://filar/files/%2Ffiles%2Findex.php%3Fdir%3D.%2FCreole0.5_files" title="Creole0.5_files">
  <img src="index_files/folder.jpg" alt="">
  Creole0.5_files</a><br>
  06.03.2007 18:08
</div><div class="file">
  <a href="http://filar/files/%2Ffiles%2Findex.php%3Fdir%3D.%2Fdir01" title="dir01">
  <img src="index_files/folder.jpg" alt="">
  dir01</a><br>
  06.03.2007 18:08
</div><div class="file">
  <a href="http://filar/files/%2Ffiles%2Findex.php%3Fdir%3D.%2Fdir02" title="dir02">
  <img src="index_files/folder.jpg" alt="">
  dir02</a><br>
  06.03.2007 18:09
</div><div class="file">
  <a href="http://filar/files/%2Ffiles%2F..%2Ffile_dir%2F.%2Frfc4287.htm" title="rfc4287.htm">
  <img src="index_files/html.jpg" alt="">
  rfc4287.htm</a>, 114.74 Kb<br>
  24.02.2007 20:06
</div><div class="file">
  <a href="http://filar/files/%2Ffiles%2F..%2Ffile_dir%2F.%2Fmysql_dump.zip" title="mysql_dump.zip">
  <img src="index_files/archive.jpg" alt="">
  mysql_dump.zip</a>, 2.93 Kb<br>
  26.02.2007 17:48
</div><div class="file">
  <a href="http://filar/files/%2Ffiles%2F..%2Ffile_dir%2F.%2Fsilkscreen.zip" title="silkscreen.zip">
  <img src="index_files/archive.jpg" alt="">
  silkscreen.zip</a>, 22.74 Kb<br>
  28.02.2007 19:44
</div>

    <pre><strong>Readme:</strong>


    </pre>

    <div class="footer">
© 2007 Alexander N Zubakov
    </div>
  </body></html>


Вот CSS:
Код

* {
  font-family: verdana, sans-serif;
  font-size: 13px;
  color: #404040;
  border-width: 0px;
  background: transparent;
  margin: auto;
}
body {
  margin: 10px;
  padding: 0px;
  background: #ffffff;
  border-left: #e5e5e5 2px solid;
}
a {
  color: #2c2bab;
  text-decoration: none;
}
a:hover {
  color: #0f0b74;
  text-decoration: underline;
}
pre, div {
  border: #e5e5e5 1px solid;
}
.header {
  padding: 0px;
  height: 50px;
}
.header span {
  vertical-align: middle;
}
.header img {
  float: left;
  margin: 0px;
  padding: 0px;
  padding-right: 30px;
  border-width: 0px;
}
.footer {
  text-align: right;
}
.header, pre, .footer {
  width: auto;
  margin: 0px auto 10px auto;
  padding: 5px;
  clear: both;
  border-left: 0px;
}
.file {
  display: block;
  float: left;
  width: 150px;
  height: 150px;
  margin: 20px;
  padding: 10px;
  background: #f5f5f5;
  text-align: center;
  overflow: hidden;
}
.file:hover {
  background: #e5e5e5;
}
.file img {
  display: block;
  margin: auto;
  padding: 0px;
}

--------------------
 
PM WWW ICQ   Вверх
GZep
Дата 8.3.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Может их всех "обернуть" в еще один div, выравнивание которого уже установлено на центр?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 8.3.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



Официально эта задача, насколько мне известно, считается нерешаемой. Но... если очень захотеть...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Replicator
Дата 9.3.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Цитата(GZep @  8.3.2007,  20:14 Найти цитируемый пост)
Может их всех "обернуть" в еще один div, выравнивание которого уже установлено на центр? 

Не выйдет, так как они float.


Цитата(SelenIT @  8.3.2007,  23:23 Найти цитируемый пост)
Официально эта задача, насколько мне известно, считается нерешаемой. Но... если очень захотеть... 

А если не секрет, что такое
Код

-moz-binding: url(moz-inline-block.xbl#inlineblock);

?
Вариант с хаками использовать не желательно, так как сейчас работает, а потом перестанет... Возможно же такое.

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

Понимаю, что задача сложная, но неужели никому еще этого не требовалось? Может, кто-нибудь знает сайт, где это реализовано?
--------------------
 
PM WWW ICQ   Вверх
SelenIT
Дата 9.3.2007, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



Цитата(Replicator @  9.3.2007,  14:08 Найти цитируемый пост)
что такое -moz-binding

Насколько я понимаю, это мозилловское проприетарное (пока что) расширение, некий (отдаленный) аналог "мелкомягких" behaviors. "Внутри себя" более-менее стандартизовано, так что отменить его вряд ли отменят. Так что я бы не назвал это хаком, скорее это "специфические возможности" (равно как и conditional comments в IE). Единственная проблема - в прочих браузерах, не имеющих родной поддержки inline-block (как в Опере) и "спецсредств" (IE, Gecko) будет "некузяво". Но сколько их, браузеров помимо этой "большой тройки"?..

Цитата(Replicator @  9.3.2007,  14:08 Найти цитируемый пост)
те дивы, что на последней строке, если их не достаточно для комплектования полной строки, хорошо бы расположить по левому краю относительно начала ряда.

Боюсь, что это действительно невозможно...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Replicator
Дата 9.3.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Ну нет так нет... Просто так как есть, жутко некрасиво. Надо как-нибудь переделать, чтобы хорошо смотрелось выровненным по левому краю.

Ладно, все равно спасибо.
--------------------
 
PM WWW ICQ   Вверх
12345c
Дата 13.3.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: нет
Всего: 101



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

Если судить по ссылке в 1-м посте, то надо делать "ноготки", как в ACDSee и прочих просмотрщиках. Так где проблема? Когда определяете ширину окна и ячейки, можете генерировать таблицу с нужным числом ячеек по горизонтали. При ресайзе - перестроить (будут некие задержки, но заново переписывать блоки не надо, просто переставить узлы).

Если правильно понята задача, задавайте вопросы в раздел "JS".
PM WWW   Вверх
Replicator
Дата 13.3.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Хотелось бы через CSS. Не хочу усложнять и замедлять JavaScript'ом страницу, если это не жизненно необходимо.

Ты все правильно сказал, спасибо. Но я хотел найти решение на CSS и без таблиц. JavaScript'ом не обязательно генерировать таблицу, можно просто расположить div'ы. А при изменении размеров окна перераспределить их.
--------------------
 
PM WWW ICQ   Вверх
smartov
Дата 13.3.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



[offtopic]
В Вилларибо и Виллабаджо опять дедлайн. Пока ребята из Вилларибо верстают сайт дивами, ребята из Виллабаджо уже всё сверстали на таблицах и мочат друг друга в квейк.

В Веларибо и Вилабаджо снова праздник! Заказчик захотел версию для PDA и пока ребята из Вилабаджо думают, а что это вообще за фигня и как жить дальше, ребята из Виларибо правят десять строк CSS-а и мочат в квейк.
[/offtopic]
 smile 
PM MAIL   Вверх
SelenIT
Дата 13.3.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



Вообще, если таки применять JS, то все элементарно: обычные плавающие блоки в контейнере, которому по onload и onresize окна присваивается 
Код

document.getElementById("<ID_контейнера>").style.marginLeft = (document.body.clientWidth % <тут_ширина_плавающего_блока>) / 2 + "px"


P.S. конечно же левый margin, если блоки "плавают" влево - видно, вчера сонный был... исправил.


Это сообщение отредактировал(а) SelenIT - 15.3.2007, 01:38


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Replicator
Дата 14.3.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 30.4.2006
Где: Outer Heaven

Репутация: нет
Всего: нет



Спасибо за код, потом попробую.
--------------------
 
PM WWW ICQ   Вверх
pandari
Дата 19.5.2013, 00:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.4.2013

Репутация: нет
Всего: нет




.sidebar1 {
    float: left;
    width: 180px;
    background-color: #ffffff;
    padding-bottom: 10px;
    padding: 10px 0;
}
.content {

    padding: 10px 0;
    width: 620px;
    float: left;
}
.sidebar2 {
    float: right;
    width: 180px;
    background-color: #ffffff;
    padding: 10px 0;
}


И всё) Дивы идут друг за другом))
PM MAIL   Вверх
Deepthroat
Дата 19.5.2013, 12:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.9.2007
Где: Outer Heaven

Репутация: нет
Всего: 2



pandari, очень своевременный ответ, всего-то 6 лет прошло smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0894 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.