[CSS] Problem z klasami

0

Witam,
Napisałem taką małą stronkę żeby coś sprawdzić:

<!DOCTYPE html PUBLIC "-//W3C//DTD xhtml1 1.0 transitional//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml - transitional,dtd">
<html>
<head>
<title>Tytul</title>
<meta name="keywords" content="cos, cus">
<Style>
.aaa {color: red};
p {text-indent: 20px};
</style>
</head>
<body>
<p class="aaa">joijsdoijosjsidk</p>
<p>sodksoasdsadjjks</p>
</body>
</html>

I teraz mam taki problem: w sekcji HEAD umieściłem przecież linike p {text-indent: 20px};, przez co każdy akapit powinien się wcinać o 20 pixeli. W sekcji BODY dałem 2 akapity - jeden zwykły, a drugiemu dałem klasę aaa. W HEAD umieściłem instrukcję, że ta klasa ma być na czerwono. Po pokazaniu strony, tekst z klasy aaa wyświetlla się poprawnie na czerwono, natomiast ten drugi tekst nie zaczyna się od wcięcia, ak jak powinien. Dlaczego?

0

Dlatego masz błąd, bo nie korzystasz z walidatora HTML oraz walidatora CSS. Masz tam zwykłe błędy składni, czyli nawet "to się nie kompiluje", mówiąc w terminologii języków takich jak C++.

Po regule CSS (reguła to np. "p { color: red; }") NIE WOLNO stawiać średników. Średniki TRZEBA stawiać po każdej deklaracji CSS (deklaracja to samo "color: red;") ewentualnie za wyjątkiem ostatniej deklaracji w regule, przy czym i tak nie polecam średnika opuszczać.

Jeśli interesuje Cię, czemu pierwsza reguła zadziałała, a druga nie, to Ci tłumaczę.

Pierwsza reguła jest cała OK. Selektor ".aaa" i jedna deklaracja. To jest przetworzone OK. Zaraz dalej powinna zaczynać się następna reguła, a ściślej jej selektor. A w tym miejscu Ty masz średnik. Średnik, który jest zabroniony. Średnik ten jest interpretowany jako początek selektora w nowej regule. Czyli druga reguła nie ma selektora "p", tak jak chciałeś, tylko ma selektor ";[enter]p". Ten selektor jest niepoprawny i nie dopasowuje niczego, włącznie z elementami p.

Skasuj niepotrzebne średniki, a raczej wstaw je we właściwe miejsce. Czyli nie za znakami "}", tylko przed nimi.

Z pomocą walidatora -- po nauczeniu się jego komunikatów -- wykryłbyś takie błędy sam w 2 minuty. I zaoszczędziłbyś czas, nie musząc pytać się na forum.

Walidujcie swoje strony, ludzie! Walidatory to nie tylko zabawa standardystów i nie tylko kwestie ideowe. To przede wszystkim pomoc dla Was!

0

Dzięki za pomoc ;) Poprawiłem składnię i wszystko "się kompiluje" :). Zaraz zobaczę jeszcze te walidatory.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0