Autor Zpráva
Hitman
Profil
Na webu mám mezeru asi 10px od horního okraje. Tak jsem si odfiltroval na jednoduchý kód:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>aaa</title>
</head>
<body>
<div id="stranka">
    Text.    
</div>
</body>
</html>

A mezera tam stále je. Pokud nastavím margin,padding 0, stejně tam je mezera asi jeden řádek. Když kliknu za title a pomalu odmazávám až po "<", uložím, mezera stále zůstává. Vrátím se do editoru, stisknu ještě 2x backspace, jakoby se nic nestane, uložím a "Text" už je standardně nahoře. Jedná se o BOM?

Používám dreamveawer a mám vkládání BOM vypnuté. Napadne vás něco?
Keeehi
Profil
Hitman:
A není to spíše defaultní margin/padding u html/body?

html, body {
    margin: 0;
    padding: 0;
}
anonymníí
Profil *
Keeehi:
Ten píše, že odstranil. Jinak nevím, kde se pořád bere to margin/padding u html/body. Je to 8px margin u body. Padding žádný, html také nic nemá.

body {margin: 0;}
Bubák
Profil
Na stránce, tedy v kódu "nějaké smetí" bude, co to přesně je zač by se dalo zjistit čímkoliv, co umí zobrazit hexa znaky, třebas PSPad, nebo online služba www.rexswain.com/httpview.html
Zda to umí zobrazit dreamveawer, netuším.
Taky bys mohl dát odkaz na živou ukázku problému.

Hitman:
stisknu ještě 2x backspace, jakoby se nic nestane, uložím a "Text" už je standardně nahoře.
Takže je po problému? Pokud ano a nestává se ti to často, tak bych to hodil za hlavu.
Hitman
Profil
anonymníí
No mě to zmizí, když odstraním tu mezeru před title. Nemusím odmazávat title, ale před tím je nějaký neřád který zlobí.

Bubák:
Moc se mi nechtělo stahovat PSpad, doufal jsem že někdo poradí přímo v DW, ale půjdu to zkusit. Ten online mi nepomůže, mám to společně s PHP, tak to musím upravit přímo tam.

Po problému je, ale jen na té testovací stránce, přímo na webu mám problém pořád.

//Tak ani PSPAD mi nepomohl. Dal jsem úpravy odstranit nadbytečné mezery a stále beze změny. Pokud odstraním meta tag pro jazyk zobrazuje se tam "", což je taky znak BOMU.

Jak tedy v PSPADU definitivně odstranit BOM? Díky
Trejpa
Profil
Hitman:
Nastavení > Nastavení programu > Program 2 > [_] Ident. byty v kódování UTF-8

Volba je ve výchozím nastavení vypnutá. Takže by mělo stačit otevřít soubor a přeuložit znova.


Jeden BOM na začátku souboru prohlížečům nevadí, při shodném kódování s ním počítají. Buď ho máš zdvojený nebo se ti cpe na jiné místo z jiného souboru přes include.

(Některé prohlížeče umí ignorovat i zdvojený BOM.)
Hitman
Profil
Tak bohužel, ani po přeuložení se nic nezměnilo. Pokud odstraním meta tag s nastavením jazyka, zobrazí se tam "".

Jde o ***.cz, ale řekl bych že ukázka v tomto případě moc nepomůže...Díky

Řešení je přidat #stranka margin-top: -21px a pro chrome 19, ale to není úplně košer..
anonymníí
Profil *
Hitman:
 je BOM. Zkus přeuložit a nahrát zpět na server všechny soubory, které se tam vyskytují, byť v rámci nějakého PHP includu. Některý ze souborů BOM obsahuje.
Hitman
Profil
Přeuloženo. Includuje se tam jen jeden soubor, ten jsem také v PSPADU otevřel a uložil...
Keeehi
Profil
BOM opravdu před <title> je. Je na stránce sice jeden, ovšem uprostřed dokumentu. Má pocit, že aby byl co k čemu, tak že musí být na začátku souboru. Pokud to je pravda a ty ho máš takto uprostřed ani se nedivím že se to prohlížeči nelíbí.
Hitman
Profil
A jak to že se v pspadu neodstranil?

Vypisuji jej přes echo, před ním je ještě výběr z DB pro další obsah.

//a jak jsi zjistil že je zrovna před title (bez toho že jsi to nahoře četl), je na to nějaký nástroj?

A ještě je zvláštní že i pokud title odstraním a celý kód nad title až po začátek <head>, bom (resp. mezra) tam stále zůstává. Už tomu opravdu nerozumím...nebo tedy není před title, ale jinde?
Keeehi
Profil
Hitman:
Použil jsem ten web od Bubáka ze [#4] a nechal si to vypsat jako hex a je tam EFBBBF, což je ten BOM.

Vzal bych ten PSPad a zdrojové kódy si otevřel jako binární soubory a veškeré výskyty BOMu bych smazal, pak uložil.
Hitman
Profil
No, pokud si to vypíšu v té online aplikaci BOM tam vidím:

746D6C223E0A3C68 6561643E0AEFBBBF tml">•<h ead>••••

V PSPADU mi to ale tento řetězec nenajde, na tom samém řádku mám:

68746D6C223E0D0A3C686561643E0D0A

Když vyhledám "EFBBBF" tak mi to nic nenajde. Vyhledával jsem i další možnosti jako "BF", "FF", "00", ale nic....zkusil jsem to i otevřít normálně a vše srazit k sobě abych BOM odstranil a poté jen odentrovat, ale BOM tam stále je. Pokud celý php kód odstraním, bom zmizí (tedy jeho výskyt EFBBBF v hexakódu), ale odsazení tam stejně zůstane.

//Tak mě napadá, nemůže se tam vkládat až při zpracování toho PHP? Žádné echo tam ale mimo titulku nemám.
Bubák
Profil
Hitman:
odsazení tam stejně zůstane
Nekoukáš náhodou na nakešovaný soubor?
Keeehi
Profil
Hitman:
Jak vypadá tedy ten php kód kolem <head>? Řekněme +-5 řádků.
Hitman
Profil
Bubák:
To ne, ale koukám že to zase ukazuje BOM jinde, za body. Takže to vypadá že se ty bomy vložili za tagy <body> a <head>. Pokud jej odstraním i tam tak už je to v pořádku. Jenže je tam taky PHP. Co může v PHP vkládat BOM? Pouze echo, print atp. ne?

Keeehi:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
require_once("pripojeni k databazi");
....

Tam problém asi nebude...
Keeehi
Profil
Hitman:
Podle kódu by to odpovídalo tomu, že BOM je umístěn na začátku souboru pripojeni k databazi
Hitman
Profil
Aha, na ten jsem zapoměl, to způsobovalo chybu i po tom <body>. To mě nenapadlo, hledal jsem include, ale na tohle jsem úplně zapoměl.

Díky moc :-)
Lonanek
Profil
Hitman:
Pro jistotu si projděte všechny soubory na FTP a uložte je v kódování UTF8 bez BOM. Pak budete bez problémů.

Hitman:
zkusil jsem to i otevřít normálně a vše srazit k sobě abych BOM odstranil a poté jen odentrovat, ale BOM tam stále je
To je co "normálně"? Žádný textový editor nezobrazí BOM znaky.
Hitman
Profil
Lonanek:
To je co "normálně"? Žádný textový editor nezobrazí BOM znaky.

Zobrazil jsem si znaky BOMu otevřením souboru jako binární, viz. výše.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: