CSS 만 사용하여 div를 재정렬하려면 어떻게해야합니까?


266

다른 요구 사항으로 인해 HTML을 수정할 수없는 템플릿이 주어진 경우 HTML 에서 순서가 div다른 div경우 HTML을 다른 형식 으로 표시 (재배치)하는 방법은 무엇입니까? 두 가지 모두 div높이와 너비가 다른 데이터를 포함합니다.

<div id="wrapper">
    <div id="firstDiv">
        Content to be below in this situation
    </div>
    <div id="secondDiv">
        Content to be above in this situation
    </div>
</div>
Other elements

바라는 결과는 다음과 같습니다.

Content to be above in this situation
Content to be below in this situation
Other elements

치수가 고정되면 필요한 위치에 쉽게 배치 할 수 있지만 내용이 가변적 인 경우 몇 가지 아이디어가 필요합니다. 이 시나리오를 위해 너비를 모두 100 %로 고려하십시오.

특히 CSS 전용 솔루션을 찾고 있습니다 (확장되지 않으면 다른 솔루션을 사용해야 할 것입니다).

다음에 다른 요소가 있습니다. 내가 제시 한 제한된 시나리오를 감안할 때 좋은 제안이 언급되었습니다. 이것이 최선의 대답 일 수도 있지만이 요소를 따르는 요소가 영향을받지 않도록하려고합니다.

답변:


279

이 솔루션 은 CSS 만 사용하고 가변 컨텐츠로 작동합니다.

#wrapper   { display: table; }
#firstDiv  { display: table-footer-group; }
#secondDiv { display: table-header-group; }

3
좋은! IE8을 위해 일하거나 불구하고 낮은하지만 당신은 그 브라우저 조건부 스크립트를 사용할 수하지 않습니다 ...
스튜어트 웨이크 필드

1
IE7에서는 작동하지 않는 것이 사실이지만 IE8에는 아무런 문제가 없습니다.
Jordi

3
예, 이것은 모바일 콘텐츠 재정렬에 매우 좋으며 IE 관련 문제는 아직 없습니다! 일반 레이아웃의 경우 먼저 정의되고 왼쪽에 나타나는 메뉴를 생각해보십시오. 그러나 좁은 모바일 디스플레이에서 맨 아래에 나타나기를 원합니다. 이것은 트릭을 아주 잘 수행합니다.
morphles

13
플로트에서는 작동하지 않습니다. float : none을 설정해야합니다. 플로트 세트가 이미있는 경우
토마스

5
참고 : img { max-width: 100% }재정렬 된 요소 내에서는 작동하지 않습니다.
Jonas Äppelgran

239

CSS 전용 솔루션 ( IE10 +에서 작동 ) – Flexbox의 order속성 사용 :

데모 : http://jsfiddle.net/hqya7q6o/596/

#flex { display: flex; flex-direction: column; }
#a { order: 2; }
#b { order: 1; }
#c { order: 3; }
<div id="flex">
   <div id="a">A</div>
   <div id="b">B</div>
   <div id="c">C</div>
</div>

자세한 정보 : https://developer.mozilla.org/en-US/docs/Web/CSS/order


1
주문은 여기에서 작동합니다. 그러나 아이들은 100 % 너비를 얻지 못합니다. 대신, 그들은 같은 행에서 공간을 공유하고 있습니다. 이 방법으로 각 어린이에 대해 100 % 너비를 어떻게 활용할 수 있습니까?
aniskhan001 2016 년

8
#flex { display: flex; flex-direction: column; }100 % 너비 행을 표시합니다. jsfiddle.net/2fcj8s9e
저스틴

transform더 넓은 브라우저 지원을 사용하여 수행 할 수 있습니다
Finesse

iPhone 6s 이하에서는 지원되지 않음
AntonAL

4
이 솔루션을 사용하면 원하는 수의 div에 원하는 순서를 선택할 수 있습니다. 허용되는 솔루션 IMO 여야합니다.
mareoraft

83

