div를 링크로 만들기 있습니다. 클릭 가능한 링크로 만들고

<div>변경하고 싶지 않은 멋진 시각적 콘텐츠 가 포함 된 블록이 있습니다. 클릭 가능한 링크로 만들고 싶습니다.

와 같은 것을 찾고 <a href="…"><div> … </div></a>있지만 유효한 XHTML 1.1입니다.



답변

더 나은 솔루션을 찾기 위해 여기에 왔지만 여기서 제공하는 솔루션은 마음에 들지 않습니다. 나는 당신 중 일부가 그 질문을 오해했다고 생각합니다. OP는 콘텐츠로 가득 찬 div를 링크처럼 동작 시키려고합니다. 페이스 북 광고를 예로들 수 있습니다. 보시면 실제로 올바른 마크 업입니다.

나를 위해 no-nos는 다음과 같습니다 : javascript (링크에 필요하지 않으며 SEO / 접근성이 매우 좋지 않습니다); 잘못된 HTML.

본질적으로 이것은 다음과 같습니다.

  • 일반적인 CSS 기술과 유효한 HTML을 사용하여 패널을 만드십시오.
  • 어딘가에 사용자가 패널을 클릭하면 기본 링크가 될 링크를 넣으십시오 (다른 링크도 가질 수 있음).
  • 해당 링크 안에 빈 스팬 태그를 넣으십시오 ( <span></span>, not <span />-thanks @Campey)
  • 패널 위치를 제공하십시오 : 상대
  • 빈 스팬에 다음 CSS를 적용하십시오.

    {
      position:absolute;
      width:100%;
      height:100%;
      top:0;
      left: 0;
    
      z-index: 1;
    
      /* fixes overlap error in IE7/8,
         make sure you have an empty gif */
      background-image: url('empty.gif');
    }   

    이제 패널을 덮고 <A>태그 안에 있으므로 클릭 가능한 링크입니다.

  • 패널 위치 내부에 다른 링크를 제공하십시오 : 상대 및 적절한 z- 인덱스 (> 1)를 기본 스팬 링크 앞에 가져 오십시오.

답변

div링크 자체를 만들 수는 없지만 <a>태그 block가 같은 동작으로 작동하도록 할 수 <div>있습니다.

a {
    display: block;
}

그런 다음 너비와 높이를 설정할 수 있습니다.


답변

이것은 고대의 질문이지만, 여기의 모든 사람들이 미친 해결책을 가지고 있기 때문에 대답 할 것이라고 생각했습니다. 실제로 매우 간단합니다 …

앵커 태그는 다음과 같이 작동합니다.

<a href="whatever you want"> EVERYTHING IN HERE TURNS INTO A LINK </a>

어 …

<a href="whatever you want"> <div id="thediv" /> </a>

이것이 유효한지 확실하지 않지만. 이것이 음성 솔루션의 추론이라면 사과드립니다 …


답변

약간의 자바 스크립트가 필요합니다. 그러나 div클릭 할 수 있습니다.

<div onclick="location.href='http://www.example.com';" style="cursor:pointer;"></div>

답변

이 옵션에는 가장 많이 답한 답변과 같이 empty.gif가 필요하지 않습니다.

HTML :

 <div class="feature">
       <a href="http://www.example.com"></a>
 </div>

CSS :

 div.feature {
        position: relative;
    }

    div.feature a {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        text-decoration: none; /* No underlines on the link */
        z-index: 10; /* Places the link above everything else in the div */
        background-color: #FFF; /* Fix to make div clickable in IE */
        opacity: 0; /* Fix to make div clickable in IE */
        filter: alpha(opacity=1); /* Fix to make div clickable in IE */
    }

http://www.digitalskydesign.com/how-to-make-an-entire-div-a-link-using-css/ 에서 제안한대로


답변

이것은 원하는 것을 달성하기위한 “유효한”솔루션입니다.

<style type="text/css">
.myspan {
    display: block;
}
</style>
<a href="#"><span class="myspan">text</span></a>

그러나 가장 원하는 것은 <a>태그를 블록 레벨 요소로 표시하는 것입니다.

자바 스크립트를 사용하여 하이퍼 링크를 시뮬레이트하는 것은 권장하지 않습니다. 마크 업 유효성 검사의 목적을 상실하기 때문에 궁극적으로는 접근성을 향상시킵니다 (적절한 의미 규칙에 따라 올바른 형식의 문서를 게시하면 동일한 문서가 다른 브라우저에서 다르게 해석 될 가능성이 최소화됩니다).

JavaScript를 사용 하지 않는 브라우저 를 포함하여 모든 브라우저 에서 유효성을 검사하지는 않지만 렌더링 및 작동 하는 웹 페이지를 게시하는 것이 좋습니다 . 또한을 사용 onclick하면 div가 링크로 작동하고 있음을 판별하기 위해 화면 판독기에 의미 정보를 제공하지 않습니다.


답변

가장 깨끗한 방법은 jQuery를 HTML에 도입 된 데이터 태그와 함께 사용하는 것입니다. 이 솔루션을 사용하면 원하는 모든 태그에 대한 링크를 만들 수 있습니다. 먼저 데이터 링크 태그로 태그 (예 : div)를 정의하십시오.

<div data-link="http://www.google.at/">Some content in the div which is arbitrary</div>

이제 원하는 div 스타일을 지정할 수 있습니다. 그리고 “link”와 같은 동작을위한 스타일을 만들어야합니다 :

[data-link] {
  cursor: pointer;
}

그리고 마지막 으로이 jQuery 호출을 페이지에 넣으십시오.

$(document).ready(function() {
  $("[data-link]").click(function() {
    window.location.href = $(this).attr("data-link");
    return false;
  });
});

이 코드를 사용하면 jQuery는 “데이터 링크”속성이있는 페이지의 모든 태그에 클릭 리스너를 적용하고 데이터 링크 속성에있는 URL로 리디렉션합니다.