IE에서 배경 크기 작업을하려면 어떻게해야합니까?


188

background-sizeIE에서 CSS 스타일을 작동 시키는 알려진 방법이 있습니까?


1
어떤 효과를 얻으려고합니까?
ZippyV

@ ZippV 약 250 픽셀 너비의 div가 있습니다. 그러나 배경 이미지의 너비는 300px입니다. 배경 이미지가 완전히 들어가기를 원하므로 (배경 크기 : 100 %) 잘리지 않습니다. 그런 다음 :hover배경 크기를 전체 300px 너비 (background-size : auto)로 변경하여 확대의 환상을 만듭니다.
JD Isaacks

1
img 태그를 사용하여 동일한 효과를 얻을 수 있습니다. 그 위에 무언가가 필요하면 z- 색인을 사용하십시오.
ZippyV

1
@John은 Dan의 해결 방법이 효과가 있다면 허용되는 답변을 변경하는 것을 고려하십시오!
Pekka

@ZippyV IMG 태그는 때때로 부작용을 필요로하지 않습니다. 예를 들어 태그를 선택하거나 마우스 오른쪽 버튼을 클릭 할 수 있습니다. 때로는 괜찮지 만 때로는 그렇지 않습니다.
peterh-Reinstate Monica

답변:


312

조금 늦었지만 이것도 유용 할 수 있습니다. 적용 할 수있는 IE 5.5+ 용 IE 필터가 있습니다.

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='images/logo.gif',
sizingMethod='scale');

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='images/logo.gif',
sizingMethod='scale')";

그러나 이렇게하면 할당 된 영역에 맞게 전체 이미지 크기가 조정되므로 스프라이트를 사용하는 경우 문제가 발생할 수 있습니다.

사양 : AlphaImageLoader 필터 @microsoft


12
MS가 왜 CSS를 사용하여 그 기능을 구현하지 않았는지 궁금합니다. 고마워요!
Martin Andersson

2
이것을 지원하는 IE 버전은 무엇입니까?
ᆼ ᆺ ᆼ

8
우리가 이것을 정의 한 요소 내부에서 링크와 버튼을 사용하면 해당 링크와 버튼이 작동하지 않습니다. 누구든지 이것을 고치는 방법을 알고 있습니까?
rubyprince

2
나는 추가했다 position: relative; z-index: 999입력, A, 버튼 내부 등 div의
rubyprince

10
축척 방법은 비율을 유지하지 않습니다. 따라서 요소와 이미지의 비율이 같은 것이 가장 좋습니다.
Yves Van Broekhoven

45

내가 만든 jquery.backgroundSize.js을 "커버"를위한 대체 IE8으로 사용할 수있는 1.5K JQuery와 플러그인이 값을 "포함". 데모를 살펴보십시오 .


12
jquery.backgroundSize.js의 문서에 따르면 플러그인은 더 이상 사용되지 않으며 대신 background-size-polyfill 을 권장 합니다.
VOIDHand

업데이트 된 버전은에서 작동하지 않습니다 background-position: fixed.
Ryan Burney

@VOIDHand 필터와 polyfill 나를 위해 작동하지 않았다 모두, 내가 성공을위한 jquery.backgroundSize 사용
크리스 Marisic

21

이 게시물 덕분에 크로스 브라우저 행복을위한 전체 CSS는 다음과 같습니다.

<style>
    .backgroundpic {
        background-image: url('img/home.jpg');
        background-size: cover;
        filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
        src='img/home.jpg',
        sizingMethod='scale');
    }
</style>

이 코드에서 작업 한 지 너무 오래되었지만 브라우저 호환성을 높이고 싶습니다. 브라우저 호환성을 높이기 위해 CSS에 추가했습니다.

-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;

@ Gaurav123 try-webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;
honk31

5
이렇게하면 내 ie8이 배경 이미지를 두 번 표시합니다. 하나는 크기가 조정되고 다른 하나는 크기가 크지 않은 배경입니다.
arekk

ie7 : 괜찮아 보이지만 더 이상 링크를 클릭 할 수 없습니다. (왜 IE7 매우 느린 업데이트와 정부 사이트?)
로비 매튜스

5

나중에도 유용 할 수 있습니다. background-size : cover의 polyfill으로 사용할 수있는 jQuery-backstretch-plugin이 있습니다. jQuery로 css-background-url 속성을 가져 와서 jQuery-backstretch 플러그인에 공급하는 것이 가능하고 상당히 간단해야합니다. modernizr을 사용하여 백그라운드 크기 지원을 테스트하고이 플러그인을 폴백으로 사용하는 것이 좋습니다.

backstretch - 플러그인은 SO에 언급되었다 여기 국지적 인 jQuery를-backstretch - 플러그인 - 사이트입니다 여기 .

비슷한 방식으로 상황에 따라 배경 크기를 작동시키는 jQuery 플러그인 또는 스크립트를 만들 수 있습니다 (배경 크기 : 100 %) 및 IE8-. 따라서 귀하의 질문에 대답하십시오 : 예 방법이 있지만 atm은 플러그 앤 플레이 솔루션이 없습니다 (즉, 직접 코딩해야합니다).

(면책 조항 : backstretch-plugin을 철저히 조사하지는 않았지만 background-size와 같은 것으로 보입니다 : cover)


5

: 그에게 좋은의 polyfill 있습니다 louisremi / 배경-크기 polyfill은

설명서를 인용하려면 :

IE에 필요한 MIME 유형을 전송하는 .htaccess와 함께 backgroundsize.min.htc를 웹 사이트에 업로드하십시오 (아파치 만 해당 – nginx, 노드 및 IIS에 내장되어 있음).

CSS에서 background-size를 사용하는 모든 곳에서이 파일에 대한 참조를 추가하십시오.

.selector { 
    background-size: cover;
    /* The url is relative to the document, not to the css file! */
    /* Prefer absolute urls to avoid confusion. */
    -ms-behavior: url(/backgroundsize.min.htc);
}

이 polyfill은 작동합니다. background-size : IE8에 포함되거나 포함됩니다. 무스도없고 소란도 없습니다.
jimlongo

이 방법은 모두 지원 contain하고 cover. 하나의 네트워크 패킷으로 전송하기 때문에 5.7KB가 그다지 나쁘지 않습니다.
SMMousavi

2

IE11 Windows 7에서는 이것이 효과적이었습니다.

background-size: 100% 100%;


0

나는 다음 스크립트로 시도했다-

.selector { 
background-image: url("img/image.jpg");
background-size: 100%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-repeat: no-repeat;
}

그것은 나를 위해 일했다!


어떤 버전?
nihiser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.