다른 사람들이 말했듯이, 이것은 CSS에서하고 싶은 것이 아닙니다. 절대 위치와 이상한 여백으로 퍼지 할 수는 있지만 강력한 솔루션은 아닙니다. 귀하의 경우 가장 좋은 옵션은 자바 스크립트로 설정하는 것입니다. jQuery에서 이것은 매우 간단한 작업입니다.

$('#secondDiv').insertBefore('#firstDiv');

또는 더 일반적으로 :

$('.swapMe').each(function(i, el) {
    $(el).insertBefore($(el).prev());
});

2
때로는 더 강력한 사람들에게 양보하는 것이 가장 좋습니다. 이 경우에는 더욱 우아하게 느껴지고 실제로 제어 할 수 있습니다. 이런 이유로 나는 이것이 더 깔끔하고 좋다고 생각합니다.
착륙

35

Flexbox를 사용하여 수행 할 수 있습니다.

display : flexflex-flow : column-reverse를 모두 적용하는 컨테이너를 만듭니다 .

/* -- Where the Magic Happens -- */

.container {
  
  /* Setup Flexbox */
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;

  /* Reverse Column Order */
  -webkit-flex-flow: column-reverse;
  flex-flow: column-reverse;

}


/* -- Styling Only -- */

.container > div {
  background: red;
  color: white;
  padding: 10px;
}

.container > div:last-of-type {
  background: blue;
}
<div class="container">
  
  <div class="first">

     first

  </div>
  
  <div class="second">

    second

  </div>
  
</div>

출처 :


25

사전 인 flexbox 사용자 에이전트 (지원 혼자있을 때 CSS를 통해 원하는 것을 달성 할 수있는 방법 절대적으로 없다 주로 오래된 IE ) - 제외하고는 :

  1. 각 요소의 정확한 렌더링 높이를 알고 있습니다 (있는 경우 내용을 절대적으로 배치 할 수 있음). 동적으로 생성 된 컨텐츠를 다루는 경우 운이 좋지 않습니다.
  2. 이러한 요소의 정확한 수를 알고 있습니다. 다시 말하지만, 동적으로 생성되는 여러 컨텐츠 청크에 대해이 작업을 수행해야하는 경우 특히 3 개 이상인 경우 운이 나빠집니다.

위의 내용이 사실이라면 요소를 절대적으로 배치하여 원하는 것을 할 수 있습니다.

#wrapper { position: relative; }
#firstDiv { position: absolute; height: 100px; top: 110px; }
#secondDiv { position: absolute; height: 100px; top: 0; }

다시 말하지만, 적어도 #firstDiv에 대한 높이를 모르는 경우 CSS만으로 원하는 것을 수행 할 수있는 방법이 없습니다. 이 컨텐츠 중 하나라도 동적이면 javascript를 사용해야합니다.


좋아, 나는 이것을 먼저 downvoted했지만 되 돌렸다. 그래도 1 비트 개선은 여전히 ​​조건에 기인합니다. 순서 가 3보다 크지 않은 한 순서를 바꿀 정확한 요소 수 를 알 필요 는 없습니다 ( 바운티 당첨 답변 참조 ). 이것은 특히 OP와 관련이 있으며 특히 2 개의 항목 만 교환하려고합니다.
Sz.

16

해결책은 다음과 같습니다.

<style>
#firstDiv {
    position:absolute; top:100%;
}
#wrapper {
    position:relative; 
}

하지만 래퍼 div를 따르는 내용이 있다고 생각합니다 ...


그렇습니다 ... 상황에 너무 현명하지 않으려 고 노력하지만 다음과 같은 다른 요소가 있습니다. 제공된 HTML이 제한되어 있지만 좋은 제안은 다른 사람에게는 효과가있을 수 있습니다.
devmode

7

CSS3 flexbox 레이아웃 모듈을 사용하면 div를 주문할 수 있습니다.

#wrapper {
  display: flex;
  flex-direction: column;
}
#firstDiv {
  order: 2;
}

<div id="wrapper">
  <div id="firstDiv">
    Content1
  </div>
  <div id="secondDiv">
    Content2
  </div>
</div>

5

상단 요소의 크기를 알고 있거나 적용 할 수있는 경우

