Autor Zpráva
PavelR2112
Profil *
Ahoj,
pročítám si základy tvorby stránky zde na webu, ale zarazila mě jedna věc.
Např. když chci vložit do stránky znak pro copyright, tak do zdrojového kódu napíšu &copy.
Zde na webu je uvedeno © (má ten středník nějaký význam, když to funguje i bez něj? Mám se radši naučit psát s tím středníkem nebo je to prašť jak uhoď).
Další značky:
<span style="color: red;"> - pak ve vysvětlení tagu je ale zápis bez středníku nebo
<body style="background-color: green; color: yellow;">

Co tam ten středník dělá?
Díky
mickHouse
Profil *
PavelR2112:
&copy se středníkem vždy, podobně jako &nbsp; pro pevnou mezeru. Jedná se o tzv. html entity, které se VŽDY píší se středníkem. Například pokud chcete napsat lomenou závorku < nebo > měl byste ji zapsat právě html entitou;

Druhý uvedený příklad se týká již CSS syntaxe, v atributu style je hodnota, která odpovídá syntaxi CSS, v ní jsou jendotlivé příkazy odděleny středníkem. Jedná se o úplně odlišné problémy ;)
Chamurappi
Profil
Reaguji na mickaHouse:
Jedná se o tzv. html entity, které se VŽDY píší se středníkem.
Nemusí. Pokud za názvem entity následuje znak nedovolený v názvu entity (třeba mezera), entita skončila. Středník je u entit nepovinný a v mnoha případech bezpečně vynechatelný.


Reaguji na PavlaR2112:
Poslední středník v zápisu stylů je nepovinný.
Joker
Profil
ad Chamurappi, ovšem je vhodné ty informace vstřebat pořadí: Nejdřív se naučit, že tam středník být má, a potom kdy je možné ho vynechat.
PavelR2112
Profil *
OK, děkuju. Takže podle nějakého standardu by tam ten středník být měl, aby byl kód 100% validní. Jak u HTML entit, tak u zápisu CSS. Naučím se to tedy psát se středníkem.
panther
Profil
PavelR2112:
by tam ten středník být měl, aby byl kód 100% validní.
teď si nejsem validitou jist u entit, ale poslední středník s validitou HTML/CSS nemá nic společného. Odhlížím od faktu, že celá validita jednoho či druhého ti k ničemu nepomůže.
Chamurappi
Profil
Reaguji na PavlaR2112:
Takže podle nějakého standardu by tam ten středník být měl, aby byl kód 100% validní.
Ne. Podle standardů je opravdu nepovinný. Takže když tam není (a je to ten případ, kdy jde vynechat), na validitě to vůbec nic nemění.
Amunak
Profil
PavelR2112:
Myslím, že pokud ti nevadí kód o pár bajtů delší, radši se to nauč psát vždy se středníkem. V budoucnu ti to může ušetřit problémy. V CSS to platí taky, ovšem když používáš inline zápis (čemuž je vhodné se v cca 90% vyhnout) a zapíšeš tam pouze jednu hodnotu, středník můžeš bezpečně vynechat.

Na validitu se vykašli, přinejlepším ti částečně garantuje, že se tvůj kód všude zobrazí zhruba stejně (jakože něco není vyloženě rozbité).

A když už jsi narazil na nepovinné zápisi, dovolím si upozornit tě na to, že některé html tagy jsou taky nepovinné - ve stránce třeba vůbec nemusíš mít značky jako <body>, <head>, <html> a podobné, a u takových věcí jako jsou třeba položky seznamů nemusíš mít ukončovací značku (</li>). U velmi dlouhých seznamů (typicky automaticky generovaných) se pak dá ušetřit datová velikost stránky.

V následujícím kódu jsou označené středníky nepovinné. Všimni si, že ten první s těmi dalšími nemá nic společného (HTML entity vs CSS).
abc&nbsp;def &amp; ghi

<span style="
  font-size: 120%;
  color: darkred;
">
  text
</span>
<style>
  #element {
    font-size: 80%;
    color: maroon;
  }
</style>

