2011-05-04 11 views
3

나는 현실을 만들려고 노력하는 다소 특이한 레이아웃을 가지고 있습니다. 인수를 위해 div가 포함되어 있으며 래퍼의 왼쪽과 상단에서 200px로 고정해야합니다.절대 위치 지정 및 부동

나는 모든이 떠 될 정사각형 이미지의 컬렉션이 브라우저 윈도우의 가장자리에 계속하고, 절대 위치 DIV 감싸는. 절대 위치 지정은 문서 흐름에서 div를 빼내는 것을 의미합니다. 즉,이 문제에 대한 간단한 해결책을 생각할 수 없습니다.

누구나 이런 종류의 문제를 해결했습니다. 잠재적으로 자바 스크립트?

편집 : link

+2

원하는 이미지가 있습니까? 절대 위치 지정이 필요하지 않을 수도 있습니다. – jeroen

+0

네가 맞다고 생각해. 영상이 좀 필요해. 아이디어의 대략적인 배치를했습니다. 줄 바꿈은 창의 너비입니다. 빨간색 사각형은 순서대로 플로팅 된 이미지이고 '절대'div는 검은 색 영역입니다. 감사. [link] (http://imageshack.us/photo/my-images/809/layouton.png/) –

+1

이미지가 랩 어라운드해야합니까, 아니면 검은 색 영역 뒤쪽으로 갈 수 있습니까? 그렇다면 단순히 배경 이미지를 사용하여이를 달성 할 수 있습니다. –

답변

0

난 당신이 더 많은 유연성을 원하는 같은데요,하지만 디자인은 합리적으로 해결 된 경우 단지의 경우, 당신은 단지 3 열 (컨테이너 div)를 사용할 수 있습니다 및 열 당에서 모두 정렬합니다.

당신의 HTML이 고정되어있는 경우, 당신은 자바 스크립트를 사용할 수 있지만 어떤 기성품 솔루션을 알고하지 않습니다.

나는 아마 수학을 더미 이미지를 삽입하는 자바 스크립트를 사용합니다/올바른 위치에서 블랙 박스 뒤에 요소 (블랙 박스 유지는 절대 위치). 당신은 또한 그 서버 쪽을 할 수 있습니다.

+0

Hey Jeroen, 저는 창 크기에 따라 더미 이미지를 주입하는 아이디어를 좋아합니다. 나는 그것에 가야 할 것입니다. 고마워, 좋은 계획 같아! –

+0

참고로 레이아웃과 디자인을 완성하는 방법은 다음과 같습니다. http://sarahgreavesart.com/ 다시 도움을 청합니다 : –

+0

@Michael Watson 니스 사이트! – jeroen

0

편집 : 여기에 거친 레이아웃의 이미지에서 심사, 나는 개인적으로 테이블을 사용합니다. 그러나, 수레을 달성 할 수 있습니다

(이미지 : http://i.stack.imgur.com/KAqxZ.png)

<style> 
#cont { 
    width: 100px; 
} 
.small { 
    float:left; 
    height:25px; 
    width:25px; 
    background-color:#00F; 
} 
.big { 
    float:left; 
    height:50px; 
    width:50px; 
    background-color:#F00; 
} 
.long { 
    float:left; 
    height:50px; 
    width:25px; 
    background-color:#F0F; 
} 
.long .small { 
    background-color:#F0F; 
} 
</style> 

<div id="cont"> 
    <div class="small"></div> 
    <div class="small"></div> 
    <div class="small"></div> 
    <div class="small"></div> 
    <div class="long"> 
    <div class="small"></div> 
    <div class="small"></div> 
    </div> 
    <div class="big"></div> 
    <div class="small"></div> 
    <div class="small"></div> 
</div> 

원본 : 그러나

<div class="absolute-wrapper"> 
    <div><!-- whatever content you intended for the absolute div... --></div> 
    <div class="float-left">...</div> 
    <div class="float-left">...</div> 
    ... 
</div> 

:

나는 같은 것을 할 것 , 절대적으로 배치 된 요소가 아닌 다른 솔루션을 검색하는 것이 좋습니다. 그들은 쉽게 유지할 수 없게됩니다.

+0

도움 주셔서 감사합니다. 내 문제는 얼마나 많은 이미지가 오른쪽으로 뻗어 있어도 이미지가 순서대로 남아 있어야한다는 것입니다. 순서는 왼쪽에서 오른쪽으로 흐르고 절대 위치 지정을 사용하여 영역을 건너 뜁니다. 이것은 내 꿈입니다 :) –

