eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.www › CSS - problem z selektorem
Ilość wypowiedzi w tym wątku: 35

  • 1. Data: 2012-02-26 10:46:56
    Temat: CSS - problem z selektorem
    Od: Marek <p...@s...com>

    Witam,

    Mamy w uproszczeniu kod HTML:

    <div>
    <section>...</section>
    <aside>...</aside>
    </div>

    <section> i <aside> stanowią dwie kolumny.

    section {
    float: left;
    width: 700px;
    }

    aside {
    float: left;
    width: 200px;
    }

    Sekcja <aside> może nie pojawiać się w kodzie HTML lecz nie musi (CMS ją
    moze wygenerować lub nie). Chciałbym aby w przypadku gdy nie ma <aside>
    ustawić szerokość <section> na np. 800px. Czy da się to jakoś zadeklarować
    w CSS?


  • 2. Data: 2012-02-26 12:02:21
    Temat: Re: CSS - problem z selektorem
    Od: Tomasz Sowa <t...@t...NOSPAM.org>

    Dnia Sun, 26 Feb 2012 11:46:56 +0100, Marek napisał(a):

    > <div>
    > <section>...</section>
    > <aside>...</aside>
    > </div>

    Gdybyś zamienił kolejność section i aside, czyli:

    <div>
    <aside>...</aside>
    <section>...</section>
    </div>

    i jako float dał im right, czyli:
    section {
    float: right;
    width: 700px;
    }

    aside {
    float: right;
    width: 200px;
    }

    to jeśli cms nie wyprodukuje aside, czyli będzie:
    <div>
    <section>sekcja</section>
    </div>

    to możesz to złapać przy pomocy np:
    div > section:first-child {
    width: 900px;
    }

    ale jeśli masz tam cms-a to ja bym nie kombinował tylko wygenerował section
    z odpowiednią klasą:
    <section class="foo">...</section>

    --
    Tomek


  • 3. Data: 2012-02-26 13:00:04
    Temat: Re: CSS - problem z selektorem
    Od: Marek <p...@s...com>

    Dnia Sun, 26 Feb 2012 13:02:21 +0100, Tomasz Sowa napisał(a):

    > Gdybyś zamienił kolejność section i aside, czyli:
    >
    > <div>
    > <aside>...</aside>
    > <section>...</section>
    > </div>
    >
    > i jako float dał im right, czyli:
    > section {
    > float: right;
    > width: 700px;
    > }
    >
    > aside {
    > float: right;
    > width: 200px;
    > }
    >
    > to jeśli cms nie wyprodukuje aside, czyli będzie:
    > <div>
    > <section>sekcja</section>
    > </div>
    >
    > to możesz to złapać przy pomocy np:
    > div > section:first-child {
    > width: 900px;
    > }

    Tak właśnie zamierzałem zrobić lecz to trochę przeróbek będzie kosztowało -
    stąd ten post :-( Zastanawiałem się nad wykorzystaniem JS do sprawdzania
    czy istnieje <aside> i jeśli tak, to regulowania szerokości <section>, lecz
    to jeszcze bardziej dziwaczne...

    > ale jeśli masz tam cms-a to ja bym nie kombinował tylko wygenerował section
    > z odpowiednią klasą:
    > <section class="foo">...</section>

    Zamiast <aside>? A co to zmieni?


  • 4. Data: 2012-02-26 13:12:24
    Temat: Re: CSS - problem z selektorem
    Od: Mirosław Zalewski <miniopl@CUT_THIS.gmail.com>

    niedziela, 26 lutego 2012 14:00. Wielka mądrość na czytelników pl.comp.www
    spłynęła, gdy tako rzekł(a) Marek:

    >> ale jeśli masz tam cms-a to ja bym nie kombinował tylko wygenerował
    >> section z odpowiednią klasą:
    >> <section class="foo">...</section>
    >
    > Zamiast <aside>? A co to zmieni?

    Jak masz aside, to CMS generuje:
    <section></section>
    <aside></aside>

    jak nie masz, to generuje:
    <section class="foo"></section>

    W CSS-ie:

    section {
    float: left;
    width: 700px;
    }

    section.foo {
    width: 800px;
    }
    --
    Niżej podpisany, zamieszkały w http://minio.xt.pl ,
    Mirosław Zalewski


  • 5. Data: 2012-02-26 13:39:32
    Temat: Re: CSS - problem z selektorem
    Od: satellite <p...@g...pl>

    W dniu niedziela, 26 lutego 2012, 11:46:56 UTC+1 użytkownik Marek napisał:

    > Sekcja <aside> może nie pojawiać się w kodzie HTML lecz nie musi (CMS ją
    > moze wygenerować lub nie). Chciałbym aby w przypadku gdy nie ma <aside>
    > ustawić szerokość <section> na np. 800px. Czy da się to jakoś zadeklarować
    > w CSS?

    zobacz cos takiego :

    div{
    display: table;
    }

    div section, div aside{
    display: table-cell;
    }

    div section{
    width: 100%;
    }

    div aside{
    width: 200px;
    }






  • 6. Data: 2012-02-26 19:37:25
    Temat: Re: CSS - problem z selektorem
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 26-02-2012 o 13:02:21 Tomasz Sowa <t...@t...nospam.org> napisał(a):

    > Dnia Sun, 26 Feb 2012 11:46:56 +0100, Marek napisał(a):
    >
    >> <div>
    >> <section>...</section>
    >> <aside>...</aside>
    >> </div>
    >
    > Gdybyś zamienił kolejność section i aside, czyli:
    >
    > <div>
    > <aside>...</aside>
    > <section>...</section>
    > </div>
    >
    > i jako float dał im right, czyli:
    > section {
    > float: right;
    > width: 700px;
    > }
    >
    > aside {
    > float: right;
    > width: 200px;
    > }
    >
    > to jeśli cms nie wyprodukuje aside, czyli będzie:
    > <div>
    > <section>sekcja</section>
    > </div>
    >
    > to możesz to złapać przy pomocy np:
    > div > section:first-child {
    > width: 900px;
    > }

    czemu nie :last-child, nie wymagający zamiany kolejności?

    --
    Jordan Szubert


  • 7. Data: 2012-02-26 23:10:17
    Temat: Re: CSS - problem z selektorem
    Od: Marek <p...@s...com>

    Dnia Sun, 26 Feb 2012 14:12:24 +0100, Mirosław Zalewski napisał(a):

    > niedziela, 26 lutego 2012 14:00. Wielka mądrość na czytelników pl.comp.www
    > spłynęła, gdy tako rzekł(a) Marek:
    >
    >>> ale jeśli masz tam cms-a to ja bym nie kombinował tylko wygenerował
    >>> section z odpowiednią klasą:
    >>> <section class="foo">...</section>
    >>
    >> Zamiast <aside>? A co to zmieni?
    >
    > Jak masz aside, to CMS generuje:
    > <section></section>
    > <aside></aside>
    >
    > jak nie masz, to generuje:
    > <section class="foo"></section>
    >
    > W CSS-ie:
    >
    > section {
    > float: left;
    > width: 700px;
    > }
    >
    > section.foo {
    > width: 800px;
    > }

    Rozumiem, chodzi o to aby CMS dodawał klasę "foo" do elementu w przypadku
    gdy znika jedna kolumna? Jeśli tak, to jest to dość kłopotliwe rozwiązanie.
    W section mamy treść a aside to galeria zdjęć. Inny moduł ją generuje. Tak
    więc moduł od treści nie wie, że galeria będzie pusta w danym przypadku a w
    innym nie. Mogę oczywiście to zmienić ale tak czy owak unikam wstrzykiwania
    przez CMS czegokolwiek do HTML. CMS może jakiś kod HTML zawarty w formatce
    powielać itp. aby zachować pełną separację kodu HTML i oprogramowania.


  • 8. Data: 2012-02-26 23:18:49
    Temat: Re: CSS - problem z selektorem
    Od: Marek <p...@s...com>

    Dnia Sun, 26 Feb 2012 20:37:25 +0100, Jordan Szubert napisał(a):

    >
    > czemu nie :last-child, nie wymagający zamiany kolejności?

    A jak to miałoby zadziałać? Przy jednym <section> będzie klasa wskazywała
    na pierwszy element, a przy dwóch - na drugi. Przy jednym elemencie
    chciałbym mieć szerokość 800px. Prz dwóch, pierwszy 700px, drugi 200px. Jak
    to zadeklarować?


  • 9. Data: 2012-02-26 23:24:30
    Temat: Re: CSS - problem z selektorem
    Od: Marek <p...@s...com>

    Dnia Sun, 26 Feb 2012 05:39:32 -0800 (PST), satellite napisał(a):

    > zobacz cos takiego :
    >
    > div{
    > display: table;
    > }
    >
    > div section, div aside{
    > display: table-cell;
    > }
    >
    > div section{
    > width: 100%;
    > }

    Tzn szerokość należy pozostawić na auto chyba? Wtedy przy jednej sekcji
    wyniesie ona de facto 100%, przy dwóch: szerokość tabeli minus szerokość
    drugiej kolumny. A więc mogłoby zadziałać. Jest też mały szkopuł. Otóż
    <section> przy braku obecności <aside> ma być mniejsze od 100% i wynosić
    800px. Czyli obecność lub nieobecność drugiego elementu zmienia ustawienia
    stylu dla poprzednika. Niezły rebus, prawda :-)


  • 10. Data: 2012-02-27 00:56:15
    Temat: Re: CSS - problem z selektorem
    Od: "Jordan Szubert" <u...@j...us.to>

    Dnia 27-02-2012 o 00:18:49 Marek <p...@s...com> napisał(a):

    > Dnia Sun, 26 Feb 2012 20:37:25 +0100, Jordan Szubert napisał(a):
    >
    >>
    >> czemu nie :last-child, nie wymagający zamiany kolejności?
    >
    > A jak to miałoby zadziałać? Przy jednym <section> będzie klasa wskazywała
    > na pierwszy element, a przy dwóch - na drugi. Przy jednym elemencie
    > chciałbym mieć szerokość 800px. Prz dwóch, pierwszy 700px, drugi 200px.
    > Jak
    > to zadeklarować?

    <div>
    <section>...</section>
    <aside>...</aside>
    </div>

    badz

    <div>
    <section>...</section>
    </div>

    oraz

    section {
    float: right;
    width: 700px;
    }
    aside {
    float: right;
    width: 200px;
    }
    div > section:last-child {
    width: 800px;
    }

    czemu nie?
    w pierwotnych wymaganiach nie bylo nic o dwoch <section/>, 1 <section/>
    oraz 0 lub 1 <aside/>

    --
    Jordan Szubert

strony : [ 1 ] . 2 ... 4


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: