Autor Zpráva
smiesek
Profil
Nějak se mi nedaří dohledat a pochopit, jakým způsobem můžu nastylovat RSS kanál, tedy spíše mi jde o to, že bych za pomocí stylování zmenšila IMG soubory, protože je jinak nechávám generovat v takovém formátu, jako je mám uvedené na stránkách.

Došla jsem k následujícímu, což mi samozřejmě nechce fungovat a tak bych poprosila o rady, co dělám špatně.

Do souboru pro generování RSS jsem vložila do hlavičky následující řádek
echo "<?xml-stylesheet type='text/css' href='style/rss.css' media='screen'?>";
kde mimo jiné mám
    echo '<description>&lt;img src="img/karta.jpg"&gt;</description>';

Následně jsem vytvořila soubor rss.css

do kterého jsem vložila
description img {
    width: 140px;
}

Asi to bude vhozeno hodně za hlavu, že mi to nechce fungovat?
juriad
Profil
Problém je v tom, že unvitř description nemáš tagy, ale celý description je jen řetězec, tedy css se na něj neuplatní. Nepomohlo by nastavit obrázku přímo atribut width?
Trejpa
Profil
smiesek:
To ani nemůže fungovat. Snažíš se, aby RSS soubor (posílaný s MIME "application/rss+xml") fungoval jako HTML soubor. Na to prohlížeče nejsou stavěné.

1) RSS nemá značku <img>. Má značku <image> (popis). RSS čtečky s ní počítají.

2) Značka <image> nebude fungovat v prohlížečích bez zabudované RSS čtečky. Prohlížeč neví a ani nemůže vědět, co ta značka má dělat. Obrázky zpracuje jen u souborů s MIME "text/html" (a několika "xhtml") podle interních pravidel. V obecném XML souboru mají značky <img /> nebo <image /> stejný obecný význam, jako <mojeznacka />.

3) Prohlížeče vlastně ani nepřesvědčíš, že jde o obecné XML, aby ti to dovolily nastylovat. Buď RSS znají a použijí vlastní styl (Firefox, Internet Explorer) nebo RSS ani jeho MIME neznají a vypíší zdroj (Chrome a odvozená Opera, Safari, Seznam).

4) Jediná šance, jak dostat do Internet Exploreru a Firefoxu přes RSS vlastní HTML obrázek je přes CDATA (příklad). Stylovat to nejde, ani když přes CDATA vložíš HTML <link type="stylesheet" /> nebo <style />.


Jestli chceš vyrábět RSS, vyráběj RSS v normální podobě.
Jestli se to má zobrazit v HTML prohlížeči, vytvoř z toho další HTML soubor s HTML značkami (a MIME).
Možná by mohl server očuchat, který formát dané zařízení akceptuje a podle toho mu vyrobit a poslat stejný soubor v jiném formátu. Ale pak budeš řešit cache po cestě k více uživatelům.
smiesek
Profil
Já jsem tu značku img použila proto, aby pokud bude čtečka v RSS kanálu nějakého programu, tak aby se zobrazil obrázek, proto jsem to vložila jako součástí <description>.

Tedy moje řešení pokud chápu správně je nepoužitelné a nelze nějak upravit velikost obrázku.
juriad
Profil
Uvnitř description může být použité HTML, ale to HTML je vůči RSS jen obyčejný text.
Můžeš zkusit přidat nastavit šířku atributem?
echo '<description>&lt;img src="img/karta.jpg" width="140px"&gt;</description>';
Trejpa
Profil
smiesek:
Tedy moje řešení pokud chápu správně je nepoužitelné a nelze nějak upravit velikost obrázku.
Použitelné to bude, ale určitě ne u všech prohlížečů a čteček. Některé zobrazí obrázek, jiné ne. Nicméně nelze vyloučit vypsání zdrojového kódu obrázku nebo chybovou hlášku. Takže to používej… s rozmyslem.

Velikost dle juriad, ale bez jednotky. Zadávat jen šířku bude stačit.


Do jaké míry si nechají prohlížeče ukecat ve stylování RSS pomocí HTML značek (CDATA nebo &lt;) bude jen na nich. Značku <i> respektuje Internet Explorer i Firefox, ale style použije jen IE. Stále ale hrozí divné nebo žádné zobrazení RSS zdroje.


juriad:
Správně je width="140", ne width="140px".
smiesek
Profil
Děkuju za názory, ale tedy ponechám, event. přímo za pomocí tagu zmenším.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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