Çapanın içine yayılmış veya açıklığın içinde çapa var mı yoksa önemli değil mi?


109

İç içe yerleştirmek spanve aetiketleri istiyorum . Yapmalımıyım

  1. <span>İçine koy<a>
  2. <a>İçine koy<span>
  3. Önemli değil mi?

Yanıtlar:


110

3 - Önemli değil.

ANCAK, yalnızca etiket içeriğinin bir kısmı için bir <span>içeride kullanma eğilimindeyim, yani<a>

<a href="#">some <span class="red">text</span></a>

Ziyade:

<a href="#"><span class="red">some text</span></a>

Açıkçası sadece şöyle olmalı:

<a href="#" class="red">some text</a>

1
Kısa bir süre önce metin taşma: üç nokta ve taşma: gizli ile ilgili bir beyaz boşluk sorunuyla karşılaştım; bu, bir gezinme düğmeme bir satır içi blok öğesi ekleyerek çözülebilir. <a> <span> Metin </span> </a> ile bitirdim. Bu yüzden gerçekten ihtiyacınız olduğunda bunu yapmanın sorun olmadığını düşünüyorum (veya umut ediyorum;).
CunningFatalist

2. seçeneğe gideceğim çünkü önemli. Çapa, sadece sabitleme amaçlı olmalıdır ve unsurları içermek için olmamalıdır (en iyi uygulama). Tıklanabilir bir döşeme yaptığınız ve bağlantının döşeme bileşeninin ana öğesi olduğu ve bileşenin içinde görüntü bağlantıları ve daha fazla görüntü olduğu bir durum hayal edin. Google tarayıcısı çıldıracak ve eninde sonunda yapacak, bu sizin siteniz için iyi değil.
Imam Bux

33

O (HTML 4.01 ve XHTML 1.0 standartları ile en azından) yuvasına mükemmel geçerli ya bir <span><a>ya da <a>bir iç <span>.

Sadece kendinize kanıtlamak için, her zaman bir W3C Biçimlendirme Doğrulama Hizmetine göz atabilirsiniz.

Doğrulamayı denedim:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  <html>
    <head>
      <title>Title</title>
    </head>
    <body>
       <p>
         <a href="http://www.google.com/"><span>Google</span></a>
       </p>
    </body>
  </html>

Ve aynı yukarıdaki gibi, fakat <a>içeride<span>

yani

<span><a href="http://www.google.com">Google</a></span>

hem HTML 4.01 hem de XHTML 1.0 belge türleriyle ve her ikisi de doğrulamayı başarıyla geçti!

Dikkat etmeniz gereken tek şey, etiketleri doğru sırayla kapatmanızı sağlamaktır. Dolayısıyla , <span>sonra an ile başlarsanız <a>, <a>etiketi kapatmadan önce etiketi kapattığınızdan <span>ve tersini yaptığınızdan emin olun .


20

Önemli değil - ikisinin de iç içe geçmesine izin veriliyor.


Ancak <a> bir blok düzeyidir ve <span> satır içi düzey öğesidir ve Blok düzeyi öğesi satır içi öğenin içine giremez. Sanırım w3c doğrulamasında
Jitendra Vyas

26
Hayır, ikisi de sıralı
Greg

16

bu, neyi işaretlemek istediğinize bağlıdır.

  • Eğer bir yayılma içine bir bağlantı istiyorsanız, koyun <a><span>.
  • Bir bağlantı şey biçimlendirme istiyorsanız, koyun <span>içine<a>

16

SPAN, GENEL bir satır içi kapsayıcıdır. Her ikisi de satır içi öğeler olduğundan, an'ın içinde mi yoksa aiçinde spanmi spanolduğu önemli değildir a. Size mantıksal olarak doğru görünen her şeyi yapmaktan çekinmeyin.


2

Açıklığın ne için olduğuna bağlı. Bağlantının bir bağlantı olduğu gerçeğine değil de bağlantının metnine atıfta bulunuyorsa, # 1'i seçin. Aralık, bağlantıya bir bütün olarak atıfta bulunuyorsa, # 2'yi seçin. Açıklığın neyi temsil ettiğini açıklamadıkça, bundan daha fazlası yoktur. Her ikisi de satır içi öğelerdir ve herhangi bir sırayla sözdizimsel olarak iç içe yerleştirilebilir.


Doğru, ikisi de satır içi öğelerdir.
Chris

2

Örneğin bir sıralama simgesi yazı tipi kullanıyor olmanız önemli olabilir. Bunu şimdi şununla yaşadım:

<span class="fa fa-print fa-3x"><a href="some_link"></a></span>

Normalde açıklığı A'nın içine koyardım, ancak stil değiştirilene kadar etkili olmadı.


1

Kişisel olarak, bir web geliştiricisi olarak, bağlantı metninin bir bölümünü vurgulamaya çalışıyorsam, yalnızca bir bölüme arka plan uygulamak gibi bir bağlantı etiketi içine bir aralık koyarım.


0

Her ikisinde de işe yarayacaktır, ancak şahsen ben 2. seçeneği tercih ederim, bu nedenle aralık bağlantının "etrafında" olur.


0

Anlamsal olarak, tek bir öğe için bir kap olduğu kadar daha mantıklı olduğunu düşünüyorum ve eğer onları iç içe geçirmeniz gerekiyorsa, o zaman bu, dış öğenin içinde öğeden fazlasının olacağı anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.