[w3c] css: html

w dziale Opera
Zajec napisał(a):

Chciałbym zmusić znacznik html do maksymalnego rozciągnięcia oraz umiejętności zwiększania swojej wysokości wraz z odpowiednią ilością tekstu.

Do Opery 8.00 było to mozliwe przy użyciu
min-height: 100%;
które jednak przestało już działać.

Gdy z kolei użyję height: 100% będę miał problem podczas zbyt dużej ilości tekstu (tekst wypłynie, wysokość html pozostanie stała).

Czy jest jakaś uniwersalna metoda na poradzenie sobie z tym? confused

quiris napisał(a):

Podaj kod. Bo tak na sucho do nie ma sensu deliberować.

Zajec napisał(a):

Docelowo chciałbym, aby niebieski div miał wysokość równą przynajmniej wysokości body (czyli z możliwością zwiększenia, jeżeli tekstu będzie za wiele, lub wysokość okna przeglądarki będzie zamała).

http://osiolki.net/test

Nie mogę oczywiście nadać
height: 100%;
dla niebieskiego div'a, bo treść wyjdzie poza niego w wyżej przedstawionych warunkach.

Mam nadzieję, że nie dostnę od osiołków ;-)

quiris napisał(a):

Nie mogę oczywiście nadać
height: 100%;

No height:100% wydaje się tu naturalny. Można się zabezpieczyć przed wyjściem poza za pomocą box-sizing:border-box.
Ten test Opera oczywiście wyświetla jak najbardziej prawidłowo (i Firefox też).
Zauważ co mówi standard na temat procentów w min-height:

<percentage>
Specifies a percentage for determining the used value. The percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), the percentage value is treated as '0' (for 'min-height') or 'none' (for 'max-height').


Ponieważ blokiem obejmującym blok #test jest body, a dla body nie masz ustawionego height, to min-height jest traktowany jak 0, a nie 100%. Ustaw dla body height:100% i zobacz jaki będzie efekt wink

Zajec napisał(a):

quiris napisał(a)
Zauważ co mówi standard na temat procentów w min-height:

Wiem o tym, ale w moim przpadku każdy element ma ustaloną jakąs wysokość.


quiris napisał(a)
Ponieważ blokiem obejmującym blok #test jest body, a dla body nie masz ustawionego height, to min-height jest traktowany jak 0, a nie 100%. Ustaw dla body height:100% i zobacz jaki będzie efekt wink

Efekt będzie częściowo satysfakcjonujący... aż do momentu gdy treści się nagromadzi na tyle dużo, by się nie zmieścić w tym body. Wtedy wypłynie poza niego.

Zresztą ustaw sobie taką wysokość okienka ze stroną, aby część tekstu się nie mieściła, otwórz źródło, ustaw height: 100% dla body i odśwież widok (z cache). Zobaczysz, że border-bottom będzie widoczny w połowie treści. Tutaj to nie problem, ale gdybym miał w nim jakieś tło, to by mi się w pewnym momencie urywało :|

quiris napisał(a):

Wiem o tym, ale w moim przpadku każdy element ma ustaloną jakąs wysokość.

No jak ma, jak nie ma wink
body { width: 200px; border: 1px solid green; min-height: 100%;}

Zajec napisał(a):

quiris napisał(a)
No jak ma, jak nie ma wink

Ok... a istnieje ostatecznie jakiś sposób, na zrobienie trzech elementów - każdy z własnym tłem i każde na całą wysokośc strony? Bo dwa mogę - powiedzmy: html i body, ale co gdy potrzebuję więcej? Zanim się doczekam CSS3 to jeszcze troche wody w Wiśle upłynie :-)