LINUX.ORG.RU

По мотивам http://www.linux.org.ru/forum/talks/9261299

 ,


0

1

user_id_68054
Шарик, ты балбес.

.TEST-layout-cell-A {
width: 400px; /* ATTENTION! we have declared ``width`` only */
background: blue;
Кто сказал, что можно декларировать только ширину? Поведение по умолчанию не документировано стандартом, проставь высоту и увидь свой желтый квадрат в IE

★★★★★

Кто сказал, что можно декларировать только ширину?

а кто сказал — что нужно декларировать вообще хоть что-то? например если НЕ декларировать и НИ ширину и НИ высоту? :-)

проставь высоту и увидь свой желтый квадрат в IE

ну тыг в ораньжевом/зелёном прямоугольнике — как раз указана высота:

            .TEST-layout-cell-B {
                height: 100%; /* ATTENTION! we have declared ``height`` only */
                background: green;
            }

и он (ораньжевый/зелёный прямоугольник) — успешно нарисовался в IE.

однако в Firefox декларирование высоты не требуется (и ширины не требуется тоже.. но вопросы связанные с шириной — не столь интересны, так как обычно всегда_заранее_известна ширина — 1000px, и всегда одна и таже :)). и всё-равно оно рисуется в Firefox..

Поведение по умолчанию не документировано стандартом

поэтому и возник вопрос — какая реализация более корректная :-) ..

ну или как сказать — корректная по духу стандарта, если уж текста соответствующего нету :-) .

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 3)

немножко уточню..

высота УЖЕ один раз указывается тут:

            .TEST-layout {
                display: table;
                margin: auto;
                width: 800px;
                height: 250px;
                background: gray;
                background: lightgray;
                border: 1px solid;
            }

но MsIE (засранец такой?) хочет чтобы я ЕЩЁ РАЗ указал высоту вот тут:

            .TEST-layout-cell-B {
                height: 100%; /* ATTENTION! we have declared ``height`` only */
                background: green;
            }

в свою очередь — для Firefox — нет необходимости второй раз указывать высоту:

            .TEST-layout-cell-A {
                width: 400px; /* ATTENTION! we have declared ``width`` only */
                background: blue;
            }

и действительно — для меня было бы проще её второй раз не указывать... :-)

потому что:

1. зачем указывать два раза то что можно было бы указать только 1 раз?

2. в некоторых случаях я не смогу указать высоту^W^W^W^W^Wя должен буду использовать CSS-инструкцию ``calc()`` для указания высоты. каждый раз прописывая ``calc()`` — не думаю что у меня будет много радостей :-) ..

и тогда вот возникает вопрос: постоянное использование CSS-инструкции ``calc()`` — это костыль [костыль специально для MsIE], или же я действительно ОБЯЗАН постоянно использовать ``calc()`` вместо того чтобы ожидать что браузер и сам (не дурак) может пощитать высоту без этих всяких ``calc()`` ?

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 2)
Ответ на: комментарий от user_id_68054

Ты указал высоту таблицы, а не высоту ячейки. Взялся использовать ячейки, будь добр, задекларируй свойства и тогда все вопросы отпадут. Вообще, глядя на твой тест, хочется сделать ата-та. Возьми за правило, что все что не описано может работать как попало и если есть инструмент точного указания разметки, его надо использовать. Есть стандарт и если в нем что-то не описано, то поведение любого движка браузеров, можно считать адекватным. Хочешь чтоб все выглядело как положено, используй инструменты стандарта, а не жди, что разработчик сделает тебе зашибись.

anonymous
()
Ответ на: комментарий от anonymous

Ты указал высоту таблицы, а не высоту ячейки.

только ты забыл поглядеть что высота ячейки размер которой я НЕ указал — вот как раз отображается корректно [в том числе на MsIE] :-) ...

....потому что если таблица состоит только из одной ячейки — то даже к гадалке ходить не надо чтобы было понятно что высота ячейки будет равна в точности высоте таблице :) .

и MsIE рисует ячейку синим цветом — потому что прекрасно понимает какова же эта высота ячейки :)

            .TEST-layout-cell-A {
                width: 400px; /* ATTENTION! we have declared ``width`` only */
                background: blue;
            }

(вот в этом фрагменте — видно что задний фон синий, а высота НЕ указана :))

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 2)
Ответ на: комментарий от user_id_68054

А теперь укажы высоту этой ячейки 50% и посмотри в браузерах и удивись. Вопрос корретности у тебя встанет еще острее

anonymous
()
Ответ на: комментарий от anonymous

укажы высоту этой ячейки 50%

ну допустим я сделаю два ряда (а не один ряд) и в одном из рядов укажу высоту яцейки 50% .. ...что это докажет — непонятно совершенно :-) , так как нарисуется это правильно (и одинаково) во всех браузерах.

ещё раз повторяю что погляди внимательно HTML-код теста (прежде чем раздавать всем атата :)) — и убедись что ВНЕШНЯЯ ТАБЛИЦА РИСУЕТСЯ ПРАВИЛЬНО [одинаково: и на FF, и на MsIE] . а некорректность возникает только во внутренних таблицах.

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)

Кто сказал, что можно декларировать только ширину?

Можно. Другое дело, что если блоку указать ширину, но не высоту, то он будет высотой 0 :} Собственно, бросайте вы эту фигню. Пока grid layout не появится ловить тут нечего.

Deleted
()
Ответ на: комментарий от Deleted

И вообще, если во внутренние дивы вписать пару букв, всё будет куда понятнее :}

Deleted
()
Ответ на: комментарий от Deleted

Пока grid layout не появится ловить тут нечего.

тыг это ясно..

...но побаловатсья то хочется уже сегодня :-)

[хотя конечно ещё можно побаловатсья через Javascript]

user_id_68054 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.