아무것도하지 않는 HTML 링크 만들기 (말 그대로 아무것도하지 않음)


87

아무것도하지 않는 링크를 원합니다. 나는 이것을 원하지 않는다 :

<a href="#">

URL은 something.com/whatever/#.

내가 링크를 원하는 유일한 이유는 사용자가 텍스트를 클릭 할 수 있다는 것을 알 수 있기 때문입니다. 자바 스크립트는 어떤 작업을 수행하는 데 사용되기 때문에 링크가 아무데도 갈 필요는 없지만 링크처럼 보이려면 링크가 필요합니다!

일부 데이터 속성을 사용하고 CSS에이 속성이있는 경우 요소가 링크처럼 보이도록 할 수 있지만 약간 지나친 것처럼 보입니다.


뭐가 잘못 something.com/whatever/#됐나요?
Charles Sprayberry 2011

1
공백의 href를 제공하고 javascript에서 false를 반환 할 수 있습니다. 하지만 pointerCSS에서 커서 속성을 로 변경하면 더 의미가 있습니다.
JohnP

@CharlesSprayberry : 원하지 않는 상황이 있습니다.
PeeHaa 2011

이것은 ux.stackexchange.com 에서도 물어 보는 좋은 질문이 될 것 입니다.

1
이 질문은 여기에 더 자세히 설명되어 있습니다 : stackoverflow.com/questions/134845/...
DawnPaladin을

답변:


124

다음은 href가 실행되지 않도록합니다.

<a href="#" onclick="return false;">

jQuery를 사용하는 경우 event.preventDefault()사용할 수 있습니다.


추가 onclick 이벤트가 취소되도록합니다.
Rauli Rajande

5
페이지를 맨 위로 스크롤합니다.
David Hempy

@DavidHempy 나는 이것을 경험하지 않습니다. 어떤 브라우저?
Curt

1
@curt Google Chrome 버전 63.0.3239.84 (공식 빌드) (64 비트) (또는 2 주 전 약간 오래된 버전)
David Hempy

이것은 wordpress 플러그인에서 작동하지 않으며 id로 스크롤하고 링크는 여전히 작업을 수행합니다. 이 경우 페이지 상단으로 리디렉션되는 버그가 있습니다.
Jiri Otoupal イ り オ ト ウ パ ー

88

이 시도:

<a href="javascript:void(0);">link</a>

4
+1하지만 빠른 질문 : 사이에 차이가 javascript:voidjavascript:void(0)?
Adam Rackis 2011

3
매개 변수없이 javascript : void (0)을 사용하려고하면 SyntaxError가 발생하고 모든 스크립트가 실패합니다.
alexdets

3
@alexdets javascript:void()는 SyntaxError가 될 것이지만 javascript:void정의되지 않은 것을 반환합니다 void(0). 아담은, 지금까지 내가 말할 수있는, void그리고 void(0)기능이 사용하기에 동일합니다. --- 편집 : 나는이 페이지를 다시로드 할 수 힌트 다른 의견 .. 볼 수 있지만
andytuba

3
javaScript / javascript / JavaScript / Javascript를 대문자로 사용하는 것이 중요합니까?
Tim Truston 2016-04-22

2
@TechyTimo 대문자는 중요하지 않습니다. 사실 대문자로 사용해서는 안됩니다. 편집을 제출했습니다.
Weston Ganger

28

HTML5에서 이것은 매우 간단합니다. href속성을 생략하십시오 .

<a>Do Nothing</a>

에서 는 A 태그의 HREF 속성에 MDN :

href

이것은 하이퍼 텍스트 소스 링크를 정의하는 앵커에 대한 단일 필수 속성 이었지만 HTML5에서는 더 이상 필요하지 않습니다.


마우스 오버시 손 모양 커서는 어떻습니까?

브라우저의 기본 스타일은가 a없는 태그의 경우 커서를 포인터로 변경하지 않을 수 있습니다 href. 다음 CSS를 사용하여 보편적으로 변경할 수 있습니다.

a {
    cursor: pointer;
}
<a>Do Nothing</a>

그러나 더 선택적으로 이벤트 처리기를 추가하려는 요소에만 적용하는 것이 좋습니다.


탭 중심으로 만드는 것은 어떻습니까?

tabindex="0"요소에 추가 하기 만하면 됩니다.

<a tabindex="0">Do Nothing</a>


a링크없이 태그 를 사용하는 것이 합리적 입니까?

일반적으로 아니요, button대신 요소 를 사용하고 CSS로 스타일을 지정하는 것이 좋습니다. 그러나 사용하는 것이 무엇이든간에 div의미 론적이지 않으므로 가능 하면 임의의 요소를 사용하지 마십시오 .


1
부트 스트랩 4에서는 href가없는 링크는 링크로 스타일이 지정되지 않습니다.
user3413723

