"Adı" və ya "id" ilə HTML çapa yaratmalıyım?

Bir web səhifəsinin hər hansı bir hissəsinə " http://example.com/#foo " metodundan istifadə etmək istədiyiniz zaman istifadə etməlisiniz

 <h1><a name="foo"/>Foo Title</h1> 

və ya

 <h1 id="foo">Foo Title</h1> 

Onlar həm işləyir, həm də bərabərdirlər və ya semantik fərqlər var?

718
27 янв. Henrik Paul tərəfindən təyin olunan Jan 27 2009-01-27 21:57 '09 at 09:57 pm 2009-01-27 21:57
@ 14 cavab

HTML 5 spesifikasiyasına uyğun olaraq 5.9.8. Bölmə identifikatoruna atlayın :

HTML sənədləri üçün (və mətn / html MIM növü) sənədin göstərilən hissəsində göstərilənləri müəyyən etmək üçün aşağıdakı proses modelini işə salmalısınız.

  • URL'yi sökün və <fragment> URL komponentinin kövrək olmasına icazə verin.
  • Fragir boş bir dize varsa, sənədin bu hissəsi sənədin üst hissəsidir.
  • DOM-da qəlibə tam bərabər olan identifikatora malik bir element varsa, ağac sırası içində ilk belə element sənədin müəyyən hissəsidir; burada alqoritmi dayandırın.
  • DOM-da dəyəri qüsursuza bərabər olan bir ad atributuna malik olan bir elementə malik olduqda, ağac sırasındakı birinci element sənədin müəyyən hissəsidir; burada alqoritmi dayandırın.
  • Əks halda, sənədin müəyyən hissəsi eksik.

Beləliklə, o, id="foo" axtaracaq və sonra name="foo"

Düzenle: @hsivonen-də göstərildiyi kimi, HTML5 elementində heç bir ad öznitəsi yoxdur. Ancaq yuxarıda göstərilən qaydalar hələ də adlandırılan digər elementlərə aiddir.

571
27 янв. 27 yanvar Greg tərəfindən verilən cavabı 2009-01-27 22:10 '09 at 10:10 pm 2009-01-27 10:10

text/html kimi istifadə olunan hər hansı bir HTML stilində <h1><a name="foo"/>Foo Title</h1> etməyin, çünki XML element sintaksisində text/html dəstəklənmir. Lakin, <h1><a name="foo">Foo Title</a></h1> . Hal-hazırda tərtib edilmiş HTML5-də etibarsızdır.

border=0

<h1 id="foo">Foo Title</h1> həm də HTML4 və HTML5-də düzəldilmişdir. Bu Netscape 4-də işləmir, amma Netscape 4-də işləməyən bir çox digər funksiyaları istifadə edə bilərsiniz.

170
27 янв. Cavab 27 yanvarda hsivonen verilir 2009-01-27 22:37 '09 at 10:37 pm 2009-01-27 22:37

Səhifədə bu sahədə əlaqə quracaqsınızsa demək istəyirəm ... Məsələn, page.html # foo və Foo Title istifadə etməyiniz üçün bir əlaqə deyil:

 <h1 id="foo">Foo Title</h1> 

Əgər, başlığınıza bir <a> link <a> , saytınıza <a> xüsusi CSS təsir edəcəkdir. Bu, yalnız bir əlavə markupdur və ona ehtiyac yoxdur. Identifikatorun başlığa yerləşdirilməsini şiddətlə təklif edirəm, bu, daha yaxşı formalaşdırılmır, həm də bu obyekti Javascript və ya CSS-də həll etməyə imkan verir.

48
27 янв. Tim Knight- ə cavab ver 27 yanvar 2009-01-27 22:03 '09 at 10:03 PM 2009-01-27 22:03

Vikipediya bu xüsusiyyətdən çox istifadə edir:

 <a href="#History">[...] <span class="mw-headline" id="History">History</span> 

Və Wikipedia hər kəs üçün işləyir, buna görə də bu formada təhlükəsiz hiss edəcəyəm.

Həm də boşluqlarla deyil, div və ya hətta masa hüceyrələri ilə də istifadə edə biləcəyinizi unutmusunuz və sonra elementiniz üçün target pseudo-class əldə edə bilərsiniz. Yalnız məzmunun hərəkətə keçməsinə gətirib çıxaran qalın tipli genişliyi dəyişdirməyinizə diqqət yetirin.

