컨테이너에서 배경 이미지를 회전시키는 방법은 무엇입니까?


160

Chrome의 스크롤 막대 버튼에있는 이미지를 회전하고 싶습니다. 이제이 내용의 CSS가 있습니다.

::-webkit-scrollbar-button:vertical:decrement
{
    background-image:url(images/arrowup.png) ;
    -webkit-transform:rotate(120deg);
    -moz-transform:rotate(120deg);
    background-repeat:no-repeat;
    background-position:center;
    background-color:#ECEEEF;
    border-color:#999;
}

내용을 회전시키지 않고 이미지를 회전하고 싶습니다.


1
나는 이것도하고 싶다. iCloud에서 이런 일이 발생하는 예가 있습니다. 볼트 텍스처가 동적으로 회전하는 방법을 확인하십시오. icloud.com
Subcreation

그것은 시차 같은 것 같습니다. 실제로 코드에서 말할 수 없었습니다 ...
sheriffderek

아마 당신은 더 이상 필요없고 대답 할 것 같지만 다른 누군가가 관심을 가질 것이라고 생각합니다. 수행 방법을 보여주는 자습서 링크는 다음과 같습니다. http://www.sitepoint.com/css3-transform-background-image/
Ayoub M.

불행히도 제공된 모든 솔루션이 스크롤 막대에서 작동하지 않습니다. 나는 4 개의 별도 사진을 만들었습니다.
amoebe

답변:


141

매우 잘하고 여기에 대답-http: //www.sitepoint.com/css3-transform-background-image/

#myelement:before
{
    content: "";
    position: absolute;
    width: 200%;
    height: 200%;
    top: -50%;
    left: -50%;
    z-index: -1;
    background: url(background.png) 0 0 repeat;
    -webkit-transform: rotate(30deg);
    -moz-transform: rotate(30deg);
    -ms-transform: rotate(30deg);
    -o-transform: rotate(30deg);
    transform: rotate(30deg);
}

2
참고로, 원하는 변환을 정확히 얻는 데 어려움이있는 경우 컨테이너가 중심점을 중심으로 회전합니다.
Nick Larsen

참고로, 모든 요소에서 작동하지는 않습니다. 예를 들어,는 select을 가질 수 없습니다 :before.
Yann Dìnendal

1
또한 모든 경우에 200 %면 충분하지 않을 수 있습니다 (예 : 10px × 200px와 같은 직사각형 요소).
Henrik Christensen

4
예, 그러나 이것은 배경을 회전 시키지 않습니다 . 이것은 근사치로 가짜입니다. 실제로 배경을 회전 해야하는 경우 도움이되지 않습니다.
dev_willis

22

매우 쉬운 방법, 한 방향으로 회전하고 다른 방법으로 내용을 회전시킵니다. 그래도 사각형이 필요합니다

#element{
    background : url('someImage.jpg');
}
#element:hover{
    transform: rotate(-30deg);
}
#element:hover >*{
    transform: rotate(30deg);
}

1
고마워 친구! 가장 간단한 대답은 일반적으로 최고
메루 나스 Grincalaitis

7

CSS :

.reverse {
  transform: rotate(180deg);
}

.rotate {
  animation-duration: .5s;
  animation-iteration-count: 1;
  animation-name: yoyo;
  animation-timing-function: linear;
}

@keyframes yoyo {
  from { transform: rotate(  0deg); }
  to   { transform: rotate(360deg); }
}

자바 스크립트 :

$(buttonElement).click(function () {
  $(".arrow").toggleClass("reverse")

  return false
})

$(buttonElement).hover(function () {
  $(".arrow").addClass("rotate")
}, function() {
  $(".arrow").removeClass("rotate")
})

추신 : 나는 이것을 다른 곳에서 찾았지만 출처를 기억하지 못한다.


5

나는 또한 이것을하고 싶었다. 나는 대략 15도 정도 회전하고 반복하고 싶은 큰 타일 (문자 그대로 타일의 이미지) 이미지를 가지고 있습니다. '이미지 편집 프로그램'이 무의미하게 렌더링되어 이미지가 매끄럽게 반복 될 이미지의 크기를 상상할 수 있습니다.

내 솔루션은 회전하지 않은 (단 하나의 사본 :) 타일 이미지를 psuedo : 요소 앞-크기 초과-반복-컨테이너 오버플로를 숨김으로 설정하고 css3 변환을 사용하여 생성 된 요소 앞을 회전시킵니다. 보쉬!


나는 "매끄럽게 반복 될 이미지의 크기를 상상할 수 없다"는 것은 매우
클 것입니다

1
기본 배경 이미지를 기울이려면 어떻게해야합니까?
Jason

4

2020 년 5 월 업데이트 :

설정 position: absolute한 다음 transform: rotate(45deg)배경을 제공합니다.

div {
  height: 200px;
  width: 200px;
  outline: 2px dashed slateBlue;
  overflow: hidden;
}
div img {
  position: absolute;
  transform: rotate(45deg);
  z-index: -1;
  top: 40px;
  left: 40px;
}
<div>
  <img src="https://placekitten.com/120/120" />
  <h1>Hello World!</h1>
</div>

원래 답변 :

필자의 경우 이미지 크기가 너무 커서 회전 사본을 가질 수 없습니다. 따라서 이미지가로 회전되었습니다 photoshop. photoshop이미지 회전 대신 이미지를 회전 할 수있는 온라인 도구도 있습니다 . 일단 회전하면 rotated-imagein background속성 을 사용하고 있습니다.

div.with-background {
    background-image: url(/img/rotated-image.png);
    background-size:     contain;
    background-repeat:   no-repeat;
    background-position: top center;
}

행운을 빕니다...

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