CSS Selector로 외부링크 선택하기
CSS를 보통은 초보자가 배우고 쓰기 때문에 CSS Selector OOO 선택하기 시리즈로 글을 써볼까합니다.
이 글은 링크(<a>)중 외부링크만 선택하는 방법입니다. 선택에 앞서 기초내용부터 한번에 다룹니다.
때문에 잘 몰랏어도 한번 정독하면 사용할 수 있을것입니다.
CSS의 외부링크 선택법
사실 저는 초보자를 위한 글을 잘 쓰지 못합니다.
그냥 방법을 순차적으로 쓸것인데요. 공부에는 도움이 되지는 않아도 실제 쓸때는 도움은 될겁니다(?)
먼저, 태그 선택법
a{text-decoration: none;}
Selector 자리에 태그명을 입력한다면 입력한 태그가 선택된다.
위의 코드는 a태그를 선택하여 스타일로는 글자 꾸미기 = none 를 줬다.
둘째, Attribute 선택방법 (속성 선택자)
a[href="https://hi098123-skin.tistory.com/"]{color:red}
이번엔 특정한 Attribute를 선택해봤다.
이렇게 설정한다면 https://hi098123-skin.tistory.com/ 의 색상은 빨간색이된다.
아래에서 속성선택자에 대해 자세히 설명해봅니다.
[attribute]
특정 attirbute를 가지는 경우를 선택한다.
p[class]{color:red}
<p>선택 안됨</p>
<p class="hi098123">선택 됨</p>
<p class="hi098123-skin">선택 됨</p>
[attribute=value]
특정 attribute가 value와 정확히 일치하는 경우
a[href="https://hi098123-skin.tistory.com/"] {color: green;}
<a href="https://hi098123-skin.tistory.com/">선택되어 초록색이 됨</a>
[attribute~=value]
특정 attribute안에 value를 정확히 포함 하는 경우
다른데에서 정확히 포함이라는 단어를 쓰는지는 모르겠는데 이렇게 표현해봤다. 아래 예시를 보면 무슨의미인지 알수 있을것입니다.
p[class~="hi098123"]{color:lime}
<p>선택 안됨</p>
<p class="hi098123">선택 됨</p>
<p class="aa hi098123">선택 됨</p>
[attribute|=value]
조금 설명하기 복잡하다. attribute가 정확히 value이거나 value로 시작하면서 -(하이픈)으로 연결되어있어도 된다.
p[class|="hi098123"]{color:#424242}
<p class="hi098123">선택됨</p>
<p class="hi098123-skin">선택됨</p>
<p class="hi098123-aa">선택됨</p>
<p class="hi098123 skin">선택 안됨</p>
[attribute^=value]
attribute가 value로 시작하는 경우 선택한다.
p[class^="hi098123"] { color: red; }
<p class="hi098123">선택됨</p>
<p class="hi098123-skin">선택됨</p>
<p class="hi098123-aa">선택됨</p>
<p class="hi098123 skin">선택됨</p>
<p class="skin hi098123">선택 안됨</p>
[attribute$=value]
$는 정규식에서 끝부분을 의미하는데 CSS에서도 비슷한 의미를 가진다.
attribute가 value로 끝나는 경우 선택한다.
p[class$="hi098123"] { color: red; }
<p class="hi098123">선택됨</p>
<p class="hi098123-skin">선택 안됨</p>
<p class="hi098123-aa">선택 안됨</p>
<p class="hi098123 skin">선택 안됨</p>
<p class="skin hi098123">선택됨</p>
<p class="skin-hi098123">선택됨</p>
[attribute*=value]
value를 포함하는 경우 선택합니다.
p[class*="hi098123"] { color: red; }
<p class="hi098123">선택됨</p>
<p class="hi098123-skin">선택됨</p>
<p class="hi098123-aa">선택됨</p>
<p class="hi098123 skin">선택됨</p>
<p class="skin hi098123">선택됨</p>
<p class="skin-hi098123">선택됨</p>
<p class="skin">선택 안됨</p>
셋째, :not() 이용방법
a:not([href="https://hi098123-skin.tistory.com/"]) { color: blue; }
이번엔 반대로 https://hi098123-skin.tistory.com/ 주소가 아닌경우 파란색으로 설정한다.
https://hi098123.tistory.com/ 이렇게 표시된다.
이걸 모두 사용하면?
a{
/* 전체 링크를 선택하여 스타일을 넣는다. */
}
a[href*="//hi098123-skin.tistory.com/"],a[href^="/"],a[href^="./"],a[href^="#"] {
/* 내부 링크를 선택하여 스타일을 넣는다. */
}
이런식으로 CSS에서 선택자를 활용할 수 있습니다.
CSS 선택자로 외부링크만 선택이 불가하기 때문에 모든 링크를 외부로 보고
a 태그중(링크중에) 주소에 특정 주소를 포함하지 않는 경우를 선택하는 방법입니다.
- /, # 으로 시작하는 주소는 내부링크임.
- *= 으로 자신의 주소 링크를 넣어야 완전히 작동한다.
Attribute 여러개를 합쳐서 not 할수있는 방법이 없어서 이렇게 선택하면 됩니다.
일부러 https: 부분(스키마라고 불립니다.)은 제거합니다. 혹시나 http나 https등 다를수도 있기 때문이고요.
외부 링크를 external link라고도 부르는데 아래의 아이콘은 많이 본 적 있을겁니다.
외부링크임을 표시할 때 이런 아이콘은 CSS 셀렉터를 이용해 넣어줄 수 있습니다.
a:after { background:url("/icon/external-link.png") no-repeat;}
a[href*="//hi098123-skin.tistory.com/"]:after,
a[href^="/"]:after,a[href^="./"]:after,a[href^="#"]:after {
background:none;
}
이렇게 아이콘 이미지를 넣는 방법도 있지만, 폰트기반의 아이콘을 넣는 방법도 있습니다.
'티스토리 > CSS' 카테고리의 다른 글
간단하고 깔끔한 제목 CSS로 꾸미기 (3) | 2020.10.25 |
---|---|
티스토리 링크 미리보기, 투명이미지 버그 고치기 (2) | 2020.09.19 |
드래그 색상 바꾸기 (1) | 2020.08.05 |
티스토리 "분류 전체보기" 지우기 (0) | 2020.08.03 |
width:100%와 display:block의 차이 (0) | 2020.08.02 |
저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 한 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
링크 공유는 가능합니다. 만약, 본문 공유 시 링크 공유를 해주세요
댓글 0개