eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwHTML - funkcjonalność znaczników...Re: HTML - funkcjonalność znaczników...
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: porneL <n...@p...net>
    Newsgroups: pl.comp.www
    Subject: Re: HTML - funkcjonalność znaczników...
    Date: Fri, 06 Jan 2012 02:36:14 -0000
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 138
    Message-ID: <o...@a...local>
    References: <1...@4...net>
    <o...@a...local>
    <6fiuqroyami5$.1t4bmztj83ie9.dlg@40tude.net>
    NNTP-Posting-Host: 96.95.187.81.in-addr.arpa
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1325817376 8109 81.187.95.96 (6 Jan 2012 02:36:16 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 6 Jan 2012 02:36:16 +0000 (UTC)
    X-User: pornelspam
    User-Agent: Opera Mail/11.61 (MacIntel)
    Xref: news-archive.icm.edu.pl pl.comp.www:400112
    [ ukryj nagłówki ]

    On Thu, 05 Jan 2012 22:02:10 -0000, Marek <p...@s...com> wrote:

    >> To jest reguła w CSS. Komórki tabel mają inny box-model i robienie z
    >> nich
    >> "containing block" komplikuje wiele rzeczy.
    >
    > A czy możesz podać jakiś przykład w jaki position: relative mógłby
    > zaszkodzić w "działaniu" komórki tabeli?

    Nie tyle szkodzi, co komplikuje implementację, bo pozycjonowanie zależy od
    wymiarów containing block, a wymiary komórek są obliczane w zupełnie inny
    sposób, niż inne boksy.

    Możliwe, że to ograniczenie zostanie w przyszłości zniesione. Było w
    czasach, gdy żadna przeglądarka nie przechodziła Acid2 i wszystkie miały
    problemy nawet z prostym position:relative :)

    > Jest też pewna sprzeczność. Konstrukcja:
    >
    > <div style="display: table-cell">
    > <div style="position:relative>
    > ....tu kod
    > </div>
    > </div>
    >
    > zadziała. Czyli pozycjonowanie elementu względem górnego lewego rogu
    > komórki może zadziałać poprawnie za pomocą takiej sztuczki. Jednakże
    > będzie
    > problem z równaniem do dołu tejże komórki gdy ma ona automatyczną
    > wysokość.
    >
    > A'propos: kolejnym takim absurdem jest dla mnie to, że vertical-align
    > może
    > działać tylko w obrębie komórki tabeli. Dlaczego nie można wyrównać
    > zawartości DIVa do jego dolnej krawędzi a do prawej lub lewej owszem?

    CSS2 został zaprojektowany do progresywnego renderowania. Elementy później
    w dokumencie nie powinny wypływać na to, co zostało narysowane na ekranie.
    Z tego samego powodu też nie było selektora rodzica ("a < img" albo "$a >
    img" w CSS4). Z tej cechy korzystał silnik Opery 6.

    CSS nie miał możliwości "naprawienia" zachowania komórek tabel (które
    niegdyś nie były progresywnie renderowane i do dziś są problematyczne i
    powolne do progresywnego renderowania), więc też nie było powodu, żeby
    ograniczać vertical-align.

    Nowe właściwości CSS już nie trzymają się tych ograniczeń (np. możesz mieć
    vertical-align z flex-box).

    > Pogubiłem się. Wydaje mi się to banalne:
    >
    > <p>aaa</p>
    > <p>bbb</p>
    > <ul>
    > ....
    >
    > gdzie
    >
    > p, ul {
    > margin-top: 0; - zero musi być jako zabezpieczenie przed collapsing
    > margins
    > margin-bottom: 10px;
    > }

    Ale wtedy:

    <h1>x</h1>
    <p>

    się zleje.

    Jak dodasz:

    <div style=background:red>
    <p/>
    <p/>
    </div>

    to będziesz mieć odstęp na dole, ale nie na górze, więc wtedy dajesz
    p:last-child {margin:0}, ale wtedy zepsuje ci się:

    <div>
    <p/>
    </div>
    <p/>

    Ponadto:

    <ul>
    <li><p/></li>
    <li><p/></li>
    </ul>

    będzie miało podwójne marginesy na około listy. No i dorzucisz jeszcze
    więcej selektorów, żeby zrobić własne zapadanie marginesów...

    > Natomiast nie zapanuję nad tym gdy:
    >
    > <head>
    > <style type="text/css">
    > p {
    > margin-top: 20px;
    > margin-bottom: 0px;
    > }
    > </style>
    > </head>
    >
    > <body style="margin:0; padding:0;">
    > <div style="background-color:#090">
    > <p>aaaaa</p>
    > </div>
    > </body>
    >
    > Wtedy pomiędzy <div> a <body> tworzy się dziura. Ma to przykre
    > konsekwencje
    > np. dla twórców CMSów.

    To zachowanie jest potrzebne dla przykładu z listą, które podałem powyżej.
    Ponadto bez zapadania marginesów nie było by różnicy między margin a
    padding w takiej liście (nie było by możliwości dodania tła do zawartości
    bez dodawania tła pod marginesami).

    Jak dla <div> dasz border/padding-top:1px albo overflow:hidden, to
    margines się przez to nie "przebije".

    >> (np. stylami w MS Word [amatorskie robienie
    >> odstępów "enterami" się nie liczy]) IMHO tragedia.
    >
    > Wcale nie! Dzięki wielokrotnym spacjom (najczęściej w Wordzie
    > popełnianych)
    > nauczyłem się kiedyś wyrażeń regularnych do usuwania wielokrotnych spacji
    > :-D

    Jak ci pasuje "box model Worda", to spokojnie możesz używać &nbsp; i <br>
    zamiast CSS ;)

    --
    regards, porneL

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: