HTML5 spesifikasyonunun Genişletilebilirlik bölümünden alıntı :
XML serileştirmesi ile sınırlandırılabilen ve HTML serileştirmesinde desteklenmesi gerekmeyen işaretleme düzeyi özellikler için, satıcılar, standart olmayan öğelerin ve özniteliklerin desteklendiği özel ad alanlarını tanımlamak için ad alanı mekanizmasını kullanmalıdır.
HTML5'in XML serileştirmesini kullanıyorsanız, bunun gibi bir şey yapmanız yasaldır:
<greeting xmlns="http://example.com/customNamespace">Hello!</greeting>
Ancak, HTML sözdizimini kullanıyorsanız yapabilecekleriniz konusunda çok daha kısıtlı olursunuz.
HTML sözdizimi ile kullanılması amaçlanan işaretleme düzeyi özellikler için, uzantılar "x-vendor-feature" [...] biçiminin yeni nitelikleriyle sınırlandırılmalıdır. [...] Yeni öğe adları oluşturulmamalıdır.
Ancak bu talimatlar öncelikle, oluşturmayı seçtikleri özel öğeler için görsel stil ve işlevsellik sağlayacağı düşünülen tarayıcı satıcılarına yöneliktir.
Bununla birlikte, bir yazar için, sayfaya özel bir öğe (en azından XML serileştirmesine) gömmek yasal olsa da, DOM'daki bir düğümden başka bir şey almayacaksınız. Özel öğenizin gerçekten bir şey yapmasını veya özel bir şekilde oluşturulmasını istiyorsanız, Özel Öğeler spesifikasyonuna bakmanız gerekir .
Konuyla ilgili daha hassas bir astar için , Shadow DOM ve diğer ilgili spesifikasyonlar hakkında bilgi de içeren Web Bileşenleri Girişini okuyun . Bu özellikler şu anda hala taslaklar çalışıyor - mevcut durumu burada görebilirsiniz - ancak aktif olarak geliştiriliyorlar.
Örnek olarak, bir greeting
öğe için basit bir tanım şöyle görünebilir:
<element name="greeting">
<template>
<style scoped>
span { color:gray; }
</style>
<span>Simon says:</span>
<q><content/></q>
</template>
</element>
Bu, tarayıcıya, öğe içeriğini tırnak işaretleri içine almasını ve gri renkle stilize edilmiş "Simon diyor:" metnini önek olarak eklemesini söyler. Genellikle böyle bir özel öğe tanımı, bir bağlantıyla içe aktaracağınız ayrı bir html dosyasında saklanır.
<link rel="import" href="greeting-definition.html" />
İsterseniz satır içi de ekleyebilirsiniz.
Burada görebileceğiniz Polimer çoklu dolgu kütüphanesini kullanarak yukarıdaki tanımın çalışan bir gösterimini oluşturdum . Bunun Polymer kütüphanesinin eski bir sürümünü kullandığını unutmayın - daha yeni sürümler oldukça farklı çalışır. Ancak, spec hala geliştirme ile, bu zaten üretim kodunda kullanmanızı tavsiye ederim bir şey değil.