position : absolute;

CSS에서 div에 위치를 지정하십시오.

그렇지 않으면 자바 스크립트가 유일한 방법 인 것 같습니다.

fd = document.getElementById( 'firstDiv' );
sd = document.getElementById( 'secondDiv' );
fd.parentNode.removeChild( fd );
sd.parentNode.insertAfter( fd, sd );

또는 비슷한 것.

편집 : 나는 이것이 유용 할 수있는 것을 발견했다 : w3 document css3 move-to


5

음수 위쪽 여백은이 효과를 얻을 수 있지만 각 페이지마다 사용자 지정해야합니다. 예를 들어이 마크 업은 ...

<div class="product">
<h2>Greatest Product Ever</h2>
<p class="desc">This paragraph appears in the source code directly after the heading and will appear in the search results.</p>
<p class="sidenote">Note: This information appears in HTML after the product description appearing below.</p>
</div>

... 그리고이 CSS ...

.product { width: 400px; }
.desc { margin-top: 5em; }
.sidenote { margin-top: -7em; }

... 두 번째 단락을 첫 번째 단락 위로 당길 수 있습니다.

물론 소개 단락이 적절한 양으로 올라갈 수 있도록 CSS에 다른 설명 길이를 수동으로 조정해야하지만 다른 부분에 대한 제어가 제한되고 마크 업 및 CSS에 대한 모든 제어가 제한적이라면 이것이 옵션 일 수 있습니다 .


4

글쎄, 약간의 절대 위치와 약간의 마진 설정으로 가까이 갈 수는 있지만 완벽하지는 않습니다.

#wrapper { position: relative; margin-top: 4em; }
#firstDiv { position: absolute; top: 0; width: 100%; }
#secondDiv { position: absolute; bottom: 0; width: 100%; }

"여백 상단 : 4em"은 특히 불쾌한 비트입니다.이 마진은 firstDiv의 컨텐츠 양에 따라 조정되어야합니다. 정확한 요구 사항에 따라 가능할 수도 있지만 어쨌든 누군가가 견고한 솔루션을 위해이를 구축 할 수 있기를 바랍니다.

JavaScript에 대한 Eric의 의견은 아마도 추구되어야합니다.


3

이것은 CSS로만 가능합니다!

이 비슷한 질문에 대한 답변을 확인하십시오.

https://stackoverflow.com/a/25462829/1077230

내 답변을 두 번 게시하고 싶지 않지만 짧은 것은 부모가 flexbox 요소가되어야한다는 것입니다. 예 :

(여기서는 웹킷 공급 업체 접두사 만 사용하십시오.)

#main {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    align-items: flex-start;
}

그런 다음 다음과 같이 순서를 표시하여 div를 바꿉니다.

#main > div#one{
    -webkit-box-ordinal-group: 2;
    -moz-box-ordinal-group: 2;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
    overflow:visible;
}

#main > div#two{
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
}

3

CSS에서 첫 번째 div를 왼쪽 또는 오른쪽으로 플로팅하십시오. 첫 번째와 동일하게 왼쪽 또는 오른쪽으로 두 번째 div를 플로트하십시오. 두 번째 div에 위의 두 div를 적용 clear: left하거나 right동일하게 적용하십시오 .

예를 들면 다음과 같습니다.

#firstDiv {
    float: left;
}

#secondDiv {
    float: left;
    clear: left;
}

<div class = "container"> <div id = "secondDiv"> <p> ... </ p> </ div> <div id = "firstDiv"> <p> ... </ p> </ div> </ div>
Vestel

내 경우에는 float : right; 클리어 : 왼쪽; 완벽하게 작동
user956584

clear를 사용하는 것이 좋은 방법이지만 요소를 올바른 방향으로 플로팅해야하며 다른 모든 요소를 ​​플로팅하여 수정해야합니다. Vestel은 다음과 같은 스타일을 사용해야합니다 : <style> #secondDiv, #firstDiv {float : left; } #firstDiv {취소 : 왼쪽; } </ style> <div class = "container"> 컨테이너 <div id = "secondDiv"> <p> secondDiv </ p> </ div> <div id = "firstDiv"> <p> firstDiv </ p> </ div> </ div>
Reza Amya

