IE, Opera, style i JS

0

Więc tak. Problem numer jeden - kolorowanie linii < hr >

W pliku css zrobiłem tak:
HR {color: red}

W IE linia jest piękna czerwona. Natomiast w Operze biała.
Czemu? I jak zmienić?

Kolejna sprawa - JS.
Chodzi o rzecz taką. Po najechaniu na obrazek, ma się on zmienić. Niby nic prostszego:

start="start.gif";
start_over="start_over.gif";

function over(what, source)
{
  what.src=source;
}

function out(what, source)
{
  what.src=source;
}

document.write('<center><p name="menu">M E N U</p></center>');
document.write('<table cols=1 rows=6 height=180 width=180 border=0>');
document.write('<tr><td><img src="start.gif" onMouseOver="over(this, start_over)" onMouseOut="out(this, start)" /></td></tr>');
/*tu inne wiersze na tej samej zasadzie, które działają :| */
document.write('</table>');

Problem polega na tym, że gdy schodzę kursorem myszy z obrazka w IE pojaiwa się ten czerwony krzyżyk(jakby nie było pliku). Natomiast w Operze jest wszystko ok.

Zwariować można. O co tu chodzi?

0

Jak chodzi o pytanie pierwsze, radzę zajrzećdo dokumentacji CSS. IE ma to do siebie, że często interpretuje więcej niż jest w standartach, dlatego kiepsko wykonane strony działają tylko pod IE, bo kiepscy twórcy stron nie przejmują się standartami ani innymi przeglądarkami. Możliwe, że jakoś inaczej powinno się to nazywać (nie color: tylko naprzykład cośtam-color: albo coś takiego), albo w ogóle nie ma w standarcie kolorowania linii HR, więc nie ma się co przejmować, że Opera tego nie obsługuje.

0
Adam.Pilorz napisał(a)

Jak chodzi o pytanie pierwsze, radzę zajrzećdo dokumentacji CSS. IE ma to do siebie, że często interpretuje więcej niż jest w standartach

Wg W3C hr ma atrybut color. Czyli Opera tego po prostu chyba nie obsługuje.
Dobrze, a co z drugim pytaniem?

0
Juhas napisał(a)
Adam.Pilorz napisał(a)

Jak chodzi o pytanie pierwsze, radzę zajrzećdo dokumentacji CSS. IE ma to do siebie, że często interpretuje więcej niż jest w standartach

Wg W3C hr ma atrybut color. Czyli Opera tego po prostu chyba nie obsługuje.
Dobrze, a co z drugim pytaniem?

Opera obsluguje HR jak i styl zadziala. Nic nie dojrzalem w specyfikacjach Opery mowiacych inaczej. Kod sprawdzalem validatorami W3C i wszystko bylo w porzadku. To dopiero bylo zastanawiajace ;) I jak zwykle rozwiazanie okazalo sie smiesznie proste.

Styl (ja to akurat wrzucilem w tym samym dokumencie):

<style type="text/css">
hr {
	background-color: blue;
}
</style>

a dla HR tak:

hr align="center" size="3"
lub tak:
hr align="center" noshade

oczywiscie poszczegolne linie hr pomiedzy <> - tylko cos mi nawet w code pokazywalo linie zamiast zrodla

Zeby HR mialo kolorek uzyj atrybutu background-color
bez podania size, albo z size mniejszym od 3 zmiany po prostu w operze nie sa widoczne. Ewentualnie "splaszcz" linie atrybutem noshade wtedy kolorek pieknie rozkwitnie na twoim ekranie ;)</i>

0

OK, tak jak mówił Ryandell, IE przyjmuje color, natomiast opera przyjmuje background-color. Więc należało te obydiwe rzeczy umieścić w stylu, pamiętając oczywiście o noshade :)

Jeśli natomiast chodzi o mój drugi problem, to okazało się, że nazewnictwo jest smutne.

Tzn:

start="start.gif";

Okazuje się, że start w IE jest widziane może jako jakaś stała, czy coś. Po podejrzeniu wartości zmiennej w trakcie wywołania onMouseOut, okazalo się, że ma wartość: "fileopen".

Więc wystarczyło zmienić nazwę zmiennej.

0

I znow jak sie okazalo rozwiazanie problemu jest banalnie proste ;) Dzieki za informacje :D

Pozwole sobie w tym miejscu na mala sugestie.
Obserwujac kod mozna zauwazyc, iz obie funkcje over i out sa takie same, a zmienia sie tylko drugi parametr. Nie wiem czy masz w tym jakis cel, ale ten sam efekt tzw. rollover osiagniesz uzywajac tylko jednej z tych funkcji i podajac rozne obrazki dla stanu over i out.
Czyli po malej modyfikacji mialbys:

document.write('<tr><td><img src="start.gif" onMouseOver="swap(this, imagestart_over)" onMouseOut="swap(this, imagestart)" /></td></tr>');

A funkcja swap to po prostu jedna z twoich funkcji tylko, ze zmieniona nazwa ;)

Pozdrawiam

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