Naməlum çənələr - səsimdən çəkinməlidirlər:

  • "Adlar və identifikatorlar eyni adda ..." - eyni adda olan iki atribut yalnız çılpaqdır. Mənə deyirəm ki, artıq siz artıq köhnəlmişsiniz.
  • "Href atributu olmayan elementlərin çıraqları" - Və hələ elementin xarakteri (köprü və ya deyil) xüsusiyyətin varlığı ilə müəyyən edilir? Çılpaq çılpaq. Yığıncağın mənası tamamilə qaçınmaq üçün deyir.
  • Heç bir yalançı sinfi olmayan bir bağ qurduysanız, üslub hər birinə aiddir. CSS3-də, bu mövzuda seçicilərlə (ya da hər bir söz-sinfi üçün eyni stil) bu işlə məşğul ola bilərsiniz, lakin bu hələ də həll yoludur. Bu, adətən, baş vermir, çünki siz yalançı sinif üçün rəng seçirsiniz və alt çizgi default olaraq mövcuddur, yalnız silmək mantiqlidir, bu da digər mətn ilə eyni olur. Ancaq əlaqələrinizi cəsarətləndirməyə qərar verdinizmi, bu problemlərə səbəb olacaq.
  • Netscape 4 id funksiyasını dəstəkləməyəcək, amma bilinməyən xüsusiyyət heç bir problem yarada bilməz. Bu mənim üçün uyğunluq deyilən şeydir.
26
25 марта '13 в 17:46 2013-03-25 17:46 Cavab Zoltan Morvai 25 mart '13 saat 17:46 'da verilir 2013-03-25 17:46
 <h1 id="foo">Foo Title</h1> 

- bu, istifadə etmək lazım olan şeydir. Bağlantı istəmirsinizsə, bir cığır istifadə etməyin.

15
25 июня '09 в 22:49 2009-06-25 22:49 Cavab Andrew Marsh tərəfindən 25.06.2009 tarixində saat 10.49-da verilir. 2009-06-25 22:49

JavaScript istifadəçiləri üçün özelleştirilebilir: bütün identifikatorlar pəncərədə qlobal dəyişənlər olur .

 <h1 id="foo">Foo Title</h1> 

Yalnız JS qlobal yaratdı:

 window.foo 

window.foo dəyəri h1 üçün HTMLElement olacaq.

Əgər id nitratlarında istifadə olunan bütün dəyərlərin təhlükəsiz olmasına zəmanət verməsəniz, name sadiq qalmağı seçə bilərsiniz:

 <h1 name="foo">Foo Title</h1> 
9
17 февр. cavab 17 fevralda mikemaccana tərəfindən verilir. 2015-02-17 21:23 '15 'da 21:23' də başlayan '2015-02-17 21:23

ID üsulu köhnə brauzerlərdə işləməyəcək, cədvəl adı metodu HTML-lərin yeni versiyalarında köhnəlir ... İd ilə gedirəm.

9
27 янв. Spikolynn tərəfindən verilmiş cavab Jan 27 2009-01-27 22:02 '09 at 10:02 pm 2009-01-27 22:02

Semantik fərq yoxdur; Standartlarda meyl id deyil, name istifadə etməkdir. Ancaq bəzi hallarda name üstünlük verilməsinə səbəb ola biləcək fərqlər var. HTML 4.01 spesifikasiyası aşağıdakı ipuçlarını təklif edir:

id və ya name istifadə edin? Müəlliflər bağlayıcı ad üçün id və ya name seçərkən aşağıdakı problemləri nəzərə almalıdırlar:

  • İd xarakteri yalnız bir bağlama adından daha çox ola bilər (məsələn, bir stil seçicisi, bir emal kimliyi və s.).
  • Bəzi köhnə istifadəçi agentləri id xassəsi ilə yaradılan bağlamaları dəstəkləmir.
  • Adı atributu zəngin məcburi adların (obyektlərlə) istifadə edilməsinə imkan verir.
8
27 янв. Cavab 27 yanvar erickson tərəfindən verilir 2009-01-27 22:26 '09 at 10:26 AM 2009-01-27 22:26

