SORU
2 NİSAN 2015, PERŞEMBE


HTML için yeni bir standart yorum var mı?

Son zamanlarda, muhtemelen, HTML5 yorum yeni bir yol olduğunu buldum.

Yerine 2* * * tipik bir çoklu-satır okudum yorum, bendüşündümBenim IDE <!div > normal diye yapılmış olduğunu fark ettim. Ben test ettim, ve benim için sürpriz Krom etiket diye vardı.sadeceetiketi ve div içeriğini değil diye, <!/div> yakın açıklama için diğer divs kapanış önlemek zorunda kaldım.

Başka bir test yaptım ve genellikle herhangi bir etiket, <, tag yapar bu sembol açılması önünde ünlem işareti koymak diye görünüyor.

Bu gerçekten yeni mi? Kötü bir uygulama mı? Aslında çok uygun ama henüz(yeni) pratik mi?

Ekstra bilgi düzenleyin: Bir sözdizimi hatası veya bu belirli bir sözdizimi yanlış iyi bir sebep olsa bile, nasıl Krom geliraslındaonları tam yorum olarak işler?

Kod olarak yazılır:

<!div displayed> some text here that is still displayed <!/div>

Ve sonra olarak işlenir:

<!--div displayed--> some text here that is still displayed <!--/div-->

CEVAP
2 NİSAN 2015, PERŞEMBE


HTML5 yorumlar için yeni bir standart yok. Tek geçerli açıklama sözdizimi hala <!-- -->. section 8.1.6 of W3C HTML5:

Yorumdört karakter dizisi ile başlamalıdır U 003C küçüktür İŞARETİ, U 0021 ÜNLEM İŞARETİ, U 002D TİRE EKSİ, U 002D TİRE EKSİ (<!--).

<! sözdizimi HTML5 bir parçası olan SGML DTD biçimlendirme gelmektedir. HTML5, yorum, CDATA bölümleri ve DOCTYPE için ayrılmıştır beyannamesi. Bu alternatif kötü olup olmadığını, bu nedenle uygulama (ya da daha kötüsü, bağımlılığı) eski biçimlendirme kullanılması kötü bir uygulama olarak mı görüyorsunuz bağlıdır.

Doğrulayıcı.nu ne çağrılar bir "Sahte yorum." — geçerli bir açıklama olmasa da bir yorum gibi muamele. anlamına gelir Bu muhtemelen SGML tabanlı ve <!FOO> Bu yeni demezdim yani şeklini aldı biçimlendirme bildirimleri olan pre-HTML5 ile geriye dönük uyumluluk için. Tedavi olmalarının nedenigibiyorum SGML işaretleme bildirimleri özel açıklamalarda işlenecek değil çünkü, ama HTML5 (yukarıdaki istisnalar dışında) anlamsız kaldığı kadarıyla HTML5 DOM onlar ilgilenirhiç yorum daha.

section 8.2.4 içinde aşağıdaki adımları Krom harf aşağıdaki gibi görünen bu sonuç, neden:

  1. 8.2.4.1 Data state:

    Sonraki giriş karakteri tüketmek:

    "<" (U 003C)
    Tag açık duruma geçmek.

  2. 21**:

    Sonraki giriş karakteri tüketmek:

    "!" (U 0021)
    Biçimlendirme beyan açık duruma geçmek.

  3. 8.2.4.45 Markup declaration open state:

    Sonraki iki karakter de vardır "-" (U 002D) karakter, bu iki karakter, boş bir dize olan bir yorum token oluşturmak tüketmek ve yorum yapmak için geçiş durumu. başlarsanız

    Eğer sonraki yedi karakter ASCII Eğer yoksa, büyük / küçük harf duyarlı "sözcüğü, o karakterler tüketmek ve DOCTYPE duruma geçmek. DOCTYPE için maç

    Aksi takdirde, eğer orada bir ayarlanmış geçerli düğüm ve bunun bir unsuru HTML ad ve sonraki yedi karakter (büyük küçük harf duyarlı eşleşme dizesi "[CDATA[" (beş büyük harf "CDATA" U 005B SOL KÖŞELİ PARANTEZ karakter öncesi ve sonrası), daha sonra tüketmek bu karakterleri ve geçiş CDATA bölümü devlet.

    Aksi takdirde, bu bir ayrıştırma hatası. Sahte yorum durumuna geçin. Tüketilen bir sonraki karakteri varsa yorum ilk karakter.

    Eğer karakter dizisi ile karşılaştı sadece yorum başlangıç durumuna geçmek için diyor dikkat edin <!--, sahte bir yorum var aksi halde. Bu yukarıdaki bölüm 8.1.6 belirtilmiştir yansıtıyor.

  4. 23**:

    Her karakter için harcarlar ve ilk " ^ dahil . "(U 003E) veya hangisi önce gelirse dosya (EOF), sonuna bir karakter. Yayan bir yorum belirteci olan veri birleştirme tüm karakterler başlatılmasını ve de dahil olmak üzere karakter neden devlet makineye geçiş içine sahte yorum devlet, ve dahil olmak üzere karakter hemen önce son tüketilen karakter (yani bu karakter önce U 003E ya da EOF karakteri), ama herhangi bir U 0000 BOŞ karakterler yerine U FFFD YEDEK KARAKTER karakter. Eğer bu açıklama dosya sonu (EOF) tarafından başlatılmıştır (belirteç boş. Benzer şekilde, eğer token dize tarafından oluşturulan olsaydı boş "<!>".)

    Düz İngilizce, bu soruda açıklandığı gibi <!--/div--> tam olarak içine <!--div displayed--> <!/div> <!div displayed> döner.

Son bir not, muhtemelen HTML5 uyumlu diğer ayrıştırıcıları Krom aynı şekilde hareket etmesi beklenemez.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Metheud

    Metheud

    9 EYLÜL 2006
  • njhaley

    njhaley

    24 NİSAN 2006
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011