2012-05-17 7 views
3

대각선 방향이 아닌 수직 또는 수평이 아닌 배경을 반복하고 싶습니다. 그 방법을 알고 계십니까? 예를 들어, 왼쪽 상단에서 시작하여 오른쪽 아래에 대각선으로 반복되는 체인이 필요합니다. 여러 이미지가있는 배경 반복 솔루션을 생각하고있었습니다. 하나는 유용한 배경으로 다른 배경 (매미 메서드)에 겹쳐 있지만, 그렇지 않았습니다. 당신이 이것에 대한 해결책을 안다면 나에게 알려줘.대각선으로 배경을 반복하는 방법 (한 줄에 한 번만)

+0

r 답변, 나는 이것에 대해 더 명확히 할 필요가 있다고 생각한다. http : //i47.tinypic.com/2uh1pgi.jpg –

답변

4

가 회전 방식으로 배경 이미지를 포함하는 :before 규칙을 만들고 그것을 변환 :

.foo:before { 
    display: block; 
    background: url("myimage") repeat-x; 
    position: absolute; 
    height: 100px; 
    top: -50px; 
    left: 0; 
    width: 200%; 
    transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    -webkit-transform: rotate(45deg); 
    transform-origin: left center; 
    -moz-transform-origin: left center; 
    -webkit-transform-origin: left center; 
    content: ""; 
    z-index: -1; 
} 

.foo { 
    position: relative; 
    overflow: hidden; 
} 

http://jsfiddle.net/r8BzE/

+0

훌륭한 솔루션입니다. 감사합니다. –

+0

mkprogramming은 * 똑같은 * 답을 제공했습니다. 또한 여러 가지 다른 접근 방법을 설명했습니다. CSS 변환을 대답으로 제공하지 않은 이유는 크로스 플랫폼이 아니며, 제 경험으로 볼 때 유료 서비스를 개발할 때 항상 지루한 오래된 기술로 돌아 가게해야한다는 것입니다. 슬프게도. –

+0

마지막 문장 추가하기 : 당신이 가장 멋진 최첨단 기술의 서버 쪽을하지 않는다면 (그것이 내가 의지했던 것입니다 : P). –

2

가능한 가장 간단한 방법은 대각선 배경이 포함 된 충분히 큰 (말하자면, 500x500) png 이미지를 만드는 것입니다. 할 수 있으면, 파일 크기가 클 수 없습니다.

두 번째 해결책은 여러 div를 생성하는 것입니다.

당신은 500x500 div의 배경으로 대각선으로 복제하려는 50x50 png 이미지가 있다고 가정 해보십시오.

높이가 각각 50px (10 %) 인 수평 div를 10 개 만들고 연속적인 div +50 배경 위치 -x를 지정하십시오.

#div1{ 
    background:transparent url(my_bg.png) 0px top repeat-y; 
} 
#div2{ 
    background:transparent url(my_bg.png) 50px top repeat-y; 
} 
#div3{ 
    background:transparent url(my_bg.png) 100px top repeat-y; 
} 

등 또한 PHP 또는 사용중인 모든 서버 측 언어이 CSS를 생성 할 수 있습니다.

예 PHP 코드 : 일반 CSS는 하나의 사업부 대각선 배경을 달성하기 위해 함께

<style type="text/css"> 
<?php 
for ($i = 0; $i < 10; $i++){ 
    echo "#div$i{ background:transparent url(my_bg.png) ".(50*$i)."px top repeat-y; }"; 
} 
?> 
</style> 

그러나 그것은 단지 수 없습니다.

+1

네, 평범한 CSS 솔루션을 찾고 있지만 그래도 증가하는 것은 좋은 해결책입니다. calc()은 지원되지 않거나이 카운터 증분을 사용할 수 없습니다.) –

+0

JavaScript는 DIVs +를 생성 할 수도 있습니다. 뷰포트 너비와 전체/필수 너비를 채우기 위해 필요한 DIV의 양을 계산할 수 있습니다. – malisokan

1

당신은 일을 이런 식으로 뭔가를 얻을 수 있습니다

http://jsfiddle.net/johnkpaul/8LmgF/

http://johnkpaul.tumblr.com/post/17057209155/wish-background-repeat-had-a-repeat-diagonal-option

코드는이 같은 같습니다

.original-background{  
    background:url(http://img850.imageshack.us/img850/2400/rowofstars.gif) repeat; 
} 

.diagonal-background:before{ 
    content:""; 
    background:url(http://img850.imageshack.us/img850/2400/rowofstars.gif) repeat; 
    width:200%; 
    height:200%; 
    position:absolute; 
    top:0px; 
    left:0px; 
    z-index:-1; 
    -webkit-transform:rotate(-13deg) translate(10px,-220px); 
    -moz-transform:rotate(-13deg) translate(10px,-220px); 
    -o-transform:rotate(-13deg) translate(10px,-220px); 
    -ms-transform:rotate(-13deg) translate(10px,-220px); 
} 

.diagonal-background{ 
    overflow:hidden; 
} 

을하지만 그냥 쉬울 수 있습니다 배경 이미지를 만들 수 있습니다. 여기에 시도하는 몇 가지 리소스입니다 :

+0

당신의 대답은이 같은 질문과 관련이 있습니다. –

+0

이 올바른 링크로 변경되었습니다. P – sirmdawg

+0

좋습니다. 대각선 배경에 관한 부분은 (슬프게도) 크로스 브라우저가 아닙니다.많은 사람들이 구식 버전의 Firefox와 Opera, 물론 IE를 포함하여 구식 브라우저를 사용합니다. –