CSS를 사용하여 배경 이미지를 뒤집는 방법?


224

CSS를 사용하여 배경 이미지를 뒤집는 방법? 가능합니까?

현재 CSS background-image의 화살표 이미지를 사용하고 있습니다.li

여기에 이미지 설명을 입력하십시오

켜기 : visited이 화살표를 가로로 뒤집어 야합니다. 화살표의 다른 이미지를 만들기 위해이 작업을 수행 할 수 있지만 CSS에서 이미지를 뒤집을 수 있다는 것이 궁금합니다.:visited


3
좋은 질문! 이것은 많은 다른 경우에 유용 할 수 있습니다.
AshBrad

@AshBrad-의견 주셔서 감사합니다. 예, 그것은 많은 조건에서 유용 할 수 있습니다
Jitendra Vyas

답변:


234

CSS로 가로로 뒤집을 수 있습니다 ...

a:visited {
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
}

jsFiddle .

대신 세로로 뒤집기를 원한다면 ...

a:visited {
    -moz-transform: scaleY(-1);
    -o-transform: scaleY(-1);
    -webkit-transform: scaleY(-1);
    transform: scaleY(-1);
    filter: FlipV;
    -ms-filter: "FlipV";
}

소스 .


1
웹 키트 브라우저 만 고려한다면 -webkit-transform: scaleX(-1);충분합니까?
Jitendra Vyas

@Jitendra 벤더가 아닌 접두사 속성을 더한 값이어야합니다.
alex

25
@alex-이것에 하나의 문제. 내부에있는 텍스트도 <a>뒤집고 배경 이미지 만 뒤집고 싶습니다. 당신이주는 코드는 전체 요소 플립하는 것입니다
Jitendra Vyas는

3
@Jitendra 배경 이미지를 뒤집을 수있는 것처럼 보이지 않습니다. span그러나 아이콘을 a에 놓고 뒤집을 수 있습니다.
alex

1
@alex-알았어-그래, 내가이 코드를 사용한다면 <li><a href="#"><span>text</span></a></li>텍스트도 뒤집어 버리기 때문에 당신의 코드와 반대되는 것이 텍스트를 풀기 위해 li a span { }css에서 unflip 코드를 쓸 수있게 될 것이다
Jitendra Vyas

86

Alex의 답변에서 뒤집을 단서를 본 후 전체 요소가 아닌 배경 만 뒤집을 수있는 방법을 찾았습니다. 대답 해 주셔서 감사합니다 알렉스

HTML

<div class="prev"><a href="">Previous</a></div>
<div class="next"><a href="">Next</a></div>

CSS

.next a, .prev a {
    width:200px;
    background:#fff
}
 .next {
    float:left
}
 .prev {
    float:right
}
 .prev a:before, .next a:before {
    content:"";
    width:16px;
    height:16px;
    margin:0 5px 0 0;
    background:url(http://i.stack.imgur.com/ah0iN.png) no-repeat 0 0;
    display:inline-block 
}
 .next a:before {
    margin:0 0 0 5px;
    transform:scaleX(-1);
}

여기에 예를 참조하십시오 http://jsfiddle.net/qngrf/807/


7
@Jitendra Jsfiddle URL을 확인하십시오. 나는 당신이 당신의 대답 +는 작동하지 않습니다 ..에 게시 된 같은 코드를 가지고 있지 생각
sachinjain024

3
게시 한 jsfiddle 코드가 텍스트를 뒤집고 있습니까? 원하는 것입니까, 아니면 배경 이미지입니까?
mandza

1
귀하의 jsfiddle이 코드와 동일하지 않습니다. 업데이트 하시겠습니까?
Royi Namir 2016 년

1
@JitendraVyas 2016 년부터 안녕하세요! jsfiddle URL이 여전히 귀하의 답변에있는 것과 다른 코드에 연결되어 있기 때문에 jsfiddle URL을 수정하기 위해 수정 제안을 고려 중입니다. 게시물을 편집하거나 링크를 제거해야합니까? 감사합니다 :)
totallyNotLizards

-webkit-transform:scaleX(-1);크롬을 위해
웨슬리 스미스

19