Napadá někoho, proč je ta ukončovací značka style obarvená tak podivně?
panther
Profil
Amunak:
přinejlepším ti částečně garantuje, že se tvůj kód všude zobrazí zhruba stejně
na to právě validita vůbec vliv nemá a je to jedna z nejčastějších chyb v myšlení (nejen) začátečníků: validita != sprvné zobrazení.
Amunak
Profil
panther:
Proto píšu „částečně“, „zhruba“ a „(jakože něco není vyloženě rozbité)“. Když máš kód validní, znamená to, že nemáš třeba někde překřížené tagy, neukončené značky a podobně. To jsou věci, se kterými se různé prohlížeče poperou různě, a web pak vypadá v základu všude stejně. Samozřejmě nemá cenu jít po stoprocentní validitě kódu za každou cenu, ale pokud ho máš validní (nebo víš co těch pár chyb způsobuje a nevadí ti to), na škodu to taky není. Nebo se pletu?
panther
Profil
Amunak:
že nemáš třeba někde překřížené tagy
..coz nemusi nutne znamenat, ze se stranka nezobrazi dobre.

To jsou věci, se kterými se různé prohlížeče poperou různě, a web pak vypadá v základu všude stejně.
s tim nesouhlasim. Rozdily mezi zobrazenim v prohlizeci nevznika v dobre ci spatne napsanem HTML, ale vetsinou ve spatne napsanem CSS. Vetsinou.

ale pokud ho máš validní (nebo víš co těch pár chyb způsobuje a nevadí ti to), na škodu to taky není.
nikdy jsem validitu nekontroloval, tak mi to asi nevadi :) Na skodu to neni, ale zaroven to nic neznamena. Rac se pokochat validnim webem (validnim alespon v drivejsich dobach, nekoukal jsem na to ted) a porovnej se spoustou nevalidnich (seznam.cz, ihned.cz, ...). Skutecne to, co je validni, je lepsi?
Chamurappi
Profil
Reaguji na panthera:
Rac se pokochat validnim webem (validnim alespon v drivejsich dobach, nekoukal jsem na to ted)
Není validní, nebyl validní a nikdy validní nebude. Proč pořád všichni šíří tuhle dezinterpretaci? Je tam <marquee>, překřížené elementy atd. — ta stránka demonstruje chybu oficiálního validátoru v rozpoznávání XHTML, nikoliv fakt, že i validní stránka může být otřesná.


Reaguji na Amunaka:
Když máš kód validní, znamená to, že nemáš třeba někde překřížené tagy, neukončené značky a podobně.
Řada věcí, které na první pohled vypadají jako syntaktické chyby a nefungují spolehlivě, je v HTML 4 dovolená. Třeba neuvedení „>“ na konci značky je často validní. Nebo vynechání názvu atributu a rovnítka — to spolehlivě funguje jen u atributů typu checked a jen s vynechanými uvozovkami kolem hodnoty. Všechny dovolené hrůzostrašné možnosti jsem kdysi ukazoval ve svém článku. Začátečník, který je schopný dělat chyby v překřížení značek, se může snadno trefit i do některé z těch podivností (už jsme tu pár takových měli).

Napadá někoho, proč je ta ukončovací značka style obarvená tak podivně?
Protože <style> přepne JUSH do CSS režimu a z něj se vyskočí až na konci </style>. Nějakou logiku to asi má, ale špatně pochopitelnou a nejspíš jediný, kdo to dokáže opravit, je Jakub Vrána :-)
panther
Profil
Chamurappi:
ta stránka demonstruje chybu oficiálního validátoru v rozpoznávání XHTML
ano, rada lidi k overeni validity pouziva oficialni validator. Zda je nebo neni validni pak uz nikdo neresi (resi, ale nevi, ze existuje podobna chyba validtoru) - temer kazdy, kdo na validitu chce dbat, se spokoji se zelenou fajfkou. A tu zde dostane, pro tuto cilovou skupinu je odkazany web validni.

Ten muj prispevek smeroval spise k tomu, ze validni ci 'validni' (alespon dle oficialniho validatoru, ktery mnozi pouzivaji) stranka muze byt vselijaka, a vypovedni hodnota validity je (temer) nulova.
Amunak
Profil
panther:
Skutecne to, co je validni, je lepsi?
To jsem nikdy netvrdil.

Chamurappi:
Zajímavý článek. Překvapilo mě, co všechno je dovolené. Nechtělo by se ti o tom někdy trochu rozepsat, vzít v potaz třeba i HTML 5 a třeba připsat, kde co funguje a co ne, na co si třeba dát pozor? Používám třeba zmíněné atributy checked nebo disabled a nikdy mě nenapadlo, že to je vlastně zápis hodnoty. Byl jsem přesvědčen, že jde jen o zkrácený zápis checked=checked (resp. disabled=disabled).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0