HTML etiketleri doğrudan oluşturulup kullanılabilir
(maurycyz.com)- HTML'de tanınmayan etiket adları kullanılsa bile tarayıcı bunları genel öğeler olarak işler
- CSS'te ilgili etiket adı seçici olarak belirtilirse stil verme ve görüntüleme kontrolü mümkündür
- Ad içinde tire (
-) kullanmak, gelecekteki HTML standartlarıyla çakışmayı önleyebilir veyayerine anlamlı özel etiketler kullanmak kod okunabilirliğini artırır- Karmaşık iç içe yapılarda bile yalnızca etiket adlarıyla yapıyı anlamak kolaylaşır, bu da bakımı kolaylaştırır
Özel HTML etiketlerinin kullanımı
-
Tarayıcı, bilinmeyen etiketleri genel blok öğeleri gibi render eder
- Bu, HTML standardında belirtilen normal davranıştır ve CSS ile stil verilerek görsel olarak kontrol edilebilir
- Örneğin `` gibi bir etiket tanımlanabilir ve CSS'te
cool-thing { ... }biçiminde biçimlendirilebilir
-
Etiket adında tire (
-) bulunursa, bunun gelecekte HTML standardına eklenme olasılığı olmadığı için çakışma riski yoktur- Örnek:
,vb.
- Örnek:
Okunabilirlik ve yapı iyileştirmesi
veyayerine anlamlı ada sahip etiketler kullanmak kodun anlaşılmasını kolaylaştırır- Örneğin
yerinekullanılabilir
- Örneğin
- İç içe geçmiş `` yapılarında kapanış etiketinin yerini anlamak zor olabilir; ancak açık etiket adları kullanılırsa yapı netleşir
içinde, `` gibi öğeler kullanılırsa DOM yapısını kavramak sezgiselleşir
Örnek kod
- Geleneksel yöntem
Hello, World! - Özel etiket yöntemi
Hello, World!- CSS'te
cool-thing { display: block; font-weight: bold; text-align: center; ... }biçiminde stil verilebilir
- CSS'te
Sonuç
- HTML standardının izin verdiği esnek etiket tanımlama özelliği kullanılarak, yüksek okunabilirliğe sahip yapısal işaretleme yazılabilir
- Ancak mevcutta tanımlı anlamlı etiketler varsa, öncelik mevcut etiketlerin kullanımındadır
1 yorum
Hacker News yorumları
ifadesinin tanınmayan bir etiket olmadığını vurguluyor Kendi [blog yazısını](https://dashed-html.github.io) tanıtarak,öğesinin WHATWG onu yeni bir öğe olarak ekleyene kadar HTMLUnknownElement olarak işlendiğini, ancaköğesinin düzen ve stilleme açısından kullanışlı, **geçerli bir HTMLElement** olduğunu açıklıyor JavaScript Custom Elements API ile yükseltilirse **tanımlı bir custom element** haline geliyor Bunun tüm tarayıcılarda standart davranış olduğunu ve W3C HTML Validator'ün de tire içeren custom element'leri HTMLElement olarak kabul ettiğini belirtiyor Ancak varsayılan UA stylesheet içindeki `[hidden]{display:none}` kuralı miras alınmadığından bunun ayrıca belirtilmesi gerektiğini söylüyoröğesinin varsayılan olarakdisplay:blockolmasının da UA stylesheet sayesinde olduğunu, bu yüzden custom element'lerdedisplayözelliğinin elle ayarlanması gerektiğini ekliyor CSS'teki:definedve:not(:defined)seçicileriyle tanımlı/tanımsız öğelerin ayırt edilebildiğini belirtiyor Declarative Shadow DOM (``) da aynı şekilde tanımlanmamış custom element oluşturuyorhiddenözelliğinin bir HTML presentation attribute olmasıyla ilgili olduğunu söyleyerek itiraz ediyor UA stylesheet'in custom element'lere de aynı şekilde uygulandığını,[hidden]diye bir kural bulunmadığını belirtiyorhiddenözelliğinialign="right"gibi, niteliğin kendisinin stile dönüştürüldüğü bir örnek olarak açıklıyor-) yerine iki nokta üst üste (:) kullanılabilseydi XML namespace'lerinin daha doğal entegre edilebileceğini söyleyerek hayıflanıyor nginx veya apache üzerinde iki nokta üst üste işaretinin tireye dönüştürülmesinin de mümkün olacağını ekliyor “1999'a geri dönemeyiz ama” diyerek nostaljik bir tonla bitiriyorÖrnek koddaki
iç içe yapısının aşırı olduğunu eleştiriyor,,gibi semantik etiketler kullanmanın daha uygun olacağını öneriyor3-4 yıldır custom element kullandığı deneyimini paylaşıyor Fikrin zekice olduğunu ama pratikte zorlayıcı kaldığını söylüyor Çok fazla custom etiket kullanılırsa okunabilirliğin düştüğünü ve blok/satır içi ayrımının zorlaştığını belirtiyor Dengeli bir yaklaşımla yerleşik etiketleri koruyup, yalnızca
veyagibi bileşen tipi öğeler için custom etiket kullandığını anlatıyor Alt bileşenleri ise `` gibi slot niteliği ile ayırdığını söylüyor Class'ları yalnızca değişiklik ve özelleştirme amacıyla sınırlayıp, yapıyı slot ile ifade etmeyi tercih ettiğini belirtiyor< !app-header />gibi self-closing custom element yapısını da yorum düğümü hilesiyle uyguladığını ekliyorslotniteliğine göre seçmek içindiv[slot="hero-blurb"]gibi yazmanın doğru olup olmadığını soruyorVarsayılan olarak custom etiketlerin `` gibi davrandığını belirtiyor Gerekirse Custom Element API üzerinden davranış tanımlanabileceğini ekliyor
adlı bir custom etiket oluşturaraköğesinin tersini yaptığını tanıtıyor JS devre dışıysa belirli alanların gizlenebildiğini söylüyor Proje bağlantısını paylaşıyor@media (scripting)özelliği kullanılarak yalnızca saf CSS ile de aynı etkinin elde edilebileceğini öneriyor MDN belgesi bağlantısını ekliyorGeçmişte tarayıcılardan kaldırılan `` etiketini kendi başına yeniden oluşturduğu deneyimini paylaşıyor Bunu jQuery ve visibility kontrolüyle yaptığını, tarayıcıların rastgele etiketlere izin verdiğini görünce şaşırdığını söylüyor Kodun yaklaşık 10 satır olduğu için yayımlamadığını, ama benzer denemelerin çok olduğunu tahmin ettiğini ekliyor
.blinkyerineblinkseçicisi kullanılırsa doğrudan etikete uygulanacağını belirtiyor,gibi örneklerin aslında gerçek HTML etiketleriyle değiştirilebileceğini belirtiyor,, `` kullanmanın daha uygun olduğunu söylüyorCustom etiketlerin varsayılan olarak `` gibi satır içi render edildiğini, ama CSS ile varsayılan
displayözelliğinin kolayca atanabileceğini söylüyor Geçmişte namespace sorunları yüzünden bundan kaçınıldığını, ancak standartta tire (-) kullanımına izin verilince çakışma riskinin ortadan kalktığını belirtiyor CSS seçicilerinde de sorunsuz çalıştığını vequerySelectorile erişilebildiğini ekliyor Vue gibi framework'ler olmadan da modern HTML ile yeterince şey ifade edilebildiğini düşündüğünü söylüyorTüm custom element'lere varsayılan stil vermek için şunu kullanmanın yeterli olduğunu söylüyor
Eski IE'nin HTML5 etiketlerini tanımadığı dönemde, bunu 2010 civarında yazdığı bir script ile çözdüğünü hatırlıyor JS ile etiketi bir kez oluşturunca IE'nin onu tanıdığını, sonra silinse bile sorun çıkmadığını söylüyor Bu sayede rastgele etiketlerin de render edilebildiğini fark ettiğini belirtiyor O dönemki blog yazısını da paylaşıyor