2016-07-03 9 views
7

: <img> veya CSS background-image s olarak HTML5'te SVG - XML ​​bildirimi ne zaman yapılır? <? Xml version = "1.0" encoding = "UTF-8"?> `Gerekli? HTML5 içinde SVG'yi kullanırken

  • aracılığıyla SVG görüntüleri gibi

    • ile gerekli XML bildirimi <?xml version="1.0" encoding="UTF-8"?> mi?

    Bu, "Are SVG parameters such as 'xmlns' and 'version' needed" ile ilgili olarak biraz ilgilidir. Ad alanları, iki yanıt ve MDN Namespace crash course tarafından gerektiği şekilde olarak açıklığa kavuşturulmuştur.

    Ancak SVG 1.1 XML bildiriminin gerekliliğine veya ne zaman bırakılabileceğine dair bir açıklama içermiyor mu? beyanı olmadan

    Örnek:

    <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"> 
        <circle id="circle--red" cx="30" cy="30" r="30" fill="#f00"/> 
    </svg> 
    

    Güncelleme 2016/07/04: bu soruyu Aydınlatılmış yaklaşık XML bildirimi olduğunu. Teşekkürler @Martin Honnen! Güncelleştirme 2017-10-24: “UTF-8“ uppercase ve SVGO en iyileştirilmiş özellik siparişi olarak değiştirildi. Tarayıcıya tam standartlar modunu belirtmek için gereken

    <!DOCTYPE html> 
    

  • +4

    '' XML bildirimi, bu Bir belge türü değildir. –

    +0

    XML bildiriminin genel XML dosyası gerekliliğiyle ilgili derinlemesine bir cevap https://stackoverflow.com/a/7007781/1696030 adresinde sağlanmıştır. Özetle, XML sürüm 1.0'da bildirim ** isteğe bağlıdır ** kodlama veya belirli (metin) editörlerle ilgili sorunlara yol açabilir. –

    cevap

    8

    HTML5 için doğru DOCTYPE declaration olduğunu. Eğer gösterdiğin Ne

    ,

    <?xml version="1.0" encoding="utf-8"?> 
    

    bir XML declaration olduğunu. Bu optional for XML 1.0 ve required for XML 1.1 ancak

    • XML 1.1 yaygın kullanımda olmaması.
    • version="1.0" ve encoding="utf-8" zaten varsayılanlardır.

    Farklı bir kodlama belirtmek istediğinizde, özellikle dosya yalnızca tarayıcılar tarafından değil, XML işlemcileri tarafından da tüketilebiliyorsa, HTML5'te bir XML bildirimi kullanın. Daha fazla bilgi için

    HTML5: A vocabulary and associated APIs for HTML and XHTMLgörüyoruz.

    Dahili SVG ile ilgili not (teşekkürler, @Quentin): Bir HTML5 belgesine gömülü SVG'nin bağımsız bir XML bildirimi olmamalıdır. Sadece tek XML bildirimi iyi biçimlendirilmiş XML'de izin verilir ve , en üstte olmalıdır. XML bildirim yerleştirme gereksinimleriyle ilgili daha fazla ayrıntı için bkz. this answer.Dış SVG ilgili

    Not (teşekkürler, @Kaiido): SVG kendi XML bildirimi olmalıdır HTML5 img veya CSS background-images yoluyla başvurulan ve aşağıdaki DOCTYPE bildirimini kullanmalıdır: Harici SVG ilgili

    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
    

    Not (güncelleme) (teşekkürler, @user314159): Scalable Vector Graphics (SVG) 2 W3C Working Draft 09 July 2015 ait 1.3. SVG namespace and DTD Başına

    :

    Bu belirtimde DTD'ler sağlanmadığından, belgelerinin doğrulanması için DTD'lerin kullanılması sorunludur. Özellikle, DTD'ler ad alanlarını zarif bir şekilde işlemez ve 'un ifade edebileceği kısıtlamaların aralığı sınırlıdır. Yazarların SVG belgelerinde bir DOCTYPE bildirimi içermemesi önerilir.

    [vurgu.]

    +1

    Sadece açıklık sağlamak için, XML bildiriminin belgenin en üstünde olması ve HTML 5'teki satır içi SVG'nin HTML 5 belgesinin bir parçasıdır, bağımsız değil ve kendi XML bildirimi olmamalıdır. – Quentin

    +1

    Ve harici svg hakkında tek bir kelime değil? Sorunun konusu budur ... "* * ' ile CSS arka plan görüntüleri * olarak satır içi görüntüler. Bu durumlarda, hem xml bildirimlerini hem de '' DOCTYPE svg PUBLIC '- // W3C // DTD SVG 1.1 // EN' 'olması gereken doktrinleri saklamanız gerekir. Http://www.w3.org/Graphics/SVG/ 1.1/DTD/svg11.dtd ">' btw. – Kaiido

    +0

    Quentin ve Kaiido'nun yararlı önerilerini yansıtacak şekilde güncellendi. Teşekkürler! – kjhughes