+0

그럼 어딘가에서 크기를 계산하고 내 예제와 같이 그룹화해야합니다. 몇 줄의 자바 스크립트가 트릭을해야합니다. – sapht

0

당신은 캔버스 요소와이 작업을 수행 할 수 있지만, 그것은 단점이있다. 당신은 자바 스크립트에 따라 달라집니다, 당신은 자바 스크립트에서 모든 위치를해야합니다.

도움이되지는 않지만이 정확한 디자인이 얼마나 중요한지 고려해야한다고 생각합니다. 왜냐하면 오늘날의 HTML은 실제로 이러한 유형을 위해 구축 된 것이 아니기 때문에 단순한 솔루션이 없다고 생각하기 때문입니다. 의 레이아웃. 이러한 예비 적 기능을 작성

: 미래는 자바 스크립트를 사용하여

+1

맞습니다. HTML과 친숙하지 않습니다. 그것은 일종의 요점 이었지만, 나는 내가 조금 노력하고 스트레칭을 할 것이라고 생각했다. 나는 백업으로 더 합리적인 레이아웃을 가지고, 그냥 정말 이런 식으로 가능한 달성의 아이디어를 좋아했다. –

+0

좋아요! 그것은 그것에 대해 갈 수있는 올바른 방법입니다 :) 당신이 그것을 작동하게 만들 수 있다면, 결과를 보는 것이 좋을 것입니다! –

+1

안녕하세요, Adrian, 이것이 제가 한 일입니다. http://sarahgreavesart.com 완전히 유체가 아니라 기본적으로 3 가지 '옵션', 1400 와이드, 1200 와이드와 1000 와이드가 있습니다. 더미 상자가 절대 div 뒤에 표시됩니다. –

0

이/jQuery를, 그것은 다음과 같은 의사 코드의 논리를 사용하여 수행 할 수 ... 다중 열 및 인 flexbox 같은 것들을 우리에게 제공하지만 약속하고 단계 ....

1 단계 : 클래스가 fakeSquare 이름이있는 DOM에서 모든 div를 제거합니다. 예 :

$('.fakeSquare').remove(); 

2 단계 : 한 행의 빨간색 div 수를 계산합니다. 이 번호는 squaresPreRow에 저장하십시오. 다음과 같이 입력하십시오 : var squaresPreRow = floor(window width/square width).

단계 3 : squaresPreRow + 1 붉은 사각 div 다음에 두 개의 빈 div를 추가하십시오. 같은 ...

$("div.redSquare") 
    .index(squaresPreRow + 1) 
    .append("<div class="fakeSquare redSquare"></div><div class="fakeSquare redSquare"></div>"); 

4 단계 : 다시 그리고 ...

$("div.redSquare") 
    .index((squaresPreRow * 3) + 1) 
    .append("<div class="fakeSquare redSquare"></div><div class="fakeSquare redSquare"></div>"); 

마지막으로 : 세 번째 행에 대한 평방 또 다른 2 ...

$("div.redSquare") 
    .index((squaresPreRow * 2) + 1) 
    .append("<div class="fakeSquare redSquare"></div><div class="fakeSquare redSquare"></div>"); 

5 단계 추가 DOM이 준비가되었을 때나 윈도우가 바뀔 때마다이 함수를 호출하고 싶다.

일부 조정이 필요할 수 있지만 잘하면 시작할 수 있습니다.

관련 문제