eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwCSS - jak zrobić 2 kolumny
Ilość wypowiedzi w tym wątku: 19

  • 1. Data: 2009-12-10 18:26:27
    Temat: CSS - jak zrobić 2 kolumny
    Od: "Marek" <m...@s...interia.pl>

    Witam,

    Mam problem z utworzeniem prostego layoutu 2-kolumnowego w postaci:

    <div id="container">
    <div id="leftColumn">treść</div>
    <div id="rightColumn">treść</div>
    </div>

    #container posiada 500px szerokości. Lewa kolumna może nie wystąpić w kodzie
    lecz gdy wystąpi to jej szerokość wynosi 100px. Prawa kolumna zajmuje całą
    resztę przestrzeni. Nadałem styl float:left i width:100px lewej kolumnie.

    Problem w tym, że jeśli prawa kolumna posiada styl float:left, to spada pod
    lewą gdy tekst zawarty w niej jest bez łamania. Natomiast gdy usunę
    float:left z prawej kolumny, to tekst umieszczony w prawej kolumnie układa
    się dobrze ale tylko do momentu gdzie kończy się lewa kolumna. Poniżej jej
    tekst zaczyna się od lewej krawędzi ekranu. Czy da się problem rozwiązać bez
    budowania layoutu na tabelach ?


  • 2. Data: 2009-12-10 19:05:03
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: Krzysztof Warunek <k...@t...pl>

    W dniu 2009-12-10 19:26, Marek pisze:
    > Witam,
    >
    > Mam problem z utworzeniem prostego layoutu 2-kolumnowego w postaci:
    >
    > <div id="container">
    > <div id="leftColumn">treść</div>
    > <div id="rightColumn">treść</div>
    > </div>
    >
    > #container posiada 500px szerokości. Lewa kolumna może nie wystąpić w
    > kodzie lecz gdy wystąpi to jej szerokość wynosi 100px. Prawa kolumna
    > zajmuje całą resztę przestrzeni. Nadałem styl float:left i width:100px
    > lewej kolumnie.
    >
    > Problem w tym, że jeśli prawa kolumna posiada styl float:left, to spada
    > pod lewą gdy tekst zawarty w niej jest bez łamania. Natomiast gdy usunę
    > float:left z prawej kolumny, to tekst umieszczony w prawej kolumnie
    > układa się dobrze ale tylko do momentu gdzie kończy się lewa kolumna.
    > Poniżej jej tekst zaczyna się od lewej krawędzi ekranu. Czy da się
    > problem rozwiązać bez budowania layoutu na tabelach ?
    overflow można spróbować,
    ale ogólnie źle się zabierasz do tego:
    http://www.code-sucks.com/css%20layouts/

    --
    Krzysztof Warunek

    http://tocheckserver.pl


  • 3. Data: 2009-12-10 21:59:24
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: "Marek" <m...@s...interia.pl>

    > overflow można spróbować,
    > ale ogólnie źle się zabierasz do tego:
    > http://www.code-sucks.com/css%20layouts/

    To co mi podesłałeś dotyczy "fixed width" a nie "auto width" jednej z
    kolumn. Ponadto w tym tutorialu i tak identycznie realizują podział na dwie
    kolumny więc nie rozumiem? . Jeśli robię to niewłaściwie, to jakie podejście
    sugerujesz? Szukałem rozwiązań w Google ale niczego innego niż stosuję nie
    znalazłem.

    W międzyczasie nadałem styl display:table-cell prawej kolumnie. Pomogło pod
    IE8 i FF ale nie zadziała pod IE<8. Z overflow poeksperymentuję.


  • 4. Data: 2009-12-11 14:44:22
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: Giecze <czechowski@post.#skasujto#.pl>

    Marek wrote:

    > Witam,
    >
    > Mam problem z utworzeniem prostego layoutu 2-kolumnowego w postaci:
    >
    > <div id="container">
    > <div id="leftColumn">treść</div>
    > <div id="rightColumn">treść</div>
    > </div>
    >
    > #container posiada 500px szerokości. Lewa kolumna może nie wystąpić w kodzie
    > lecz gdy wystąpi to jej szerokość wynosi 100px. Prawa kolumna zajmuje całą
    > resztę przestrzeni. Nadałem styl float:left i width:100px lewej kolumnie.
    >
    > Problem w tym, że jeśli prawa kolumna posiada styl float:left, to spada pod
    > lewą gdy tekst zawarty w niej jest bez łamania. Natomiast gdy usunę
    > float:left z prawej kolumny, to tekst umieszczony w prawej kolumnie układa
    > się dobrze ale tylko do momentu gdzie kończy się lewa kolumna. Poniżej jej
    > tekst zaczyna się od lewej krawędzi ekranu. Czy da się problem rozwiązać bez
    > budowania layoutu na tabelach ?

    #leftColumn + #rightColumn {width: 400px; float: right;}


  • 5. Data: 2009-12-11 14:51:29
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: Giecze <czechowski@post.#skasujto#.pl>

    Giecze wrote:

    > Marek wrote:
    >
    > > Witam,
    > >
    > > Mam problem z utworzeniem prostego layoutu 2-kolumnowego w postaci:
    > >
    > > <div id="container">
    > > <div id="leftColumn">treść</div>
    > > <div id="rightColumn">treść</div>
    > > </div>
    > >
    > > #container posiada 500px szerokości. Lewa kolumna może nie wystąpić w kodzie
    > > lecz gdy wystąpi to jej szerokość wynosi 100px. Prawa kolumna zajmuje całą
    > > resztę przestrzeni. Nadałem styl float:left i width:100px lewej kolumnie.
    > >
    > > Problem w tym, że jeśli prawa kolumna posiada styl float:left, to spada pod
    > > lewą gdy tekst zawarty w niej jest bez łamania. Natomiast gdy usunę
    > > float:left z prawej kolumny, to tekst umieszczony w prawej kolumnie układa
    > > się dobrze ale tylko do momentu gdzie kończy się lewa kolumna. Poniżej jej
    > > tekst zaczyna się od lewej krawędzi ekranu. Czy da się problem rozwiązać bez
    > > budowania layoutu na tabelach ?
    >
    > #leftColumn + #rightColumn {width: 400px; float: right;}

    ..w starym IE to pewnie nie zadziała, sugeruję olać użytkowników IE i
    dać protezę: dla #rightColumn na stałe 400px (tylko dla IE, hackiem).

    PS.
    Byłoby spoko gdybyś zamiast zaśmiecać grupę (tę i p.c.grafika) dość
    podstawowe pytania _najpierw_ się pouczył i poszukał w sieci - o tym
    wszystkim już napisano.

    Grzegorz


  • 6. Data: 2009-12-11 18:34:45
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: "Marek" <m...@s...interia.pl>

    > ..w starym IE to pewnie nie zadziała, sugeruję olać użytkowników IE i
    > dać protezę: dla #rightColumn na stałe 400px (tylko dla IE, hackiem).

    Właśnie tego zrobić nie mogę. Użytkowników IE w statystykach jest jeszcze
    zbyt wielu. Stała szerokość prawej kolumny rozwali layout w przypadku gdy
    lewa nie wystąpi.

    > PS.
    > Byłoby spoko gdybyś zamiast zaśmiecać grupę (tę i p.c.grafika) dość
    > podstawowe pytania _najpierw_ się pouczył i poszukał w sieci - o tym
    > wszystkim już napisano.

    Przeczytaj dokładnie o czym tam napisałem a nie wnioskuj po tytułach
    sugerujacych, że to banał. M.in. sporo o tym czego szukałem i nie znalazłem
    w Googlach lub helpach. Trudno jest zresztą znaleźć coś czego nie ma - jak
    się później dowiedziałem. Po długiej dyskusji (jak na tak ponoć banalne
    Twoim zdaniem problemy) nawet osoby doświadczone przyznały, że nie ma
    rozwiązania kwestii o jakich pisałem, są tylko obejścia. Skoro to stanowiło
    problem dla osób zaawansowanych (w domyśle), to sądzę, że problem był
    adekwatny do tego by pisać o nim na grupie.

    Po drugie zauważ, że nawet niniejszy problem dwóch kolumn w specyficznym
    zastosowaniu również trudno namierzyć w Googlach, a szukałem z godzinę
    odpowiedzi. Przypuszczalnie również i ten temat jest nierozwiązywalny.



  • 7. Data: 2009-12-11 20:00:10
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: Giecze <czechowski@post.#skasujto#.pl>

    Marek wrote:

    > > ..w starym IE to pewnie nie zadziała, sugeruję olać użytkowników IE i
    > > dać protezę: dla #rightColumn na stałe 400px (tylko dla IE, hackiem).
    >
    > Właśnie tego zrobić nie mogę. Użytkowników IE w statystykach jest jeszcze
    > zbyt wielu. Stała szerokość prawej kolumny rozwali layout w przypadku gdy
    > lewa nie wystąpi.

    Zbyt wielu tzn... jaki procent?

    > > PS.
    > > Byłoby spoko gdybyś zamiast zaśmiecać grupę (tę i p.c.grafika) dość
    > > podstawowe pytania _najpierw_ się pouczył i poszukał w sieci - o tym
    > > wszystkim już napisano.
    >
    > Przeczytaj dokładnie o czym tam napisałem a nie wnioskuj po tytułach
    > sugerujacych, że to banał. M.in. sporo o tym czego szukałem i nie znalazłem
    > w Googlach lub helpach. Trudno jest zresztą znaleźć coś czego nie ma - jak
    > się później dowiedziałem. Po długiej dyskusji (jak na tak ponoć banalne
    > Twoim zdaniem problemy) nawet osoby doświadczone przyznały, że nie ma
    > rozwiązania kwestii o jakich pisałem, są tylko obejścia. Skoro to stanowiło
    > problem dla osób zaawansowanych (w domyśle), to sądzę, że problem był
    > adekwatny do tego by pisać o nim na grupie.

    Każdy z tych niby-problemów można doprowadzić do kilku kroków w action
    który załatwi to w sekundę. Zapewniam.

    > Po drugie zauważ, że nawet niniejszy problem dwóch kolumn w specyficznym
    > zastosowaniu również trudno namierzyć w Googlach, a szukałem z godzinę
    > odpowiedzi. Przypuszczalnie również i ten temat jest nierozwiązywalny.

    Zauważam tyle:

    #container {
    width: 500px;
    }

    #leftColumn {
    width: 100px;
    float: left;
    }

    #rightColumn {
    height: 100%;
    }

    #leftColumn + #rightColumn {
    width: 400px;
    float: right;
    }

    Sam się uczyłem CSS (miałem również zadanie z "menu") i zakasałem
    rękawy, znalazłem i przyswoiłem wiedzę. To są tematy do _poznania_ a nie
    _dyskutowania_.

    Photoshopa również się poznaje intensywnymi tygodniami, bo to potężne
    narzędzie, a ty rzucasz "dyskusje" nie poznawszy nawet filozofii
    działania narzędzia.

    Głupio mi było bez wysiłku z własnej strony śmiecić na usenecie. Taki
    old school.

    Grzegorz


  • 8. Data: 2009-12-11 20:57:40
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: "Marek" <m...@s...interia.pl>

    > Zbyt wielu tzn... jaki procent?

    W grudniu wyszło 28%. Z czego 1% to IE8.

    > Każdy z tych niby-problemów można doprowadzić do kilku kroków w action
    > który załatwi to w sekundę. Zapewniam.

    Tak, tylko trzeba składowe poznać tych akcji. Dzięki za pomoc na grupie
    graficznej. Sam na to nie wpadłbym czytając po 10x dołączoną instrukcję choć
    teoretycznie byłoby to możliwe do zrobienia.

    > Zauważam tyle:
    >
    > #container {
    > width: 500px;
    > }
    >
    > #leftColumn {
    > width: 100px;
    > float: left;
    > }
    >
    > #rightColumn {
    > height: 100%;
    > }
    >
    > #leftColumn + #rightColumn {
    > width: 400px;
    > float: right;
    > }

    No i właśnie tu jest problem - to nie zadziała na IE<8. Efekt jest taki:
    tekst w lany w prawą kolumnę powoduje, że staje się ona wyższa od lewej. Od
    momentu gdy tekst przekracza granicę dolnej krawędzi lewej ramki zaczyna
    renderować się od krawędzi containtera. Styl:

    > #rightColumn {
    > height: 100%;
    > }


    nie wniesie skutku dlatego bo ten container nie posiada narzuconej wysokości
    i zgodnie z dokumentacją:
    http://www.w3.org/TR/CSS21/visudet.html#propdef-heig
    ht
    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), and this element
    is not absolutely positioned, the value computes to 'auto'

    > Sam się uczyłem CSS (miałem również zadanie z "menu") i zakasałem
    > rękawy, znalazłem i przyswoiłem wiedzę. To są tematy do _poznania_ a nie
    > _dyskutowania_.
    >
    > Photoshopa również się poznaje intensywnymi tygodniami, bo to potężne
    > narzędzie, a ty rzucasz "dyskusje" nie poznawszy nawet filozofii
    > działania narzędzia.
    >

    Sęk w tym, że trudno przy braku wiedzy ocenić czy problem jest nadający się
    na grupę czy nie. Z kolei gdy posiada się już wiedzę to zwykle nie ma po co
    zadawać pytań skoro zna się odpowiedzi. Najważniejsze aby wykazać się dobrą
    wolą rozwiązania samemu problemu w oparciu o dokumentację jakiegoś programu
    lub Google. Jeśli to nie pomogło to wtedy uważam, że należy pisać na grupę
    niezależnie od skali problemu. To co dla początkującego w dziedzinie jest
    problemem, dla obytego w temacie może być pestką i nie widzę niczego
    zdrożnego w tym, że ktoś z kimś podzieli się tą wiedzą. Unikanie pisania za
    wszelką cenę to przegięcie w drugą stronę bo wtedy grupy tracą sens
    istnienia.

    > Głupio mi było bez wysiłku z własnej strony śmiecić na usenecie. Taki
    > old school.

    Pewnie! Tu się zgadzam. Zwróć jednak uwagę, że ja przyłożyłem się i wyraźnie
    napisałem co i gdzie szukałem. Być może jestem tępy i zdarza mi się czasem
    nie znaleźć odpowiedzi w Googlach albo nie wydedukować jej z dokumentacji.
    Trudno, tacy ludzie też istnieją i musisz się z tym pogodzić.
    Czasem też wracam z pewnym pytaniem po roku aby sprawdzić czy ktoś znalazł
    jakiś trik na obejście czegoś co nie było możliwe w poprzednich
    technologiach. To drugi powód moich wizyt.


  • 9. Data: 2009-12-11 21:13:18
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: Giecze <czechowski@post.#skasujto#.pl>

    Marek wrote:

    > > Zbyt wielu tzn... jaki procent?
    >
    > W grudniu wyszło 28%. Z czego 1% to IE8.
    >
    > > Każdy z tych niby-problemów można doprowadzić do kilku kroków w action
    > > który załatwi to w sekundę. Zapewniam.
    >
    > Tak, tylko trzeba składowe poznać tych akcji. Dzięki za pomoc na grupie
    > graficznej. Sam na to nie wpadłbym czytając po 10x dołączoną instrukcję choć
    > teoretycznie byłoby to możliwe do zrobienia.
    >
    > > Zauważam tyle:
    > >
    > > #container {
    > > width: 500px;
    > > }
    > >
    > > #leftColumn {
    > > width: 100px;
    > > float: left;
    > > }
    > >
    > > #rightColumn {
    > > height: 100%;
    > > }
    > >
    > > #leftColumn + #rightColumn {
    > > width: 400px;
    > > float: right;
    > > }
    >
    > No i właśnie tu jest problem - to nie zadziała na IE<8. Efekt jest taki:
    > tekst w lany w prawą kolumnę powoduje, że staje się ona wyższa od lewej. Od
    > momentu gdy tekst przekracza granicę dolnej krawędzi lewej ramki zaczyna
    > renderować się od krawędzi containtera. Styl:
    >
    > > #rightColumn {
    > > height: 100%;
    > > }

    A sprawdzałeś? Ten dopisek 100% jest tylko dla IE6 (niższych nie
    sprawdzałem). w IE 7 działa OK bez tego (jak w FF czy O, tak powinno).

    W dobrych przeglądarkach prawa następująca po lewej dostaje 400px i
    float i opływa, w złym IE6 prawa dostaje hacka. U mnie to działa (IE6,
    7, FF3, O9.6).

    > nie wniesie skutku dlatego bo ten container nie posiada narzuconej wysokości
    > i zgodnie z dokumentacją:
    > http://www.w3.org/TR/CSS21/visudet.html#propdef-heig
    ht
    > 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), and this element
    > is not absolutely positioned, the value computes to 'auto'

    bo to jest tylko na IE6, gdzie błędem naprawia się inny błąd.

    GC


  • 10. Data: 2009-12-11 22:01:10
    Temat: Re: CSS - jak zrobić 2 kolumny
    Od: "Marek" <m...@s...interia.pl>

    > A sprawdzałeś? Ten dopisek 100% jest tylko dla IE6 (niższych nie
    > sprawdzałem). w IE 7 działa OK bez tego (jak w FF czy O, tak powinno).

    Ups, dałem ciała. Zrobiłem literówkę w stylach i dlatego nie zadziałało.
    Faktycznie pomaga. Dzięki po raz 2 :-)

    > bo to jest tylko na IE6, gdzie błędem naprawia się inny błąd.

    Tak, już trochę wypadłem z dziedziny hacków IE6. Wspominałeś, że poradziłeś
    sobie z przypadkem menu. Czy mógłbyś rozwinąć wątek przy moim poscie "CSS -
    problem z prostym menu". Mam już pewną koncepcję obejścia z zastosowaniem
    podwójnych tagów np. stosując <div><span>tekst menu</span></div> i nadając
    lewe wcięcie dla spanów. Wtedy zagnieżdżenie opcji w opcji zadziała.
    Jednakże wolę posłuchać mniej rozrzutnych propozycji.


strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: