HTML5-də öz-özünə bağlanma etiketləri (boş olmayan) var?

W3C doğrulayıcı özünü bağlayan etiketləri (" /> " ilə bitənlər ), qeyri-etibarlı deyil . (Void elementlər content içməyənlərdir). HTML5-də hələ də etibarlıdırmı?

Qeyri-qanuni elementlərin bəzi nümunələri aşağıdakılardır:

 <div id="myDiv" /> <span id="mySpan" /> <textarea id="someTextMessage" /> 

Qeyd W3C validator həqiqətən etibarsız özünü bağlayan etiketləri qəbul edir: müəllif əvvəlcə sadə bir typo ( \> əvəzinə /> əvəzinə) problemi ilə üzləşdi. Lakin, özünü bağlayan etiketlər birbaşa olaraq HTML5-də 100% etibarlı deyil və ətraflı cavablar müxtəlif HTML variantlarında özünü bağlayan etiketlərin məsələsinə aiddir.

586
24 авг. cdeszaq tərəfindən təyin 24 aug. 2010-08-24 18:28 '10 at 18:28 2010-08-24 18:28
@ 7 cavab
  • HTML 4-də, <foo/ (bəli, heç bir halda) <foo> deməkdir (bu, <br/> <br>> (t. <br>> ) və <title/hello/ meaning <title>hello</title> ). Brauzerlər bu mövzuda çox pis işlər gördülər və spesifikasiyalar yazarlara sözdizimdən qaçınmalarını məsləhətdir .

  • XHTML'de <foo/> <foo></foo> deməkdir . Bu, bütün XML sənədlərinə tətbiq olunan XML qayda. Lakin XHTML tez-tez text/html kimi istifadə olunur (ən azından tarixən) brauzerlər tərəfindən application/xhtml+xml olunur application/xhtml+xml kimi istifadə olunan sənədlərdən fərqli bir ayrıştırıcı istifadə edir. W3C text/html kimi XHTML üçün uyğunluq qaydalarını təmin edir. (Əslində: Element NULL (və son etiketə HTML spesifikasiyasında icazə verilməmişdir) kimi təyin olunduqda yalnız özünü bağlayan sintaksis tag istifadə edin).

  • HTML5 - də, <foo/> dəyəri elementin növündən asılıdır .

    • Həll elementləri kimi istinad edilən HTML elementlərində (əsasən "HTML5dən əvvəl mövcud olan və hər hansı bir məzmunda qadağan edilmiş bir element") sonuncu etiketlər sadəcə qadağandır. Başlanğıc etiketinin sonunda bölünməyə icazə verilir, amma əhəmiyyəti yoxdur. İnsanlar üçün sintaktik şəkərdir (və sintaksis işıqlandırılması) XML-ə asılı olanlar.
    • Digər HTML elementlərində slash bir səhvdir, ancaq səhv bərpası brauzerlərin onu görməməsinə və etiketin normal başlanğıc etiketi kimi davranmasına səbəb olacaq. Ümumiyyətlə, itkin düşmə sonu ilə başa çatır ki, sonrakı elementləri qardaş və qardaşlar yerinə uşaq olmalarına səbəb olur.
    • Xarici elementlər (SVG kimi XML proqramlarından alınan) özünü bağlayan bir sintaksis kimi davranır.
1165
24 авг. cavab Quentin 24 aug verilir . 2010-08-24 18:37 '10 at 18:37 2010-08-24 18:37

Nikita Skvortsov qeyd etdi ki, özünü bağlayan div yoxlanılmayacaq. Bunun nedeni divun müntəzəm element deyil , boş bir element deyil .

HTML5 spesifikasiyasına əsasən, heç bir məzmuna malik olmayan ( etiketsiz elementlər kimi tanınan) etiketlər avtomatik olaraq bağlana bilər *. Bunlara aşağıdakı tags daxildir:

 area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr 
border=0

Ancaq "/" yuxarıda göstərilən etiketlər üçün tamamilə isteğe bağlıdır, beləliklə <img/> <img> dən fərqlənmir, lakin <img></img> etibarsızdır.

* Qeyd: kənar elementlər də öz-özünə bağlana bilər, amma bu cavabda olduğunu düşünmürəm.

377
21 окт. 21 oktyabrda Chris Starnes tərəfindən verilmiş cavab 2011-10-21 23:36 '11 saat 23:36 'də 2011-10-21 23:36

Praktikada, HTML-də öz-özünə bağlanma yazıları istifadə edərək, gözlənildiyi kimi işləməlidir. Ancaq etibarlı HTML5 yazmaqdan narahatsan, istifadə edə biləcəyiniz iki müxtəlif sintaksis şəkillərində bu cür etiketlərin necə istifadə etdiyini anlamanız lazımdır. HTML5 eyni və eyni deyil olan HTML sintaksisini və XHTML sözdizimini təsvir edir. Hansı istifadə olunur, veb server tərəfindən göndərilən media növüdür.

