2012-11-03 15 views
5

Próbuję sprawdzić mój dokument HTML5 za pomocą w3c. Korzystam z wtyczki jQuery fancybox dla prostych light boxów i galerii zdjęć. W celu rozróżnienia każdej galerii obrazów używam tagu rel.Znacznik HTML rel:

Kiedy potwierdzić moją stronę pojawia się następujący błąd:

Bad value gallery for attribute rel on element a: Not an absolute IRI. The string gallery is not a registered keyword or absolute URL.

Tu jest mój kodu:

<div class="portItem"> 
    <div class="thumbs"> 
     <div class="items"> 
     <img src="images/rsl.jpg" class="col" alt="A website for R.S.Lynch and Company"/> 
     <div class="caption"> 
      <a class="fancybox" rel="gallery1" href="images/rs1.jpg">R.S.Lynch & Company</a> 
      <div class="hidden"> 
      <a class="fancybox" rel="gallery1" href="images/rs2.jpg"></a> 
      <a class="fancybox" rel="gallery1" href="images/rs3.jpg"></a> 
      <a class="fancybox" rel="gallery1" href="images/rs4.jpg"></a> 
      <a class="fancybox" rel="gallery1" href="images/rs5.jpg"></a> 
      </div> 
     </div> 
     </div> 
    </div> 
</div> 

czy istnieje lepszy tag w użyciu i uzyskać ten sam wynik? Dzięki

Odpowiedz

6

Sugerowałbym użyciu data -family przypisują tutaj, podobnie jak to:

<a class="fancybox" data-gallery="1" href="images/rs1.jpg">R.S.Lynch & Company</a> 
<a class="fancybox" data-gallery="1" href="images/rs2.jpg">...</a> 
<a class="fancybox" data-gallery="1" href="images/rs3.jpg">...</a> 
<a class="fancybox" data-gallery="1" href="images/rs4.jpg">...</a> 
<a class="fancybox" data-gallery="1" href="images/rs5.jpg">...</a> 

... jak ten typ atrybutu było zaprojektowane specjalnie do dołączania niektórych danych do elementów DOM. Jest to bardziej semantyczne niż użycie class, według mnie.

Możesz łatwo uzyskać dostęp do tych wartości za pomocą składni $('some selector').data('gallery').

Jeśli chodzi o atrybut rel, wygląda na to, że w HTML5 jest on ograniczony do zestawu wstępnie zdefiniowanych attributes i jest używany do definiowania wyższych relacji między dokumentami.

+0

Dzięki :) Bardzo mi to pomogło. –

+0

świetnie, dzięki! Musiałem zmienić kod "rel" wtyczki jcarousel, której używałem, ale potem działało jak czar! I użyłem slajdu danych do moich konkretnych celów. –

0

Można dodać klasę dla każdego galerii Zamiast: class="fancybox gallery1"

-1
<a class="fancybox" data-gallery="1" href="images/img1.jpg">...</a> 
<a class="fancybox" data-gallery="1" href="images/img2.jpg">...</a> 

$ (". Fancybox"). Attr ("rel", "data-gallery"). Fancybox();

+0

Proszę podać komentarz do swojej odpowiedzi. –