href
속성 을 포함하지 않고 대신 JavaScript 클릭 이벤트 핸들러 를 사용하여 앵커 태그를 사용하는 것이 좋습니까? 따라서 href
완전히 비워 두지 않아도됩니다 ( href=""
).
href
속성 을 포함하지 않고 대신 JavaScript 클릭 이벤트 핸들러 를 사용하여 앵커 태그를 사용하는 것이 좋습니까? 따라서 href
완전히 비워 두지 않아도됩니다 ( href=""
).
답변:
HTML5에서는 속성이 a
없는 요소를 사용하는 href
것이 유효합니다. "자리 표시 자 하이퍼 링크"로 간주됩니다.
예:
<a>previous</a>
w3c 앵커 태그 참조 페이지 ( https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element) 에서 "자리 표시 자 하이퍼 링크"를 찾으십시오 .
그리고 그것은 위키에서 여기에 언급되어 있습니다 : https://www.w3.org/wiki/Elements/a
자리 표시 자 링크는 앵커 요소를 사용하려고하지만 어디에서나 탐색하지 않는 경우를위한 것입니다. 탐색 메뉴 또는 이동 경로에서 현재 페이지를 표시하는 데 유용합니다. (이전의 접근법은 스타일을 지정하기 위해 "active"또는 "current"라는 클래스가있는 span 태그 또는 앵커 태그를 사용하고 탐색을 취소하기 위해 JavaScript를 사용하는 것이 었습니다.)
자리 표시 자 링크는 런타임시 JavaScript를 통해 링크의 대상을 동적으로 설정하려는 경우에도 유용합니다. href 속성의 값을 설정하면 앵커 태그를 클릭 할 수있게됩니다.
또한보십시오:
href
cursor: pointer
괜찮지 만 동시에 일부 브라우저가 느려질 수 있습니다.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
내 조언은 <a href="#"> </a> 사용입니다
JQuery를 사용하는 경우 다음도 사용하십시오.
.click(function(event){
event.preventDefault();
// Click code here...
});
짧은 대답 : 아니요.
긴 대답 :
먼저 href 속성이 없으면 링크가 아닙니다. 링크가 아닌 경우 HTML 5 기능을 사용하지 않는 한 키보드 (또는 호흡 스위치 또는 포인터 기반 입력 장치가 아닌 다양한 기타 입력 장치)에 액세스 할 수 없습니다tabindex
없습니다 (일반적으로 지원되지 않는 ). 컨트롤에 키보드 액세스 권한이없는 것이 매우 드 rare니다.
둘째. JavaScript가 실행되지 않는 경우 (서버에서로드 속도가 느리거나 인터넷 연결이 끊어 졌기 때문에 (예 : 움직이는 기차의 모바일 신호), JS가 꺼져있는 등) 대안이 있어야합니다.
눈 에 거슬리지 않는 JS 로 점진적인 향상 을 활용하십시오 .
href
필수입니다 (tabindex가 의미가없는 명명 된 앵커가 아닌 경우). 의 사용 tabindex
탭 순서에 unfocusable 요소를 추가 할 수는 HTML 5의 새로운 혁신
a
없는 태그 를 갖는 것이 실제로 유효 href
합니다.
태그는 href 속성없이 사용하는 것이 좋습니다. 여기의 많은 답변과 달리 실제로 href가 없을 때 앵커를 만드는 표준 이유가 있습니다. 의미 상 "a"는 앵커 또는 링크를 의미합니다. 그 의미를 따르는 것을 위해 그것을 사용하면 괜찮습니다.
href가없는 태그의 표준 사용은 명명 된 링크를 작성하는 것입니다. 이렇게하면 name = blah로 앵커를 사용할 수 있으며 나중에 href = # blah로 앵커를 만들어 현재 페이지의 명명 된 섹션에 연결할 수 있습니다. 그러나 동일한 방식으로 ID를 사용할 수도 있기 때문에이 기능은 더 이상 사용되지 않습니다. 예를 들어 id = header와 함께 헤더 태그를 사용할 수 있으며 나중에 href = # header를 가리키는 앵커를 가질 수 있습니다.
그러나 요점은 name 속성 사용을 제안하지 않는 것입니다. href가 필요하지 않은 이유를 하나만 제공하므로 왜 필요하지 않은지 추론하십시오.
href
속성 을 생략해도 안전한지 여부를 생각합니다 . 언급했듯이 속성이 없으면 링크가 아니라 앵커 일뿐입니다. 이것은 완전히 다른 것입니다. <a>
href
<a>
href가없는 접근성 관점 에서는 탭을 사용할 수 없으며 모든 링크는 탭을 사용할 수 있어야합니다. href가없는 경우 tabindex = '0 "을 추가하십시오.
일부 브라우저에서는 href 속성을 제공하지 않으면 문제가 발생합니다. 다음과 같이 코드를 작성하는 것이 좋습니다.
<a href="#" onclick="yourcode();return false;">Link</a>
yourcode ()를 자신의 함수 나 논리로 바꿀 수 있지만 return false를 추가해야합니다. 끝에 진술.
#
색인 페이지가 있습니다. 내 탐색 표시 줄 링크 중 일부의 #
경우 a href="#"
자체 경로를 사용 하는 경우 발생 하는 경로를 트리거하고 싶지 않습니다 . 를 사용 <a href="#" onclick="return false;"
하면 라우트가 중지되지만 click 이벤트는 여전히 jHandler 및 Backbone.Radio를 통해 연결된 DOM 이벤트를 사용하는 핸들러로 버블 링됩니다. 감사합니다 @ shashwat13 :)