w3schools에 따르면 : http://www.w3schools.com/cssref/css3_pr_transform.asp

변형 속성은 Internet Explorer 10, Firefox 및 Opera에서 지원됩니다. Internet Explorer 9는 대체 -ms-transform 속성 (2D 변환 만 해당)을 지원합니다. Safari 및 Chrome은 대체 -webkit-transform 속성 (3D 및 2D 변환)을 지원합니다. Opera는 2D 변환 만 지원합니다.

이것은 2D 변환이므로 공급 업체 접두사로 Chrome, Firefox, Opera, Safari 및 IE9 +에서 작동합니다.

내부 답변을 뒤집기 전에 다른 답변을 사용하십시오. 나는 바닥 글에서 이것을 사용했다 (헤더에서 이미지를 수직으로 거울로 돌리기 위해) :

HTML :

<footer>
<p><a href="page">Footer Link</a></p>
<p>&copy; 2014 Company</p>
</footer>

CSS :

footer {
background:url(/img/headerbg.png) repeat-x 0 0;

/* flip background vertically */
-webkit-transform:scaleY(-1);
-moz-transform:scaleY(-1);
-ms-transform:scaleY(-1);
-o-transform:scaleY(-1);
transform:scaleY(-1);
}

/* undo the vertical flip for all child elements */
footer * {
-webkit-transform:scaleY(-1);
-moz-transform:scaleY(-1);
-ms-transform:scaleY(-1);
-o-transform:scaleY(-1);
transform:scaleY(-1);
}

따라서 요소를 뒤집은 다음 모든 자식을 다시 뒤집습니다. 중첩 요소에서도 작동합니다.


1
답변 해주셔서 감사합니다! 다른 하나는 모든 아이들을 뒤집거나 뒤집기 위해 더 복잡한 트릭이 필요했기 때문에 이것은 나에게 가장 효과적이었습니다.
Austin Salgat

이 답변이 대상 요소 내부의 모든 것을 뒤집 으면 다른 요소로 밀어 넣으십시오. 즉, 새 <div> 요소 내에서 뒤집기를 원하지 않는 내용을 래핑하십시오.
Onosa


5

수직과 수평 을 동시에 뒤집을 수 있습니다

    -moz-transform: scaleX(-1) scaleY(-1);
    -o-transform: scaleX(-1) scaleY(-1);
    -webkit-transform: scaleX(-1) scaleY(-1);
    transform: scaleX(-1) scaleY(-1);

그리고으로 전환 특성 당신은 멋진 플립를 얻을 수 있습니다

    -webkit-transition: transform .4s ease-out 0ms;
    -moz-transition: transform .4s ease-out 0ms;
    -o-transition: transform .4s ease-out 0ms;
    transition: transform .4s ease-out 0ms;
    transition-property: transform;
    transition-duration: .4s;
    transition-timing-function: ease-out;
    transition-delay: 0ms;

실제로는 전체 요소가 아니라background-image

단편

function flip(){
	var myDiv = document.getElementById('myDiv');
	if (myDiv.className == 'myFlipedDiv'){
		myDiv.className = '';
	}else{
		myDiv.className = 'myFlipedDiv';
	}
}
#myDiv{
  display:inline-block;
  width:200px;
  height:20px;
  padding:90px;
  background-color:red;
  text-align:center;
  -webkit-transition:transform .4s ease-out 0ms;
  -moz-transition:transform .4s ease-out 0ms;
  -o-transition:transform .4s ease-out 0ms;
  transition:transform .4s ease-out 0ms;
  transition-property:transform;
  transition-duration:.4s;
  transition-timing-function:ease-out;
  transition-delay:0ms;
}
.myFlipedDiv{
  -moz-transform:scaleX(-1) scaleY(-1);
  -o-transform:scaleX(-1) scaleY(-1);
  -webkit-transform:scaleX(-1) scaleY(-1);
  transform:scaleX(-1) scaleY(-1);
}
<div id="myDiv">Some content here</div>

<button onclick="flip()">Click to flip</button>


"동시에 수직과 수평으로 플립"은 이미지를 180도 돌리는 것과 동일한 효과를 가지며, 잘 작동하며 내가 찾던 것입니다.
Stonecrusher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.