Rentang di dalam jangkar atau jangkar di dalam rentang atau tidak masalah?


109

Saya ingin bersarang spandan amenandai. Haruskah saya

  1. Taruh <span>di dalam<a>
  2. Taruh <a>di dalam<span>
  3. Tidak masalah?

Jawaban:


110

3 - Tidak masalah.

TAPI, saya cenderung hanya menggunakan bagian <span>dalam <a>jika itu hanya untuk sebagian dari isi tag yaitu

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

Daripada:

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

Yang jelas seharusnya:

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

1
Saya baru-baru ini menemukan masalah ruang putih dengan text-overflow: elipsis dan overflow: hidden, yang dapat diselesaikan dengan menambahkan elemen blok-sebaris ke tombol navigasi saya. Saya mendapatkan <a> <span> Teks </span> </a>. Jadi saya pikir (atau berharap;)) tidak apa-apa melakukan ini ketika Anda benar-benar membutuhkannya.
CunningFatalist

Saya akan memilih opsi 2 karena itu penting. Penanda harus hanya untuk penahan dan bukan untuk memuat elemen (praktik terbaik). Bayangkan sebuah situasi, di mana Anda membuat petak dan jangkar yang dapat diklik adalah elemen induk dari komponen petak dan di dalam komponen tersebut terdapat tautan untuk gambar, dan lebih banyak gambar. Perayap Google akan menjadi gila dan pada akhirnya, itu tidak baik untuk situs Anda.
Imam Bux

33

Ini benar-benar valid (setidaknya menurut standar HTML 4.01 dan XHTML 1.0) untuk bersarang baik <span>di dalam <a>atau <a>di dalam a <span>.

Hanya untuk membuktikannya kepada diri Anda sendiri, Anda selalu dapat memeriksanya di Layanan Validasi Markup W3C

Saya mencoba memvalidasi:

<!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>

Dan juga sama seperti di atas, tetapi dengan bagian <a>dalam<span>

yaitu

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

dengan kedua doctypes HTML 4.01 dan XHTML 1.0, dan keduanya berhasil lolos validasi!

Satu-satunya hal yang perlu diperhatikan adalah memastikan bahwa Anda menutup tag dengan urutan yang benar. Jadi jika Anda memulai dengan <span>kemudian an <a>, pastikan Anda menutup <a>tag terlebih dahulu sebelum menutup <span>dan sebaliknya.


20

Tidak masalah - keduanya diperbolehkan masuk satu sama lain.


Tapi <a> adalah level blok dan <span> adalah elemen level inline dan elemen level Block tidak bisa masuk ke dalam elemen inline. Saya pikir itu dalam validasi w3c
Jitendra Vyas

26
Tidak, keduanya sebaris
Greg

16

itu tergantung pada apa yang ingin Anda markup.

  • jika Anda ingin link di dalam span, masukkan ke <a>dalamnya <span>.
  • jika Anda ingin menandai sesuatu di tautan, masukkan <span>ke<a>

16

SPAN adalah wadah sebaris GENERIC . Tidak masalah apakah an aada di dalam spanatau spandi dalam akarena keduanya adalah elemen sebaris. Jangan ragu untuk melakukan apa pun yang menurut Anda logis.


2

Itu tergantung pada untuk apa rentang itu. Jika ini mengacu pada teks tautan, dan bukan fakta bahwa itu adalah tautan, pilih # 1. Jika rentang merujuk ke tautan secara keseluruhan, pilih # 2. Kecuali Anda menjelaskan apa yang diwakili oleh rentang tersebut, tidak ada jawaban yang lebih dari itu. Keduanya adalah elemen sebaris, dapat disarangkan secara sintaks dalam urutan apa pun.


Benar, keduanya adalah elemen sebaris.
Chris

2

Ini bisa menjadi masalah jika misalnya Anda menggunakan semacam font ikon. Saya baru saja melakukan ini dengan:

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

Biasanya saya akan meletakkan span di dalam A tetapi styling tidak berpengaruh sampai menukarnya.


1

Secara pribadi, sebagai pengembang web, saya hanya pernah menempatkan rentang dalam tag jangkar jika saya mencoba menyorot bagian teks tautan, seperti menerapkan latar belakang ke satu bagian.


0

Ini akan berfungsi baik, tetapi secara pribadi saya lebih suka opsi 2 sehingga rentangnya adalah "di sekitar" tautan.


0

Secara semantik saya pikir lebih masuk akal karena merupakan wadah untuk satu elemen dan jika Anda perlu menumpuknya maka itu menunjukkan lebih dari elemen akan berada di dalam elemen luar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.