Autor Zpráva
Palidi
Profil
Narazil jsem na problem ktery neumim vyresit.
Dle specifikace nelze pouzit u tagu frameset atribut border. Kdyz se ale nepouzije, zobrazi se mezi ramy prazdny prostor - shodne v IE, Opere i Firefoxu. Ta mezera nereaguje na zadne pokusy o to ji odstranit pomoci CSS. Hledal jsem nejake reseni na webu ale nic jsem nikde nenasel. Nasel jsem jen moznosti :
- vykaslat se na validitu a ten border="0" tam nacpat (tohle zatim pouzivam)
- zduvodneni ze ty mezery tam musi byt aby bylo mozne menit velikosti ramu a bylo je za co uchopit (proto pry to neni v html 4.01 Frameset zahrnuto, coz je sice pekne ale ja tam ty mezery nechci)
- navrh nepouzivat frame (predelavam jen kodovani a delam to vicejazycne, design a ovladani musi zustat)
- udelat si vlastni DTD (... to to radsi necham nevalidni)
- 90% odpovedi na tento problem (byt dobre popsany) byly trivialni odpovedi typu { border: none;} nebo jeho uplne nepochopeni

Docela mne stve ze zakladni stranka bude nevalidni. Neresili jste tohle uz nekdo ?
llook
Profil
Podobný problém jsem ještě neřešil, ale pokud to má být validní, co takhle použít nějaké starší DTD? Teď nevím jistě, ale myslím že v HTML 3.2 to validní bylo. Rozhodně lepší nápad, než udělat si vlastní DTD.
Anonymní
Profil *
Nezkousel jsem primo zadat 3.2 ale ve validatoru jsem zkousel vsechny mozne kombinace predefinovani dokumentu. Validace na 3.2 hlasi :

Line 12, column 16: there is no attribute "ROWS"
Line 12, column 38: there is no attribute "BORDER"
Line 12, column 41: element "FRAMESET" undefined

A v dokumentaci 3.2 se frameset ani nevyskytuje. Asi to nebylo soucasti standardu w3c ale jen neoficialni doplnek browseru.
habendorf
Profil
Dej sem link na tu stránku, jinak se asi nehnem z místa.
Palidi
Profil
link neni moc vhodny - s tim se spatne experimentuje. Takze sem hazu ukazkovy zdrojak - stranka rozdelen na dva frame.

frametest.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test frame</title>
</head>
<frameset rows="200px,*" border="0">
<frame name="F1" src="body_black.html" frameborder="0" noresize>
<frame name="F2" src="body_blue.html" frameborder="0" noresize>
</frameset>
</html>

body_black.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Black Frame</title>
<style type="text/css">
body {background-color: black; margin: 0px;}
</style>
</head>
<body class="b_main">
</body>
</html>

body_blue.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Blue Frame</title>
<style type="text/css">
body {background-color: blue; margin: 0px;}
</style>
</head>
<body class="b_main">
</body>
</html>


Takhle to zobrazuje jak ma. Ale neni to validni. Pokud se vypusti border=0 tak to je validni ale je tam pruh.

Ty linky jsem preci jen dam aby to bylo zrejme

pracuje jak ma ale neni validni : http://holy.adt.cz/test/frametest.html
je validni ale k nicemu : http://holy.adt.cz/test/framevalid.html
Fred
Profil
Taky jsem to nejednou hledal (kvůli sidebaru do mozilly, aby šel používat i v IE, jako frameset), ale nenašel, zkoušel jsem nějaký javascripty , něco jako document.getElementsByTagName('frameset').setAttribute('border','0') (z hlavy budou chyby) , ale nezdařilo se, tady píšou http://www.mozilla.org/docs/dom/domref/dom_frame_ref.html#998120 , že k frame přístup je, jak se dostat přes js k frameset to fakt nevím, třeba někdo poradí.
llook
Profil
To už bych to radši nechal rovnou nevalidní, než abych to znevalidnil javascriptem.
Pokud neexistuje DTD ve kterém by to bylo v pořádku, tak bych nechal HTML 4.01 s jednou chybou.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0