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.