-
1. Data: 2010-01-26 17:50:37
Temat: CSS - Jak pozbyć się collapsing margins?
Od: "Marek" <m...@s...interia.pl>
Witam,
Ogarnia mnie powoli frustracja - może ktoś z Was mnie oświeci. Mianowicie
mam problem w pozbyciu się irytującej własności CSS jaką jest collapsing
margins. Mam bloki jeden pod drugim z okrreślonym margin-bottom i chcę
używać tej właściwości. Jednakże element otaczający te bloki musi mieć
zerowy margines poniżej siebie. Co należy zrobić aby tak się stało ?
Przy okazji: dlaczego ta własność CSS nazywa się collapsing margins zamiast
annoying margins lub fucking margins?
-
2. Data: 2010-01-26 18:45:44
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: NotBear <p...@i...pl>
On 2010-01-26 18:50, Marek wrote:
> [...] Jednakże element otaczający
> te bloki musi mieć zerowy margines poniżej siebie. Co należy zrobić aby
> tak się stało ?
W zaleznosci od mozliwosci i potrzeb:
a) wyzerowac margines w ostatnim wewn. bloku, np.:
div:last-child{margin-bottom:0;}
b) ustawic otaczajacemu elementowi niezerowy border-bottom lub
padding-bottom
--
NotBear
-
3. Data: 2010-01-27 08:15:03
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: Maciej Łebkowski <p...@d...one.pl.invalid>
Dnia 26-01-2010 o 18:50:37 Marek <m...@s...interia.pl> napisał(a):
> Przy okazji: dlaczego ta własność CSS nazywa się collapsing margins zamiast
> annoying margins lub fucking margins?
You're doing it wrong!
Jeszcze nigdy jakoś szczególnie mi ta cecha nie przeszkadzała.
http://www.w3.org/TR/CSS21/box.html#collapsing-margi
ns
Podejrzewam, że najprościej byłoby zrobić floata, albo tak jak kolega
zaproponował pobawić się border/padding (to faktycznie działa, z tego
co pamiętam, choć na podstawie specki nie jestem w stanie stwierdzić,
na jakiej podstawie).
--
Maciej Łebkowski
http://lebkowski.name/me
-
4. Data: 2010-01-27 12:34:13
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: NotBear <p...@i...pl>
On 2010-01-27 09:15, Maciej Łebkowski wrote:
> [...] na podstawie specki nie jestem w stanie stwierdzić,
> na jakiej podstawie).
Z podanej lokalizacji:
"The bottom margin of an in-flow block-level element with a 'height' of
'auto' is adjoining to its last in-flow block-level child's bottom
margin if the element has no bottom padding or border."
czyli w zgrubnym tlumaczeniu:
"Dolny margines elementu blokowego, w podstawowym biegu dokumentu,
majacego wysokosc:auto, jest sasiadujacym dla dolnego marginesu
ostatniego blokowego bezposredniego potomka w podstawowym biegu, o ile
element nie ma ustawionego dolnego paddingu ani obramowania"
A jesli marginesy pionowe sa sasiadujace (adjoining), to dziala zapadanie.
Z powyzszego wynika kolejny sposob na likwidacje zapadania: ustawic
kontenerowi konkretna wartosc wysokosci.
I jeszcze jeden sposob po przeczytaniu speca: kontenerowi nadac wlasnosc
overflow inna niz visible.
--
NotBear
-
5. Data: 2010-01-27 13:08:27
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: Maciej Łebkowski <p...@d...one.pl.invalid>
Dnia 27-01-2010 o 13:34:13 NotBear <p...@i...pl> napisał(a):
>> [...] na podstawie specki nie jestem w stanie stwierdzić,
>> na jakiej podstawie).
> Z podanej lokalizacji:
> "The bottom margin of an in-flow block-level element with a 'height' of
> 'auto' is adjoining to its last in-flow block-level child's bottom
> margin if the element has no bottom padding or border."
Right, nie doczytałem do tego momentu.
--
Maciej Łebkowski
http://lebkowski.name/me
-
6. Data: 2010-01-29 11:38:47
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: Peter May <p...@p...fm>
W dniu 2010-01-26 18:50, Marek pisze:
> Witam,
>
> Ogarnia mnie powoli frustracja - może ktoś z Was mnie oświeci.
> Mianowicie mam problem w pozbyciu się irytującej własności CSS jaką jest
> collapsing margins. Mam bloki jeden pod drugim z okrreślonym
> margin-bottom i chcę używać tej właściwości. Jednakże element otaczający
> te bloki musi mieć zerowy margines poniżej siebie. Co należy zrobić aby
> tak się stało ?
>
> Przy okazji: dlaczego ta własność CSS nazywa się collapsing margins
> zamiast annoying margins lub fucking margins?
Może to coś pomoże:
http://www.cssmania.pl/csswiki/index.php?title=Cells
pacing
--
Peter
Internet Explorer - program do ściągnięcia przeglądarki internetowej
-
7. Data: 2010-01-30 16:39:35
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: "Marek" <m...@s...interia.pl>
Przepraszam grupowiczów za moje milczenie. Czasami przez kilka dni nie mam
dostępu do serwera grup.
Użytkownik "Maciej Łebkowski" <p...@d...one.pl.invalid> napisał w wiadomości
news:op.u66mjdbwhp0a8j@mlebkowski.localnet...
Dnia 26-01-2010 o 18:50:37 Marek <m...@s...interia.pl> napisał(a):
>Jeszcze nigdy jakoś szczególnie mi ta cecha nie przeszkadzała.
A mi owszem. Mam kilka bloków jeden pod drugim. Każdy z nich musi mieć
marginesy pionowe. Paddingu nie mogę zastosować w miejsce marginesów gdyż
padding jest już używaney do tego aby zawartość bloku była odsunięta od jego
krawędzi. Blok zawiera jakieś tło. W związku z tym aby wizulanie powstała
przerwa pionowa miedzy blokami stosuję marginesy. Problem w tym, że po
ostanim elemencie margines osiąga podwójną wartość wskutek zapadania. W
efekcie powstaje kobylasta przerwa miedzy ostatnim blokiem a kolejnym
elementem.
>Podejrzewam, że najprościej byłoby zrobić floata,
Tak też zrobiłem lecz potem trzeba stosować "gaszenie" tego floata
konstrukcją <div style="clear:both"></div> lub jeśli się da - to CSS w
containerze. Może mam maniakalą potrzebę unikania nadmiarowych tagów w
kodzie HTML. :-)
>albo tak jak kolega
>zaproponował pobawić się border/padding (to faktycznie działa, z tego
>co pamiętam, choć na podstawie specki nie jestem w stanie stwierdzić,
>na jakiej podstawie).
j/w
-
8. Data: 2010-01-30 16:58:01
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: "Marek" <m...@s...interia.pl>
> Z powyzszego wynika kolejny sposob na likwidacje zapadania: ustawic
> kontenerowi konkretna wartosc wysokosci.
Nie da rady w tym konkretnym przypadku jaki pchnął mnie z pytaniem na grupę.
> I jeszcze jeden sposob po przeczytaniu speca: kontenerowi nadac wlasnosc
> overflow inna niz visible.
Hmmm... może w tym przypadku da się to zrobić. Muszę jednakże sprawdzić czy
scrole nie wystąpią przy wartości "auto". Niedawno miałem z tym problem pod
FF gdy wewnętrzny element stosował ujemne marginesy procentowe. Mimo iż
mieścił się w kontenerze to i tak scroll występował.
-
9. Data: 2010-01-30 17:03:40
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: "Marek" <m...@s...interia.pl>
> Może to coś pomoże:
> http://www.cssmania.pl/csswiki/index.php?title=Cells
pacing
Ale ten artykuł dotyczy tabel a nie bloków.
-
10. Data: 2010-02-01 10:02:29
Temat: Re: CSS - Jak pozbyć się collapsing margins?
Od: Maciej Łebkowski <p...@d...one.pl.invalid>
Dnia 30-01-2010 o 17:39:35 Marek <m...@s...interia.pl> napisał(a):
> Tak też zrobiłem lecz potem trzeba stosować "gaszenie" tego floata konstrukcją
> <div style="clear:both"></div> lub jeśli się da - to CSS w containerze. Może
> mam maniakalą potrzebę unikania nadmiarowych tagów w kodzie HTML.
Tak się robiło dawno temu. Teraz się robi overflow:auto lub overflow:hidden
--
Maciej Łebkowski
http://lebkowski.name/me