209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Заголовок сообщения: досужий разговор о float и width Добавлено: 19 Август 2005, 16:57:24
во первых строках -- всем доброго дня (ночи).
Воспользовавшись поиском по форуму на предмет сабжа, внятного ответа не нашел. На w3c, как ни странно, тоже. Суть -- чистая теория, на практике я забил на это. Но а вдруг?..
Есть блочный элемент с float (например left). Нет, одного мало -- два элемента, оба float. Опытным путем установлено, что width такого блока определяет контент внутри него, в частном случае -- длина строки (если нет явного указания ширины ему или его чайлдам). В ИЕ, вопреки мнениям о кривости, реакция как по мне адекватная: уперся край окна во второй блок -- он соскакивает только ежели ему жаться уже некуда.
А вот остальные. Остальные ломать строки такого блока не хотят, как только окно упирается в край блока -- сносят сразу под первый.
Вопрос: так как все таки считать ширину блока с флоат по-умолчанию? Повторюсь, ИЕ считает, что если ширина блоку не задана -- он занимает столько, сколько нужно его контенту (т.е.100% от оставшегося после первого блока), но если начинается ресайз -- жмет контент сколько сможет (до первого неразбиваемого слова в строке), потом сбрасывает под первый и снова дает ему 100%.
Остальные жать контент не хотят. Кто прав и как это фиксить?
Давать такому блоку width в % -- выход сомнительный при резиновой верстке, при срыве блока вниз он продолжает занимать свои %-ы от ширины парента, а не все доступное пространство; в px -- зачем тада резина?..
PS. По остальным имеюцца в виду файрфокс, мозила, опера, нетскейп 6Х
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 19 Август 2005, 17:12:02
ну дык. Задав 100% -- получаем второй блок под первым сразу, для чего флоат и не нужен. Задав меньше -- получаем пустое место до края окна (границы следующего элемента страницы). А так чтоб красивенько заполнилось все, что может заполнится -- только ИЕ такой услужливый...
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 19 Август 2005, 17:27:21
тему потому так и назвал. Но поскольку правила полезно нарушать, зная как; да и бага, приносящая пользу, есть фича, то осталось остальные броузеры научить тому, что мне нужно. Вопрос: как? Кто умеет флоатом заполнять то, что нужно, а не то, что можно?
Остальные броузеры на самом деле поддерживают спецификации до той степени, пока не надоедает их разработчикам. Знаю в ИЕ еще парочку "баг", которые больше фичи...
я, конечно, не спорю и был бы только рад, если бы было провило на подобие такого: «Любой блок, для которого используется плавающая модель и не указана ширина блока, занимает все свободное пространство, относительно ширины экрана». На это можно лишь надеяться =)
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 19 Август 2005, 17:33:33
Тараканьола писал(а):
karamba, а вот зачем ты лезешь, как говорится, в тулуп? Чо, прям невтерпеж все на дивах построить? Ну никак нельзя вложенную таблу поставить?.
а я и не говорю, что я ярый противник таблиц. Выбираю средства, оптимальные для решения конкретных задач. И если мне удобнее где-то обойтись таблицей -- я так и сделаю.
Но в данному случае мне таблица не поможет. Соседние TD всегда остануться соседними, а флоат может перенести блок с текстом под картинку, если блоку станет тесно. Таблицей так фиг вывернешся.
Ну не верите высказывающимся здесь - почитайте недешёвые книжки чтоль... Авторитетов поищите. Сколько раз твердили миру про боксовую модель ИЕ? Тысячу? Десять тысяч? Сходите на листапарт, вебмаскон или в гугл или в книжный магазин, блин...
А если неумеха или бездарь - замени всё таблицами, делов-то, кроме перспектив конкурентоспособности.
Акела, топиком ошиблись =)
и еще я хочу сказать, что я нигде не воспевал лебедева, а лишь счет нужным состаться на него потому, что подобный материал я когда-то видел в его ководстве. но как оказалось, сделал это зря, так как меня причислили к сектантам-лебединцам, обосрали лебедева (как всегда, при первом же случае), ну и меня, заодно =)
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 22 Август 2005, 11:56:18
Акела писал(а):
Блин, мастера...
судя по эмоциональной окраске реплики, автор давно проблему кросссссссброузерной и кроссссплатформенной неглючной быстрой блочной тейбллесс-верстки решил?
Акела писал(а):
Ну не верите высказывающимся здесь - почитайте недешёвые книжки чтоль... Авторитетов поищите. Сколько раз твердили миру про боксовую модель ИЕ? Тысячу? Десять тысяч? Сходите на листапарт, вебмаскон или в гугл или в книжный магазин, блин...
Верим, читали, ходили. Я спросил о РАБОТАЮЩЕМ способе в конкретном случае. Способы есть (на том же листапарте), но они исходят из узкопоставленной задачи и имеют больше ограничений, чем допусков. Float vs/with width я ковыряю сам и сунулся за советом только потому, что не нашел пока нормального элегантного способа, а поиск затянулся (см.название топика и фразу "На практике я забил..." Речь идет о 100% резине без никаких пикселей в ширинах, маргинах, паддингах и т.п. фиксациях. Почему так -- отвечу в личку). Насчет блочной модели ИЕ. 80-85% юзеров под ИЕ/Вин нас..простите...рать на его блочную модель. Она девелоперам дана в ощущениях и не завист от их знаний о ней. Потому девелопер будет принимать и дальше разные неудобные позы под ИЕ или кто под что умеет. Неумеющий девелопер просто кладет на оставшихся 15-20%. Умеющий доходит до цсс-хаков или обходит узкие места другими способами, говоря клиенту, что "Такое нереализуемо при таких сроках и/или таком бюджете". Отсюда любоВ к таблицам (особенно у "чистых" программеров) -- предсказуемо, быстро, просто, привычно. Но это уже другая песня.
Акела писал(а):
А если неумеха или бездарь - замени всё таблицами, делов-то, кроме перспектив конкурентоспособности.
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 23 Август 2005, 10:21:10
IonDen666 писал(а):
karamba, иллюстрируйте проблему кодом.
Не знаю, можно-ли назвать это проблемой. В ИЕ все три варианта выглядят одинаково. В остальных броузерах имеются ограничения, которые мне пока обойти не удалось, приблизив отображение к отображению в ИЕ.
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 23 Август 2005, 12:08:34
Акела писал(а):
karamba, Вам нужно именно такое отображение или непременным условием является сохранение кода самой разметки?
только отображение, вместо <body> может быть контейнер произвольной ширины, справа-слева от него тоже могут быть контейнеры. Смысл в том, чтобы под имидж (который тоже может быть разной, хоть и фиксированной ширины) падал весь блок со всем содержимым, заполняя оставшееся до правой границы контейнера место. Потому что резина...
Код разметки в данном случае тот, который мне показался минимально-оптимальным Пробовал играться с дополнительными контейнерами с отрицательными/положительными маргинами -- адекватного результата не получилось... Но если адекватность потребует дополнительных блоков -- готов жертвовать легкостью и прозрачностью кода.
Смысл этой возни -- портал с настолько разномастным контентом, что унифицировать темплейты просто не получается. И все это должно оптимально располагаться в окне от 800х600.
_________________ клетчатый!
Последний раз редактировалось karamba 23 Август 2005, 12:15:00, всего редактировалось 1 раз.
karamba, тогда посмотрите материалы, только что публиковали список сайтов по CSS, такие проблемы неоднократо рассматривались на xpoint.ru, alistapart.com и во многих других местах. В принципе подскажу, что может понадобится наоборот float: right и уж точно не забывайте о важной роли margin при вёрстки через float.
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 23 Август 2005, 12:43:54
Акела писал(а):
karamba, тогда посмотрите материалы, только что публиковали список сайтов по CSS, такие проблемы неоднократо рассматривались на xpoint.ru, alistapart.com и во многих других местах.
увы и ах, именно такая тривиальная задача почему-то не рассматривалась ни на указанных вами ресурсах, ни где-либо еще. Или мне нужно еще и учится искать Рабочим остался вариант с expression, принесший в жертву цельность текстового контента в блоке...
karamba, рассматривались. Вы обрисуйте плз задачу абсолютно однозначно, тогда будет легче понять. Например: слева рисунок, справа текст. Что должно происходить с текстом? Он должен занимать всё, что осталось от рисунка? Или как? Или какие-то дополнительные условия?
И причём тут expression, когда с ИЕ Вы и так справились? Остальным-то expression с какого бока?
209 Сообщения: 6498 Зарегистрирован: 17.08.05 Откуда: Киев. А шо?
Добавлено: 23 Август 2005, 13:04:39
Акела писал(а):
karamba, рассматривались. Вы обрисуйте плз задачу абсолютно однозначно, тогда будет легче понять. Например: слева рисунок, справа текст. Что должно происходить с текстом? Он должен занимать всё, что осталось от рисунка? Или как? Или какие-то дополнительные условия?
нда... начинаем сначала. Слева у границы внешнего контейнера (или бади) картинка. Должна оставаться всегда на месте. Справа от нее, а не просто "справа" -- блок (с текстом), контент которого занимает все оставшееся пространство до правой границы контейнера (или бади). Когда при ресайзе окна контент в блоке уже не может жаться между этой границей и картинкой -- он должен соскочить под картинку, снова заняв доступнеое место, но уже между левой и правой границей контейнера (или бади). Без лишних телодвижений это делает ИЕ. Пример -- в моем посте выше, если смотреть ИЕ.
Акела писал(а):
И причём тут expression, когда с ИЕ Вы и так справились? Остальным-то expression с какого бока?
Ни при чем. С ИЕ справляться незачем, как я уже сказал. Остальные броузеры просто не знают, что блок с контентом имеет флоат и контент просто обтекает картинку, что является лишь подобием того, чего я добиваюсь. Ни бордеры, ни фон не нужны, сделаны сугубо для наглядности. Контент в блоке -- условен, но должен оставаться ЦЕЛЬНЫМ: или весь справа от картинки, или под ней.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.