답변:
이론적으로 이들 사이의 유일한 차이점은 @import
스타일 시트와 <link>
HTML 메커니즘 을 포함하는 CSS 메커니즘입니다. 그러나 브라우저는 이들을 다르게 처리하므로 <link>
성능 측면에서 분명한 이점을 제공 합니다.
스티브 수 더스는 모두의 영향을 비교하는 광범위한 블로그 게시물 작성 <link>
및 @import
"라고 (그 중 모든 종류의 조합) @import 사용하지 마십시오을 ." 그 제목은 그 자체로 거의 말해줍니다.
야후! 또한 성능 모범 사례 중 하나로 언급합니다 (Steve Souders 공동 작성) : @import보다 선택<link>
또한 <link>
태그를 사용하면 "선호"및 대체 스타일 시트 를 정의 할 수 있습니다 . 당신은 그것을 할 수 없습니다 @import
.
오늘날 실제적인 차이 @import
는 없지만 이전 브라우저 (Netscape 4 등)에서 올바르게 처리되지 않으므로 @import
해킹 을 사용하여 이러한 이전 브라우저에서 CSS 2 규칙을 숨길 수 있습니다.
다시 말하지만, 정말 오래된 브라우저를 지원하지 않는 한 차이가 없습니다.
그러나 내가 당신이라면 <link>
미디어 유형 (인쇄, 화면 등)과 같은 것을 지정할 수 있기 때문에 HTML 페이지 에서 변형을 사용합니다 .
이 기사는 여기에서 사용할 수 있습니다 : HTML에 CSS를 추가하는 4 가지 방법 : 링크, 임베드, 인라인 및 가져 오기
Microsoft Internet Explorer 9 (MSIE9)가 @import를 제대로 처리하지 못하는 것 같습니다. 내 아파치 로그 (IP 주소가 숨겨져 있지만 whois
Microsoft가 소유하고 있다고 표시됨) 에서 다음 항목을 확인하십시오 . screen.css에 연결된 기본 HTML
@import url("print.css") print;
@import url("speech.css") aural;
link
MSIE9가 서버에 두 개의 잘못된 요청을 발행하여 404 오류가 발생하지 않는 것처럼 보이기 때문에 HTML의 요소 로 변경하려고 합니다.
[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /screen.css HTTP/1.1" 200 2592 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)" ssb22.user.srcf.net
[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /url(%22print.css%22)%20print HTTP/1.1" 404 7498 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)" ssb22.user.srcf.net
[ip] - - [21/Dec/2019:05:49:28 +0000] "GET /url(%22speech.css%22)%20aural HTTP/1.1" 404 7498 "https://ssb22.user.srcf.net/zhimo/"; "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)" ssb22.user.srcf.net
가 있었다 이러한 파일에 대한 적절한 요청 이후, 그러나 우리는 "첫 번째 서버에서 촬영 구문 분석이없이 할 수있는 url
논리 후".