3

CSS 만 사용하는 경우 flex를 사용할 수 있습니다.

.price {
    display: flex;
    align-items: center;
    justify-content: center;

    flex-direction: row-reverse; //revert horizontally
    //flex-direction: column-reverse; revert vertically
}
<div class="price">
      <div>first block</div>
      <div>second block</div>
</div>


2

모바일 버전에서만 div의 순서를 변경하는 방법을 찾고 있었으므로 멋지게 스타일을 지정할 수 있습니다. 별명으로 감사합니다.이 코드를 내가 원하는 것에 잘 작동하도록 만들었습니다. 그래서 여러분과 공유하고 있습니다.

//  changing the order of the sidebar so it goes after the content for mobile versions
jQuery(window).resize(function(){
    if ( jQuery(window).width() < 480 )
    {
        jQuery('#main-content').insertBefore('#sidebar');
    }
    if ( jQuery(window).width() > 480 )
    {
        jQuery('#sidebar').insertBefore('#main-content');
    }
    jQuery(window).height(); // New height
    jQuery(window).width(); // New width
});

1

flexbox보다 더 큰 브라우저 지원 솔루션 (IE≥9에서 작동) :

#wrapper {
  -webkit-transform: scaleY(-1);
  -ms-transform: scaleY(-1);
  transform: scaleY(-1);
}
#wrapper > * {
  -webkit-transform: scaleY(-1);
  -ms-transform: scaleY(-1);
  transform: scaleY(-1);
}
<div id="wrapper">
    <div id="firstDiv">
        Content to be below in this situation
    </div>
    <div id="secondDiv">
        Content to be above in this situation
    </div>
</div>
Other elements

받는 사람 대조적으로 display: table;할 때 솔루션이 솔루션은 작동 .wrapper아이들의 금액이 있습니다.


div에 이미지가 있으면 어떻게 되나요?>
Ramji Seetharaman

0

display: flexand 를 지정하여 상위 div에 flex를 사용하십시오 flex-direction : column. 그런 다음 순서를 사용하여 하위 div 중 어느 것이 먼저 오는지를 결정하십시오.


2
7y old question에 대한이 답변이 이미 게시 된 것보다 낫다고 생각하는 이유는 무엇입니까? SO에 참여하려면 (좋은) 답변이없는 질문을 찾아 모든 방문자에게 도움이되는 방식으로 질문에 답하십시오.
Marki555

-1

CSS를 사용하여 HTML 백엔드를 재구성하지 마십시오. 그러나 관련된 두 요소의 높이를 알고 해킹 감을 느끼면 가능합니다. 또한 div 사이를 이동할 때 텍스트 선택이 엉망이되지만 HTML과 CSS 순서가 반대이기 때문입니다.

#firstDiv { position: relative; top: YYYpx; height: XXXpx; }
#secondDiv { position: relative; top: -XXXpx; height: YYYpx; }

여기서 XXX와 YYY는 각각 firstDiv와 secondDiv의 높이입니다. 이것은 최상위 답변과 달리 후행 요소와 함께 작동합니다.


그러면 스크린 리더를 탐색하기 전에 컨텐츠를 배치 할 때 "HTML을 재구성하는 데 사용해야하는 것 " 무엇 입니까?
Damian Yerrick

-1

나에 의해 만들어진 훨씬 더 나은 코드가 있는데, 두 가지를 모두 보여주기 위해 너무 큽니다 ... 4x4 테이블을 만들고 하나 이상의 셀을 세로로 정렬하십시오.

IE 해킹을 사용하지 않고 세로 정렬을 사용하지 않습니다. 조금도...

수직 센터링 디스플레이 테이블, 디스플레이에는 사용하지 않습니다 : table-rom; 디스플레이 : 테이블 셀;