13

링크로 만들지 말고 (선호하는 것이 좋지만) CSS로 스타일을 지정하여 링크처럼 보이게합니다.

p.not-a-link { text-decoration: underline; cursor: pointer } 

또는 링크로 만들고 링크 e.preventDefault()를 방지하는 데 사용되는 자바 스크립트 기능을 사용하는 것이 더 좋습니다 .

또한 hrefJS가 활성화되지 않은 사용자가 여전히 사용할 수 있도록 링크를에 추가하십시오 (대체로).


1
+1 IE5.5 토론이 끝났을 때 스팬이 ap보다 낫습니까?
amelvin 2011

1
나는 스팬을 선호합니다. P는 반면, 스팬 나던 새 행을 만들 수
로니 Oosting

9

<a href="javascript:;">Link text</a> -그게 제가 보통 사용하는 것입니다


5
일부 브라우저에서 페이지를 다시로드하지 않습니까?
Curt

@Curt : 맞아요, 질문을 잘못 읽었습니다. 당신은 그것에서 코멘트를 찬성했습니다 :-)
Scott Brown

... 그리고 나는 그것을 편집 한 후 하나를 포함하여 2 개의 반대표를 얻었습니다! 거친!
Scott Brown

첫 번째 코드를 제거하면 내 반대표를 제거 할 수 있습니다. :) 반대표를 제거 할 수 없습니다. "잠김"
Curt

1
이것이 어떤 브라우저에 영향을 미치는지, 더 이상 여전히 문제입니까? 이것은보다 선호됩니다void(0) 이 상태 표시 줄에 표면 있기 때문에. 나는 사용자가 버그 / 오류로 플래그를 지정했기 때문에 (분명히 그렇지 않음) 그렇게 말하는 것이 그들에게 혼란 스럽다고 생각합니다.
chunk_split

4

우리는 일반적으로 표현식 평가와 정의되지 않은 반환을 포함하는 javascript void를 사용하여이를 달성 할 수 있습니다. javascript:void(0); href .

void 연산자는 일반적으로 "void (0)"( "void 0"과 동일)를 사용하여 정의되지 않은 기본 값을 얻는 데만 사용됩니다. 이 경우 전역 변수 undefined를 대신 사용할 수 있습니다 (기본값이 아닌 값에 할당되지 않았다고 가정).

a {
  text-decoration: initial;
}
<a href="javascript:void(0);"> This link actually does nothing when clicked</a>


2

@Curt의 대답은 작동하지만 CSS에서 커서 스타일 을 하여 가짜 링크를 생성하지 않고도 링크처럼 보이게 만들 수 있습니다. 브라우저 적합성에 따라 손이나 포인터를 사용하십시오.

크로스 브라우저 준수 포인터 CSS ( 커서 스타일 가이드에서) :

element {
    cursor: pointer;
    cursor: hand;
}

@PeeHaa IE5.5 및 이전 버전에서 작동 하지 않으려 경우에만 포인터를 사용하십시오 !
amelvin 2011

3
그게 내가 말한거야! IE5.5는 언급하지 마세요. : P 좀 더 진지하게 IE5.5의 점유율은 0.17%. 사람들이 여전히 그 버전을 사용하고 있다면 웹을 탐색 할 자격이 없습니다
PeeHaa

2

아무도 언급하지 않은 한 가지 방법은 href가 빈 로컬 파일 위치를 가리 키도록하는 것입니다.

<a href='\\'>my dead link</a>

왜? react 또는 angular와 같은 프레임 워크를 사용하는 경우 컴파일러는 로그 또는 콘솔을 더럽힐 수있는 경고를 내 보냅니다. 이 기술은 또한 로봇이나 거미가 사물을 잘못 연결하는 것을 방지합니다.


-1

DONT USE <a>... 대신 사용 <span class='style-like-link'> 하고 원하는 스타일로 클래스를 사용하십시오.


링크 자체없이 앵커 태그를 사용하는 것은 잘못된 것이 아닙니다. 의사 앵커 태그로 대체하는 것보다 그렇게 하는 것이 훨씬 합리적 일 수있는 경우가 많다는 것은 말할 것도 없습니다 . 한 요소를 다른 요소처럼 보이도록 스타일링하는 것은 말할 것도없고 다르게 구현하면 향후 유지 관리 문제가 발생할 수 있습니다
Tim

동의합니다. 사용 사례와 달성하려는 작업에 전적으로 달려 있습니다. 나는 이것이 옵션이라는 것을 다른 사람들이 알도록 돕기 위해 이것을 제공했을뿐입니다.
Bryce

그럴 경우 표준 앵커 태그를 사용하지 않도록 대문자로 표시하는 대신 가능한 대안임을 보여주는 언어를 사용하도록 편집하는 것이 좋습니다. 완전히 타당 할 때
Tim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.