--- title: ': 외부 리소스 연결 요소' slug: Web/HTML/Element/link tags: - Element - HTML - HTML document metadata - Reference - Web - favicon - metadata - 메타데이터 - 파비콘 translation_of: Web/HTML/Element/link ---
HTML <link>
요소는 현재 문서와 외부 리소스의 관계를 명시합니다. <link>
는 {{glossary("CSS", "스타일 시트")}}를 연결할 때 제일 많이 사용하지만, 사이트 아이콘("파비콘"과 홈 화면 아이콘) 연결 등 여러가지로 쓰일 수 있습니다.
외부 스타일 시트를 연결하려면 {{htmlelement("head")}} 안에 다음과 같은 <link>
요소를 배치하세요.
<link href="main.css" rel="stylesheet">
위의 간단한 예제는 href
특성에 스타일 시트의 경로를, rel
특성에 stylesheet
을 사용합니다. rel
은 관계(relationship)를 뜻하며, 현재 문서와 연결한 아이템의 관계가 어떻게 되는지 설명합니다. 따라서 <link>
요소의 제일 중요한 기능 중 하나라고 볼 수 있습니다. 링크 유형 참고서에서 볼 수 있듯 관계에는 다양한 종류가 있습니다.
그중에서도 몇 가지 자주 쓰이는 유형이 있습니다. 사이트의 파비콘을 연결하려면 다음과 같이 사용합니다.
<link rel="icon" href="favicon.ico">
아이콘을 위한 rel
값도 여러개가 있으며, 주 용도는 다양한 휴대기기 플랫폼의 특별한 아이콘을 나타내기 위함입니다.
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-icon-114.png" type="image/png">
sizes
특성은 아이콘 크기를, type
특성은 연결한 리소스의 MIME을 포함합니다. 브라우저는 이런 여러가지 정보를 통해 가장 적합한 아이콘을 선택합니다.
media
특성을 사용해 미디어 유형이나 쿼리를 지정할 수도 있습니다. 그러면 해당 미디어 조건을 만족할 때만 리소스를 불러옵니다.
<link href="print.css" rel="stylesheet" media="print"> <link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)">
새로운 성능 및 보안 관련 기능도 <link>
요소에 추가됐습니다. 다음 코드로 살펴보겠습니다.
<link rel="preload" href="myFont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
rel
의 preload
값은 브라우저가 이 리소스를 미리 불러와야 한다는 것(자세한 정보는 이 문서를 참고하세요)을 나타내고, as
특성은 가져오는 리소스가 어떤 리소스인지 나타냅니다. crossorigin
특성은 리소스를 {{glossary("CORS")}} 요청으로 불러와야 하는지에 대한 값입니다.
Other usage notes:
<link>
element can occur either in the {{HTMLElement("head")}} or {{HTMLElement("body")}} element, depending on whether it has a link type that is body-ok. For example, the stylesheet
link type is body-ok, and therefore <link rel="stylesheet">
is permitted in the body. However, this isn't a good practice to follow; it makes more sense to separate your <link>
elements from your body content, putting them in the <head>
.<link>
to establish a favicon for a site, and your site uses a Content Security Policy (CSP) to enhance its security, the policy applies to the favicon. If you encounter problems with the favicon not loading, verify that the {{HTTPHeader("Content-Security-Policy")}} header's img-src
directive is not preventing access to it.<link>
element, but it is unclear how they would be used.<link>
require a trailing slash: <link />
.next
for rel
to preload the next page in a document series.이 요소는 전역 특성을 포함합니다
<link>
요소에 rel="preload"
또는 rel="prefetch"
특성을 지정했을 때만 사용합니다. as
특성은 <link>
요소가 불러오는 콘텐츠의 유형을 지정합니다. 요청 매칭, 올바른 콘텐츠 보안 정책의 적용, 올바른 {{HTTPHeader("Accept")}} 요청 헤더 적용에 필요합니다. 이에 더해, rel="preload"
는 as
특성을 사용해 요청 우선순위를 매깁니다. 다음 표는 특성의 유효한 값과, 해당 값이 적용되는 요소 또는 리소스를 나열합니다.값 | 적용 대상 |
---|---|
audio |
<audio> 요소 |
document |
<iframe> 과 <frame> 요소 |
embed |
<embed> 요소 |
fetch |
|
font |
CSS @font-face |
image |
srcset 또는 imageset 특성을 가진 <img> 와 <picture> 요소, SVG <image> 요소, CSS *-image 규칙 |
object |
<object> 요소 |
script |
<script> 요소, 워커 importScripts |
style |
<link rel=stylesheet> 요소, CSS @import |
track |
<track> 요소 |
video |
<video> 요소 |
worker |
워커, 공유 워커 |
anonymous
use-credentials
crossorigin
특성이 존재하지 않으면 리소스를 {{Glossary("CORS")}} 요청 없이 가져오므로 리소스의 오염 없이는 사용이 불가능합니다. 유효하지 않은 값은 anonymous를 지정한 것으로 간주합니다. CORS 설정 특성 문서에서 더 자세한 정보를 알아보세요.rel="stylesheet"
에 한정하여, disabled
불리언 특성은 스타일시트를 불러와서 문서에 적용할지 나타냅니다. HTML을 불러오는 시점에 disabled
를 지정한 경우 스타일시트는 페이지 로딩 시점에 불러오지 않습니다. 이후에 disabled
특성이 false
로 바뀌거나 아예 제거될 때는 불러옵니다.
DOM에서 disabled
속성을 지정하면 문서의 {{domxref("document.styleSheets")}} 리스트에서 스타일시트를 제거합니다.
auto
: 설정 안함. 브라우저가 자체 휴리스틱을 사용해 리소스의 우선순위를 결정합니다.
high
: 브라우저에게 리소스가 높은 우선순위를 지님을 알려줍니다.
low
: 브라우저에게 리소스가 낮은 우선순위를 지님을 알려줍니다.
참고: importance
특성은 <link>
요소가 rel="preload"
또는 rel="prefetch"
를 가지고 있어야 사용할 수 있습니다.
media
특성은 사용자 에이전트가 현재 장치에 맞춰 최적의 스타일시트를 선택하도록 할 수 있으므로 주로 외부 스타일시트를 연결할 때 유용합니다.
print
, screen
, aural
, braille
등과 같은 값을 공백으로 구분한 미디어 설명 문자열 목록, 예를 들어, 미디어 유형 및 그룹(media types and groups)일 수 있습니다.HTML5에서는 이를 확장하여 HTML 4에서 허용되는 값 외에 어떤 유형의media queries든 사용할 수 있습니다.no-referrer
means that the {{HTTPHeader("Referer")}} header will not be sent.no-referrer-when-downgrade
means that no {{HTTPHeader("Referer")}} header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.origin
means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.origin-when-cross-origin
means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer's path.unsafe-url
means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.icon
or a non-standard type such as Apple's apple-touch-icon
. It may have the following values:
any
, meaning that the icon can be scaled to any size as it is in a vector format, like image/svg+xml
.<width in pixels>x<height in pixels>
or <width in pixels>X<height in pixels>
. Each of these sizes must be contained in the resource.Note: Most icon formats are only able to store one single icon; therefore most of the time the {{HTMLAttrxRef("sizes")}} attribute contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous, so you should use this format if cross-browser support is a concern (especially for old IE versions).
title
attribute has special semantics on the <link>
element. When used on a <link rel="stylesheet">
it defines a preferred or an alternate stylesheet. Incorrectly using it may cause the stylesheet to be ignored.iso-8859-1
.
rel
attribute. Link type values for the attribute are similar to the possible values for {{HTMLAttrxRef("rel", "link")}}.Note: This attribute is considered obsolete by the WHATWG HTML living standard (which is the specification MDN treats as canonical). However, it's worth noting that rev
is not considered obsolete in the W3C specification. That said, given the uncertainty, relying on rev
is unwise.
Instead, you should use the {{HTMLAttrxRef("rel", "link")}} attribute with the opposite link type value. For example, to establish the reverse link for made
, specify author
. Also this attribute doesn't stand for "revision" and must not be used with a version number, even though many sites misuse it in this way.
페이지에 스타일 시트를 포함하려면 다음 구문을 사용하세요.
<link href="style.css" rel="stylesheet">
대체 스타일시트를 제공할 수도 있습니다.
유저는 View>Page Style 메뉴에서 사용할 스타일시트를 고를수 있습니다. 이것은 유저가 페이지를 여러 버전으로 볼수 있는 방법을 제공합니다.
<link href="default.css" rel="stylesheet" title="Default Style"> <link href="fancy.css" rel="alternate stylesheet" title="Fancy"> <link href="basic.css" rel="alternate stylesheet" title="Basic">
You can include links to several different icons on the same page, and the browser will choose which one works best for its particular context using the rel
and sizes
values as hints.
<!-- third-generation iPad with high-resolution Retina display: --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="favicon144.png"> <!-- iPhone with high-resolution Retina display: --> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="favicon114.png"> <!-- first- and second-generation iPad: --> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="favicon72.png"> <!-- non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --> <link rel="apple-touch-icon-precomposed" href="favicon57.png"> <!-- basic favicon --> <link rel="icon" href="favicon32.png">
당신은 load 이벤트를 통해 스타일시트가 언제 로드되는지 확인할수 있습니다. 비슷한 방법으로, 당신은 error 이벤트를 통해 스타일시트를 처리하는 도중 에러가 발생했는지 확인할 수 있습니다:
<script> function sheetLoaded() { // Do something interesting; the sheet has been loaded } function sheetError() { alert("An error occurred loading the stylesheet!"); } </script> <link rel="stylesheet" href="mystylesheet.css" onload="sheetLoaded()" onerror="sheetError()">
load
event fires once the stylesheet and all of its imported content has been loaded and parsed, and immediately before the styles start being applied to the content.콘텐츠 카테고리 | 메타데이터 콘텐츠. itemprop 이 존재하면 플로우 콘텐츠 및 구문 콘텐츠. |
---|---|
가능한 콘텐츠 | 없음. {{Glossary("empty element", "빈 요소")}}입니다. |
태그 생략 | 여는 태그는 필수입니다. 닫는 태그는 존재해선 안됩니다. |
가능한 부모 요소 | 메타데이터 콘텐츠를 허용하는 모든 요소. itemprop 이 존재하면 구문 콘텐츠를 허용하는 모든 요소. |
가능한 ARIA 역할 | 없음 |
DOM 인터페이스 | {{DOMxRef("HTMLLinkElement")}} |
명세 | 상태 | 주석 |
---|---|---|
{{SpecName('HTML WHATWG', 'semantics.html#the-link-element', '<link>')}} | {{Spec2('HTML WHATWG')}} | No changes from latest snapshot |
{{SpecName('HTML5 W3C', 'document-metadata.html#the-link-element', '<link>')}} | {{Spec2('HTML5 W3C')}} | Added crossorigin and sizes attributes; extended values of media to any media queries; added numerous new values for rel . |
{{SpecName('HTML4.01', 'struct/links.html#h-12.3', '<link>')}} | {{Spec2('HTML4.01')}} |
{{Compat("html.elements.link", 3)}}