Mən bir neçə səhifədən ibarətdir ki, birbaşa şəffaf şəkildə təşkil edilmiş div konteynerlərindən ibarət formatda eynidır və yalnız seriya nömrəsi ilə fərqlənir. Hər bir divin üstündə ad zərbəsini gizlətmək istəmişəm, belə ki, ən iqtisadi həlli div açılış etiketində identifikator kimi çapa əlavə etmək idi.

 <div id="[serial number]" class="topic_wrapper"> 
3
13 июня '12 в 5:10 2012-06-13 05:10 cavab 13 iyun 2012-ci il tarixində saat 5:10 radələrində verilir. 2012-06-13 05:10

Yalnız qeydiyyatı müşahidə edirik. HTML'nin əvvəlki versiyalarında formatlaşdırma forması bir çapa nöqtəsi təmin etdi. İşarələmə HTML5-də id xüsusiyyətindən istifadə edərək yaradılıb, əsasən ekvivalentdir, demək olar ki, hamısı məzmunu ehtiva etməlidir elementi müəyyən etmək tələb olunur.

Məsələn, boş bir aralığın və ya div istifadə edə bilərsiniz, lakin bu istifadə görünür və iyrənmiş iy verir.

Bir fikir bu məqsəd üçün wbr elementini istifadə etməkdir. Wbr boş bir məzmun modelinə sahibdir və sadəcə bir xətt fasiləsinin mümkün olduğunu bəyan edir; bu hələ markup etiketi bir az istifadə edir, amma pulsuz sənəd bölüşdürməsindən və ya boş mətndən çox azdır.

2
31 дек. Jerseyboy tərəfindən verilmiş cavab 31 dekabr. 2011-12-31 07:23 '12 saat 07:23 'da 2011-12-31 07:23

Html 5-də, id="" öznitelik bir element üçün unikal identifikatoru müəyyənləşdirir, bu da bir parçaya istinad etmək üçün çapadır. Əvvəlki html standartlarında, <a> elementin name="" özniteliği bir parçaya bir keçid üçün bir bağlanma müəyyən edir. Aşağıdakı kimi bir şey təklif edirəm:
<a name="foo" id="foo"></a><h1>Foo Title</h1>
id="" xüsusiyyətinin dəstəklənməsi bir az sivilcəsizdir (baxmayaraq ki, bütün əsas brauzerlərin ən son versiyaları onu dəstəkləyir, bir neçə ildən çox olmamalıdır) [Yaxşı səbəb olmasaydı, bir şeyi pozmamaq yaxşıdır]). Uyğundur və linkd elementində heç bir şey yaratmır, bağlanması üçün hələ elementdən kənarda qalır, lakin hələ də bütün mövcud standartlarda etibarlıdır.

<a> elementin name=""id="" özniteliklerine uyğun olduğundan əmin olun.

1
25 июня '17 в 20:45 2017-06-25 20:45 Cavab 25 iyun 'da 17:45' də Justin CB tərəfindən verilir, 2017-06-25 20:45 'də

İkinci nümunə sözügedən maddə üçün unikal identifikatoru təyin edir. Bu element sonra DHTML istifadə edərək manipulyasiya edilə və ya əldə edilə bilər.

Birincisi, digər bir tərəfdən, bir bookmarka bənzər bir sənəddə adlandırılmış bir yer təyin edir. Çapa bağlı, bu mənada.

1
27 янв. Cerebrus tərəfindən verilmiş cavab 27 yanvar 2009-01-27 22:04 '09 at 22:04 PM 2009-01-27 22:04

Yeni brauzerlər üçün köhnə brauzerlər və id xassələri üçün ad xüsusiyyətindən istifadə etmək. Hər iki variant da istifadə ediləcək və qaytarma üsulu default olaraq həyata keçiriləcəkdir!

0
20 июня '13 в 10:36 2013-06-20 10:36 Cavab Umesh Bagalur tərəfindən verilir 20 İyun 2013 'da 10:36 2013-06-20 10:36

Bir "adlandırılmış çəngəl" bütün konsepsiyası ad təsvirini müəyyənləşdirir. Yalnız adına sadiq qalmalıyıq, ancaq identifikator özniteliği bəzi javascript halları üçün əlverişli ola bilər.

Şərhlərdə olduğu kimi, hər zaman həm bahislərinizi hiylə almaq üçün istifadə edə bilərsiniz.

-2
27 янв. Cavab 27 yanvarda Alex Fort tərəfindən verilir . 2009-01-27 21:59 '09 at 9:59 pm 2009-01-27 21:59