숨겨진 두 개 div가있는 컨테이너의 트릭을 사용합니다. 하나는 숨겨져 있습니다 (위치는 정확하지 않지만 부모는 올바른 가변 크기를 가짐). 하나는 숨겨진 직후이지만 맨 위에 표시됩니다 .-50 %; 올바른 위치로 이동합니다.

트릭을 만드는 div 클래스를 참조하십시오. BloqueTipoContenedor BloqueTipoContenedor_VerticalmenteCentrado

수업 이름에 스페인어를 사용하여 죄송합니다. 스페인어를 사용하기 때문에 영어를 사용하면 길을 잃기 때문에 까다로울 수 있습니다.

전체 코드 :

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="en" />
<meta name="language" content="en" />
<title>Vertical Centering in CSS2 - Example (IE, FF & Chrome tested) - This is so tricky!!!</title>
<style type="text/css">
 html,body{
  margin:0px;
  padding:0px;
  width:100%;
  height:100%;
 }
 div.BloqueTipoTabla{
  display:table;margin:0px;border:0px;padding:0px;width:100%;height:100%;
 }
 div.BloqueTipoFila_AltoAjustadoAlContenido{
  display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:auto;
 }
 div.BloqueTipoFila_AltoRestante{
  display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:100%;
 }
 div.BloqueTipoCelda_AjustadoAlContenido{
  display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:auto;
 }
 div.BloqueTipoCelda_RestanteAncho{
  display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:auto;
 }
 div.BloqueTipoCelda_RestanteAlto{
  display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:100%;
 }
 div.BloqueTipoCelda_RestanteAnchoAlto{
  display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:100%;
 }
 div.BloqueTipoContenedor{
  display:block;margin:0px;border:0px;padding:0px;width:100%;height:100%;position:relative;
 }
 div.BloqueTipoContenedor_VerticalmenteCentrado{
  display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;position:relative;top:50%;
 }
 div.BloqueTipoContenido_VerticalmenteCentrado_Oculto{
  display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:hidden;position:relative;top:50%;
 }
 div.BloqueTipoContenido_VerticalmenteCentrado_Visible{
  display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:visible;position:absolute;top:-50%;
 }
</style>
</head>
<body>
<h1>Vertical Centering in CSS2 - Example<br />(IE, FF & Chrome tested)<br />This is so tricky!!!</h1>
<div class="BloqueTipoTabla" style="margin:0px 0px 0px 25px;width:75%;height:66%;border:1px solid blue;">
 <div class="BloqueTipoFila_AltoAjustadoAlContenido">
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [1,1]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [1,2]
  </div>
  <div class="BloqueTipoCelda_RestanteAncho">
   [1,3]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [1,4]
  </div>
 </div>
 <div class="BloqueTipoFila_AltoAjustadoAlContenido">
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [2,1]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [2,2]
  </div>
  <div class="BloqueTipoCelda_RestanteAncho">
   [2,3]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [2,4]
  </div>
</div>
 <div class="BloqueTipoFila_AltoRestante">
  <div class="BloqueTipoCelda_RestanteAlto">
   <div class="BloqueTipoContenedor" style="border:1px solid lime;">
    <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
     The cell [3,1]
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
     </div>
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
     The cell [3,1]
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     *&nbsp;*&nbsp;*&nbsp;*
     <br />
     Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
     </div>
    </div>
   </div>
  </div>
  <div class="BloqueTipoCelda_RestanteAlto">
   <div class="BloqueTipoContenedor" style="border:1px solid lime;">
    <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
      This&nbsp;is<br />cell&nbsp;[3,2]
     </div>
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
      This&nbsp;is<br />cell&nbsp;[3,2]
     </div>
    </div>
   </div>
  </div>
  <div class="BloqueTipoCelda_RestanteAnchoAlto">
   <div class="BloqueTipoContenedor" style="border:1px solid lime;">
    <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
      This is cell [3,3]
      <br/>
      It is duplicated on source to make the trick to know its variable height
      <br />
      First copy is hidden and second copy is visible
      <br/>
      Other cells of this row are not correctly aligned only on IE!!!
     </div>
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
      This is cell [3,3]
      <br/>
      It is duplicated on source to make the trick to know its variable height
      <br />
      First copy is hidden and second copy is visible
      <br/>
      Other cells of this row are not correctly aligned only on IE!!!
     </div>
    </div>
   </div>
  </div>
  <div class="BloqueTipoCelda_RestanteAlto">
   <div class="BloqueTipoContenedor" style="border:1px solid lime;">
    <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
      This&nbsp;other is<br />the cell&nbsp;[3,4]
     </div>
     <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
      This&nbsp;other is<br />the cell&nbsp;[3,4]
     </div>
    </div>
   </div>
  </div>
 </div>
 <div class="BloqueTipoFila_AltoAjustadoAlContenido">
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [4,1]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [4,2]
  </div>
  <div class="BloqueTipoCelda_RestanteAncho">
   [4,3]
  </div>
  <div class="BloqueTipoCelda_AjustadoAlContenido">
   [4,4]
  </div>
 </div>
