Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS] Pozioma linia
Forum PHP.pl > Forum > Przedszkole
aeaeae
Może pytanie wydaje się banalne, ale męczę się nad tym już jakiś czas. Jak zrobić w IE (ja mam akurat IE6, ale myślę, że w późniejszych wersjach jest podobny problem) poziomą linię (niech będzie, że na całą szerokość) o wysokości dokładnie 1px. Próbowałem hr i div, ale zawsze wychodzi wysokość 2px mimo, że daję height:1. Zorientowałem się, że w IE blok nie może mieć mniejszej wysokości niż jedna linia czcionki dlatego daję font-size:0.

Naprawdę nie rozumiem czemu jest z tym aż taki kłopot. Nie chcę przecież nic innego jak dać na stronie element blokowy (obojętnie już jaki), który będzie miał jakiś tam mój kolor i wysokość 1. Tylko tyle.

HTML
  1. costam
  2. <div class="line"></div>
  3. costam


CSS
  1. *{margin:0;padding:0}
  2. .line{height:1;font-size:0;background-color:#FF0000}
Daiquiri
Nie mam na chwilę obecną dostępu do IE, ale
  1. hr {
  2. border: 0; margin: 0; padding: 0;
  3. height: 1px; border-top: 1px solid #FF0000;
  4. }
powinno chyba zadziałać.

Dlaczego ustawiasz height na 1?
aeaeae
Dzięki. Chyba zrobię po prostu tak, że dam div (nad tym miejscem, w którym planowałem linię) z border-bottom: 1px solid #FF0000. Lepsze by było rozwiązanie z hr, bo blok powyżej mógłbym modelować z większą swobodą (np. margin w takim wypadku odpada - muszę zagnieździć kolejnego div), ale mimo zerowania marginesów i obramowania hr w IE wciąż ma jakieś pozostałości po kilka px u góry i dołu (gdy zaznaczam kursorem w przeglądarce).

Może ktoś inny ma jeszcze jakąś propozycję?

"Dlaczego ustawiasz height na 1?"
Chcę mieć po prostu linie oddzielające tekst. Jakiś margines sobie dołożę potem, ale linia ma mieć właśnie 1px i tu jest problem, bo gdy już będę chciał wszystko dokładnie ułożyć, to w Firefoxie i IE będzie to inaczej wyglądało ze względu właśnie na ten dziwny dodatek do hr w IE.
Daiquiri
Bardziej ciekawił mnie 1 zamiast 1px.
aeaeae
Aaa, o to Ci chodziło. Z głupoty. tongue.gif
Mimo wszystko skopiowałem Twoje rozwiązanie (z "px") i hr w ie(6) wciąż ma po 7px dodatkowych u góry i dołu ...

Teraz moja linia wygląda tak:
  1. <div style="height:1px;border-top:1px solid #000000;font-size:0px"></div>


Zostaje tylko sprawa tego, że jedna przeglądarka zalicza border do height a druga nie (chyba tongue.gif), więc różnica wyniesie pomiędzy nimi 1px (tyle to przeżyję). No i dochodzi sprawa poprawności - wolałbym mieć hr tam gdzie myślę o linii i tam gdzie jej używam, a nie div.
Daiquiri
Nawet display: block, dla hr nie pomaga na ie6? Ona chyba wyświetla hr jako element inline, a reszta przeglądarek jako block, ale głowy nie dam.

Tak też nie pomaga na tę 10letnią przeglądarkę?
  1. hr {
  2. line-height:0px;
  3. font-size:0;
  4. border:0px;
  5. height: 0px;
  6. border-top:1px solid #FF0000;
  7. }
aeaeae
Jest niewzruszona. tongue.gif (na display:block też)
Właśnie sprawdziłem na IE7 pod Vistą. Tam też identyczny problem.

Czy mógłby ktoś sprawdzić dla nowszych IE?

Z tego, co czytam teraz na necie, to tragedia jest z kompatybilnością hr. Każda przeglądarka zupełnie inaczej to wyświetla: niektóre np. budują hr z border, podczas gdy inne inaczej. OMG, ja chcę prostą stronę napisać (przynajmniej pod względem html/css), a tu takie zabawy, no nie ... co_jest.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.