Çox güman ki, səhifələriniz daha yumşaq HTML sintaksisindən sonra text/html kimi təqdim olunacaq. Bu hallarda, HTML5 bəzi başlanğıc etiketlərinin bir seçiminə / sona yetirilməsinə imkan verir. Bu hallarda / parametr isteğe bağlıdır və nəzərə alınmır, belə ki <hr><hr /> eynidır. HTML spesifikasiyası bu "etibarsız elementləri" çağırır və etibarlı olanların siyahısını verir. Sözsüz ki, bu elementlərin yalnız başlanğıcında isteğe bağlı / etibarlıdır; məsələn, <br /><hr /> etibarlı HTML5, lakin <p /> deyil.

HTML5 spesifikasiyası HTML müəllifləri və veb brauzer hazırlayanlar üçün doğru olanlar arasında aydın bir fərq qoyur və ikinci qrup hər hansı bir yanlış sintaksisini "köhnəlmiş" qəbul etməlidir. Bu halda, HTML5 ilə uyğun olan brauzerlər, məsələn, <p /> kimi qaçaq özünü bağlayan etiketləri qəbul edəcək və onları ehtimal gözlədiyiniz kimi göstərəcəkdir. Lakin yazar üçün bu səhifə HTML5 etibarlı deyil. (Daha da önemlisi, bu cür qeyri-qanuni sözdizimlərdən istifadə etdiyiniz DOM ağacının ciddi şəkildə zədələnə biləcəyi, məsələn, özünü bağlayan <span /> etiketləri, bir qayda olaraq, çox şişirdilmişdir).

XHTML fayllarını XML MIME növü olaraq necə göndərəcəyini bildiyi qeyri-adi hallarda, səhifə DTD və XML XHTML sözdizimlərinə uyğun olmalıdır.Bu fərdi etiketlərin bu kimi müəyyən olunan elementləri tələb edir.

59
19 февр. Michael Edenfield tərəfindən verilmiş cavab 19 fevral 2011-02-19 01:11 '11 'də 1:11 2011-02-19 01:11

HTML5 əslində son slash yoxdur kimi davranır. HTML5 sözdizimində özünü bağlayan bir etiket kimi bir şey yoxdur.

  • <p/> , <div/> kimi qeyri-boş elementlərdə öz-özünə bağlanma etiketləri heç işləməyəcəkdir. Son çarxlar nəzərə alınmayacaq və onlar açılış etiketləri kimi qəbul ediləcək. Bu, yəqin ki, yuva problemlərinə gətirib çıxaracaqdır.

    Slashdən əvvəl bir boşluq olub-olmamasından asılı olmayaraq bu doğru: <p /><div /> eyni səbəblə də işləməyəcəkdir.

  • <br/> və ya <img src="" alt=""/> kimi maddələr üçün özünü bağlayan etiketlər işləyəcək, ancaq son çarxlar nəzərə alınmır və bu vəziyyət düzgün davranışa gətirib çıxarır.

Nəticədə, köhnə "XHTML 1.0 mətn / html" funksiyasında işləyən hər şey əvvəlki kimi işləməyə davam edəcəkdir: boş olmayan etiketlər üzərindəki kəsiklər orada qəbul edilmədikdə, son çarx elementlər üzərində işə yaramadı.

Digər bir qeyd: bir HTML5 sənədinin XML olaraq düşünülməsi və bu bəzən "XHTML 5.0" adlanır. Bu halda, XML qaydaları tətbiq edilir və öz-özünə bağlanma etiketləri həmişə işlənəcəkdir. Həmişə bir XML növü ilə xidmət edilməlidir.

8
28 июня '16 в 9:15 2016-06-28 09:15 Cavab cümə axşamı 28, '16 ' da saat 09:15' da 2016-06-28 09:15 'də verildi

Self-bağlanma etiketləri HTML5-də etibarlıdır, lakin tələb olunmur.

<br /> həm də gözəldir.

3
24 авг. Cavab Nick 24 aug verilir . 2010-08-24 19:16 '10 at 19:16 2010-08-24 19:16

Bu nümunədə göstərildiyi kimi öz-özünə bağlanma etiketləri ilə çox diqqətli olacağam:

 var a = '<span/><span/>'; var d = document.createElement('div'); d.innerHTML = a console.log(d.innerHTML) // "<span><span></span></span>" 

Mənim bağırsağım duyğusunu <span></span><span></span> yerinə qoyacaqdı

1
20 мая '17 в 22:09 2017-05-20 22:09 Cavab Andreas Herd tərəfindən 20 May '17 'də 10:09 2017-05-05 22:09' də verilir

Lakin, yalnız qeyd üçün icazə verilmir:

 <address class="vcard"> <svg viewBox="0 0 800 400"> <rect width="800" height="400" fill="#000"> </svg> </address> 

Və burada zərbə yenidən qüvvədə olacaq:

  <rect width="800" height="400" fill="#000"/> 
0
12 дек. cavab verildi Leo 12 Dekabr. 2018-12-12 03:39 '18 saat 03:39 ' də 2018-12-12 03:39

haqqında digər suallar və ya bir sual