<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로 리디렉션합니다.