SORU
11 Aralık 2009, Cuma


Tavsiye <base> html etiketi kullanılır mı?

Ben sadece <base> HTML tag buldu. Asla hiçbir yerde daha önce kullanılan gördüm. Bundan kaçınmak gerekir demektir kullanımı için tuzaklar vardır?

Aslında ben hiç fark kullanmak modern bir üretim sitesi (veya herhangi bir site) bu beni temkinli, ama görünüşe göre öyle olabilir yararlı uygulamaları basitleştirilmesi bağlantıları sitem.


Edit

Birkaç haftadır base etiketi kullandıktan sonra, biraz da bulmaya yaptımönemlibunu ilk ortaya çıktı daha az cazip hale getiren temel etiketi ile sorunlar. Aslında, base etiketi altında href='#topic' href='' değişiklikleriçokvarsayılan davranışları ile uyumsuz, ve varsayılan davranış bu değişiklik kolayca kontrol dışında üçüncü parti kütüphaneler yapabilirçok güvenilmezbeklenmedik bir şekilde, bu yana mantıksal olarak varsayılan davranışı bağlıdır. Sık sık değişiklikler ince ve-hemen-açık yol büyük bir kod tabanı ile ilgili sorunlar. Beri bir cevap altında yaşadığı sorunları anlatan oluşturduk. Bağlantı <base>, yaygın bir dağıtım için kabul etmeden önce kendiniz için test sonuçları yeni tavsiyem şu!

CEVAP
11 Aralık 2009, Cuma


<base> etiket kullanmak için olsun ya da olmasın karar vermeden önce, için kullanılabilir ne olduğunu ve ne anlama geldiklerini nasıl çalıştığını anlamak gerekir ve nihayet dezavantajları/avantajları daha ağır.


<base> etiketi esas olarak geçerli bağlamda hakkında endişelenmenize gerek yok gibi diller şablon göreli bağlantılar oluşturma kolaylaştırırherlink.

Örneğin yapabilirsiniz

<base href="${host}/${context}/${language}/">
...
<link rel="stylesheet" href="css/style.css" />
<script src="js/script.js"></script>
...
<a href="home">home</a>
<a href="faq">faq</a>
<a href="contact">contact</a>
...
<img src="img/logo.png" />

yerine

<link rel="stylesheet" href="/${context}/${language}/css/style.css" />
<script src="/${context}/${language}/js/script.js"></script>
...
<a href="/${context}/${language}/home">home</a>
<a href="/${context}/${language}/faq">faq</a>
<a href="/${context}/${language}/contact">contact</a>
...
<img src="/${context}/${language}/img/logo.png" />

Lütfen <base href> değeri bir eğik çizgi ile sona erer unutmayın, aksi takdirde geçen yola göre yorumlanır.


Uyumluluk tarayıcı olarak, bu IE sadece sorunlara neden olur. <base> etiketi HTML olarak belirtildideğilson etiketiyle sadece yasal bir bitiş etiketi olmadan <base> için 15**,. Ancak IE6 aksi takdirde tüm içeriği düşünüyorsonra<base> etiketi dava konusu olarak yer alıyorçocukHTML DOM ağacında <base> element. Bunun nedeni ilk bakışta açıklanamayan sorunları Javascript/jQuery/CSS, yani unsurlar olmaktan tamamen ulaşılamaz özel seçiciler gibi html>body kadar keşfetmek HTML DOM Müfettiş o olmalı base (head) arasında.

Ortak IE6 bir düzeltme YANİ koşullu bir yorum etiket eklemek için kullanıyor:

<base href="http://example.com/en/"><!--[if lte IE 6]></base><![endif]-->

Eğer A3, Doğrulayıcı umurunda varsa yoksa HTML5 zaten olduğunuzda, o zaman sadece kendine yakın, her tarayıcıda zaten destekler:

<base href="http://example.com/en/" />

<base> etiket kapanış anında da Vista SP3 IE6 insanity sonsuz döngü src göreli URI <script> kaynak talep etmeye giderir.

Bir diğer potansiyel sorun IE <base> etiketinde göreli URI kullandığınızda tezahür edecek, <base href="//example.com/somefolder/"> <base href="/somefolder/"> gibi. Bu IE6/7/8'de başarısız olur. Bu ancak tam olarak tarayıcı hatası değil; <base> etiketinde göreli URI kullanarak yani kendi yanlış olur. HTML4 specification mutlak bir URI, böylece http:// https:// düzeni ile başlayan olması gerektiğini belirtti. Bu HTML5 specification bırakıldı. Eğer HTML5 ve hedef HTML5 uyumlu tarayıcılar kullanıyorsanız, o zaman <base> etiketinde göreli URI kullanarak tüm ince olmalıdır.


Kullanarak <base> etiketi <a href="#anchor"> gibi adlı bağlantılar gibi temel olarak ilan ettintümgöreli bağlantılar, adlı bağlantılar da dahil olmak üzere göreceli. Göreli bağlantılar hiçbiri geçerli isteğin URI göreli artık <base> etiketi olmadan olacağı gibi). Bu ilk etapta yeni başlayanlar için kafa karıştırıcı olabilir. Çapa doğru yolu adlı oluşturmak için, temelde gerek

<a href="${uri}#anchor">jump</a>

${uri} temelde JSP PHP $_SERVER['REQUEST_URI'] ${pageContext.request.requestURI} çevirir ve OLUMSUZLUK #{request.requestURI}.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011
  • Wild Academy

    Wild Academy

    8 Aralık 2009