</div>
</body>
</html>

-1

파티에 조금 늦었지만이 작업을 수행 할 수도 있습니다.

<div style="height: 500px; width: 500px;">

<div class="bottom" style="height: 250px; width: 500px; background: red; margin-top: 250px;"></div>

<div class="top" style="height: 250px; width: 500px; background: blue; margin-top: -500px;"></div>


-2

또는 요소의 절대 위치를 설정하고 개체의 가장자리가 아닌 페이지 가장자리에서 여백을 선언하여 여백을 제거하십시오. 다른 화면 크기에 더 적합하게 %를 사용하십시오. 이것은 내가 문제를 극복 한 방법입니다 ... 감사합니다, 당신이 찾고있는 것을 희망하십시오 ...


-3

CSS 전용 솔루션 1. 래퍼의 높이를 고정하거나 2. div의 높이를 고정해야합니다.


이것은 실제로 묻고있는 질문에 대한 답은 아닙니다. 가능한 해결책을 암시하는 주석에 지나지 않습니다.
cimmanon

-3
.move-wrap {
    display: table;
    table-layout: fixed; // prevent some responsive bugs
    width: 100%; // set a width if u like
    /* TODO: js-fallback IE7 if u like ms */
}

.move-down {
    display: table-footer-group;
}

.move-up {
    display: table-header-group;
}

2
이 솔루션은 이미 3 년 전에 게시되었습니다 : stackoverflow.com/a/12069537/1652962
cimmanon

-4

그것은, CSS를 쉽게 그냥 사용 display:block하고z-index 재산

예를 들면 다음과 같습니다.

HTML :

<body>
    <div class="wrapper">

        <div class="header">
            header
        </div>

        <div class="content">
            content
        </div>
    </div>
</body>

CSS :

.wrapper
{
    [...]
}

.header
{
    [...]
    z-index:9001;
    display:block;
    [...]
}

.content
{
    [...]
    z-index:9000;
    [...]
}

편집 : 물건을 제대로 볼 수 있도록 일부 background-color를 설정하는 것이 좋습니다 div-s.


-4

이 작업을 수행하는 간단한 방법이 있습니다.

<!--  HTML  -->

<div class="wrapper">

    <div class="sm-hide">This content hides when at your layouts chosen breaking point.</div>

    <div>Content that stays in place</div>

    <div class="sm-show">This content is set to show at your layouts chosen breaking point.</div>

</div>

<!--  CSS  -->

    .sm-hide {display:block;}
    .sm-show {display:none;}

@media (max-width:598px) {
    .sm-hide {display:none;}
    .sm-show {display:block;}
}

솔루션이 문제를 해결할 수는 있지만 그 이유 / 방법을 설명 할 수 있습니다. S / O에는 수많은 초보자가 있으며 전문 지식을 통해 배울 수 있습니다. 당신에게 명백한 해결책이 아닐 수도 있습니다.
Taryn East

코드 블록 자체는 일반적으로 유용한 답변이 아니며 다운 보트를 유치 할 가능성이 높습니다. 제발 설명 솔루션이 있음을 보여주는이하는 당신이 어떻게, 그리고 왜 / 어떻게 그 코드는 질문에 대한 대답.
j_s_stack 5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.