| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > высота дива |
| Автор: yalo 6.2.2007, 12:04 | ||
Как в подобном коде сделать так, чтобы блок lft2 по высоте занимал всю получающуюся высоту блока main:
|
| Автор: AzuManga 6.2.2007, 16:01 |
| А что требуется сделать? растянуть blspot.gif по высоте? однопиксельной ширины? Наверняка такой эффект можно сделать с помощью фона блока main 8) |
| Автор: mishaSL 6.2.2007, 20:54 | ||
Насколько я понял твою задачу, ты хочешь получить примерно это:
Единственное посмотри как это в Опере работает. В FF и IE все вроде нормально. |
| Автор: yalo 7.2.2007, 07:47 |
| mishaSL, примерно это я и хотела, за исключением двух нюансов: 1) потерялось центрирование относительно страницы блока main 2) Ваш код работает без указания доктайпа, если указывать любой доктайп, уже ничего не работает хотя было интересно узнать некоторые новые фишки может все-таки как-то можно еще решить мою проблему? |
| Автор: mishaSL 7.2.2007, 12:43 | ||
Чтобы избавиться от этих ньюансов можно сделать так:
Единственное но: если указывать doctype не получится указать высоту основного div-а 100%, а это бывает очень нужно во многих случаях. |
| Автор: mishaSL 7.2.2007, 13:18 | ||||||
Это я и вправду наспех ответил. Вот так:
То что указано в мета (имею ввиду html или xhtml) не как не влияет на отображение. SelenIT, если не согласен то приведи пример. |
| Автор: yalo 7.2.2007, 13:36 |
| mishaSL, спасибо большое! теперь действительно работает. Удивительно прямо как мало стоило изменить, чтобы работало все также и с доктайпом, у меня почему-то никак не получалось внести поправки при доктайпе так, чтобы эффект был равнозначный, вывод: еще учиться и учиться! |
| Автор: mishaSL 7.2.2007, 13:38 |
Учение свет |
| Автор: SelenIT 7.2.2007, 14:16 | ||
На режим рендеринга точно не влияет, согласен. Кодировки может побить в некоторых браузерах... Просто я не вижу логики в такой записи. Вначале гордо объявить на весь мир: "Смотрите, у меня тут крутейший, новейший и валиднейший XHTML!" а буквально через несколько строчек успокоить: "Ладно, я пошутил, на самом деле это просто HTML"? Вообще есть известное http://www.hixie.ch/advocacy/xhtml, что делать xhtml есть смысл только тогда, когда планируется отдавать его с соотв. Content-Type'ом (application/xhtml+xml). Если я чего-то недопонимаю - буду благодарен за разъяснения и освобождение от моих заблуждений... |
| Автор: mishaSL 7.2.2007, 16:20 | ||||||
Понимаешь ты правильно, но не доконца. Обычно я верстаю в xhtml и ставлю meta:
Объясняю почему: не все браузеры понимают второй meta-тег (с application/xhtml+xml;) к примеру IE6:
По-этому те браузеры которые понимают (application/xhtml+xml) переопределяют content-type c помощью следующего meta-тега. А те которые не понимают (к примеру IE6) - пользуются первым. Вот так... |
| Автор: SelenIT 7.2.2007, 17:28 | ||
mishaSL, Вы в этом уверены? Это подтверждается экспериментом? Просто у меня возникает ощущение, что или я не понимаю чего-то очевидного, или Вы не совсем понимаете, что такое Content-type... |
| Автор: mishaSL 7.2.2007, 18:30 | ||||||
Думаю мы говорим немного о разном... meta-теги это рекомендации браузеру (которыми он пользуется крайне редко) и информация о странице. Там можно указать все что угодно. Любой браузер оперирует заголовками которые приходят ему от сервера. Если в заголовке указано что это страница (text/html) то она отображается как html это понимают все браузеры. Но с появлением xhtml появился каже content-type = application/xhtml+xml, это понимаю далеко не все браузеры. А что самое страшное это не понимает IE6, если в IE приходит заголовок content-type = application/xhtml+xml он предлагает сохранить эту страницу, в отличие от скажем FF который ее вполне корректно отображает. В доказательство моих слов делаем простой эксперимент c использованием PHP: на первой странице(страница сохранена в utf-8) отправляем заголовки application/xhtml+xml и смотрим что получилось: заметим что в мета-теге мы специально указали другой тип документа и даже другую кодировку
Эта страница нормально отображается в FF и в Opere, а IE предлагает ее сохранить. Если мы заменим заголовок на :
то все будет отображаться точно также, только еще и в IE будет все нормально. Указание мета-тегов на странице в любом случае необходимо. Как минимум для того чтобы когда пользователь сохранил эту страницу локольно (за исключение IE, т.к. он сам заменяет мета на необходимые) он мог без проблем ее посмотреть в той кодировке для которой она предусмотрена. |
| Автор: SelenIT 7.2.2007, 19:19 | ||
mishaSL, спасибо за прекрасный эксперимент, но я так и не понял, где из него вытекает
Или Вы ведете речь исключительно о кодировке? Интересно также сделать намеренную ошибку в верстке (напр., незакрытый тег) и повторить эксперимент в FF. Вообще у проблемы непонимания xhtml браузерами есть http://xpoint.ru/know-how/Apache/XhtmlAndIE?comments#comments (была еще одна проблема у Оперы 7.2х, она будто бы понимала xhtml, но отказывалась исполнять JS в нем, но сейчас она к счастью давно утратила актуальность). Аргумент про локальное сохранение страницы, конечно, существенный, но все равно не понимаю, зачем для этого 2 взаимоисключащих меты... P.S. Большая просьба к модераторам: разделите, пожалуйста, тему - спор о целесообразности <meta http-equiv="Content-type"> и взаимовлиянии стандарта, мета-тегов, режима интерпретации и режима рендеринга не имеют отношения к высоте дива, но, мне кажется, в ходе этой дискуссии может высплыть немало полезной информации... |
| Автор: mishaSL 7.2.2007, 19:39 | ||||
Соответственно FF анализирует XML код и выдаст ошибку. Если в этом примере заменить <div id="lft2"></div> на <div id="lft2">. ТО:
Добавлено @ 19:45 Речь идет о том что главное в мета-теге главное указать кодировку. При чем указать чтобы ее понял любой браузер, не зависимо от понимания xhtml и xml. А суть этого эксперимента была в том: Что мы пишем в мета-теге application/xhtml+xml или text/html. Это далеко не значит что мы указали браузеру как интерпритировать этот документ. |
| Автор: SelenIT 7.2.2007, 20:10 | ||||
Так и есть. Тогда зачем вообще вторая мета? Для "убедительности"? ;)
Для HTML - пожалуй, да. Для XHTML - имхо, все равно спорный вопрос... как минимум, у XHTML есть более "родное" место для указания кодировки - xml-декларация (не более необязательная. чем мета)... |
| Автор: mishaSL 7.2.2007, 21:23 | ||
Да, тема конечно получилась довольна интересная |
| Автор: SelenIT 7.2.2007, 21:57 | ||
mishaSL, неужели в таком подходе нет противоречия: с одной стороны, демонстрируете равнение на современные стандарты самим фактом выбора XHTML (несмотря на то, что самый популярный браузер их не поддерживает!), а с другой - пытаетесь охватить все мыслимые и немыслимые нестандартные ситуации, в т.ч. имеющие вероятность 1 на милион? Особенно когда эксперимент вроде бы показывает, что вторая мета ни на что не влияет ни в HTML, ни тем более в "полноценном" XHTML... Имхо, делать XHTML только "для вида", ради "красивого доктайпа", а отдавать его как обычный text/html (разумеется, для современных браузеров) несколько нелепо (и даже нечестно;). С точки зрения режима рендеринга HTML 4.01 Strict разве чем-то хуже? А с точки зрения удобства разработчика (совместимость JS, отсутствие нужда в экранировании CDATA-блоков и т.п.) - имхо, только лучше. А пользователю вообще вряд ли есть дело до всех этих тонкостей... P.S. Прошу прощения за то, что подозревал в недостаточном знании HTTP... ;) |
| Автор: mishaSL 7.2.2007, 22:48 | ||||||
Имхо, отдавать его как обычный text/html - это не нелепо, это надежно. Сейчас я говорю о верстке основного макета сайта, а не отдельных его страниц. Сейчас объясню свою точку зрения: Т.к. большенство сайтов делаю с CMS системой пользовтелям которые не понимают что такое html (или понимают совсем относительно) и тем более xhtml. Соответственно в CMS системе есть возможность добавления и изменения текстовых страниц через визуальный редактор. И они (так называемые администраторы сайта) умудряются вставить такие вещи, от которых волосы начинают шивелиться (к примеру копируя таблицу из excel в word, а потом в wysiwyg). Вполне логично, что ему главное чтобы это отображалось так, как он хочет и плевать ему на стандарты, валидность и т.д. А если я специально буду отдавать заголовки application/xhtml+xml скажем для тех браузеров которые это поддерживают, то в них будут возникать ошибки. Причем эти ошибки поправить они (администраторы сайта) не смогут. Конечно же они будут думать что им разработали неправильный сайт, а не то что они делают что-то не так. И это вполне логично. И два мета-тега я пишу все для той же надежности ,может это и перебор, но вилидатор на это смотрит нормально. Да и мне спокойнее, что не позвонит какой-нибудь ошалевший клиент у которого браузер о котором я ничего не то что не слышал а которым пользуются пару сотен человек на весь мир (такие уже были, правда один и не по поводу мета-тегов
В том то и дело что пользователю вообще нет дела как это все работает. По-этому разработчик сам выбирает как ему делать и что использовать.
Да ничего. Я не так давно на этом форуме |
| Автор: Zhuk 17.2.2007, 02:18 |
| А можно вернуться к примеру? Если содержимое нефиксированного по высоте блока увеличиватся, то почему в FF не увеличивается высота <div id="lft2">? При всех прописанных 99%??? |
| Автор: Morg 12.4.2007, 16:33 |
| Извиниясюь за поднятую тему, но ктото выше сказал что доктайп не влияет на отображение... я сталкивался с тем что как раз влиял, если не ошибаюсь - при указании xhtml 1.0 strict страница с xhtml 1.0 transitonal (или как там) рендерилась совсем по другому - криво. К сожалению или к счастью та страница уже почила в Лете, но факт остается фактом. |
| Автор: SelenIT 12.4.2007, 17:31 |
Такого ни выше, ни ниже, ни сбоку никто не говорил. Спор был о 1) влиянии Content-type документа (application/xhtml+xml или text/html) на отображение, и 2) влиянии <META> на фактический Content-type. А с очевидным никто не спорил... |
| Автор: Morg 12.4.2007, 18:01 | ||
В начале где-то ;) |
| Автор: SelenIT 12.4.2007, 18:42 |
| Именно так. Именно "в мета". Причем здесь доктайп? |
| Автор: Morg 12.4.2007, 22:18 |
| SelenIT, простите, не заметил |