기본적으로 다음과 같은 구조의 요소가있는 웹 페이지에서 작업하고 있습니다. 부모 컨테이너가 있고 하위 컨테이너와 함께 "선"(예제 이미지에서 빨간색으로 표시) 또는 추가 중첩 된 하위 컨테이너 (검은 색 테두리가있는 노란색 상자로 표시)가 각각 포함될 수 있습니다. 각 하위 컨테이너 자체에는 임의의 깊이에 중첩 된 줄 또는 추가 하위 컨테이너가있을 수 있습니다. 물론 하위 컨테이너 내부의 선은 부모 선의 선보다 좁습니다.요소를 한 부모에 대해 상대적으로 가로로 배치하고 다른 부모에 대해 세로로 배치하는 방법은 무엇입니까?
각 줄과 관련하여 두 줄의 추가 정보가 있으며 줄의 왼쪽과 오른쪽에 있지만 컨테이너 장치 전체에 표시해야합니다. 이들은 그림의 자주색 및 파란색 상자로 표시됩니다. 문제는 이것들을 배치하는 것입니다. 하위 컨테이너에 중첩되어있는 행과 관계없이 가장 바깥 쪽 컨테이너의 측면에서 일정한 거리를두고 서로 연관되어있는 행이 수직으로 정렬되어 있어야하지만 서로 수평으로 정렬되어야합니다.
나는 가능하면 순수 CSS 솔루션을 찾고 있어요 : 모습 방법 일 다음
이다. 그러나 절대 위치 지정을 사용하면 절대 위치가 상대적인 위치로 가장 바깥 쪽 부모를 사용하고 오른쪽 위치를 얻거나 절대 위치가 상대적인 위치로 선을 가져 와서 세로 위치를 얻을 수 있습니다. 맞지만, 모두는이 아닙니다. 다음에 예를 들어
:
#parent {
margin-right: 50px;
margin-left: 50px;
}
.subcontainer, .container {
padding: 20px 20px 20px 50px;
min-height: 20px;
background-color: yellow;
border: 2px solid black;
margin-bottom: 10px;
}
.box {
min-height: 20px;
background-color: red;
margin-bottom: 10px;
position: relative;
}
.righty {
position: absolute;
min-height: 14px;
min-width: 30px;
right: -64px;
background-color: blue;
}
.lefty {
position: absolute;
min-height: 14px;
min-width: 30px;
left: -94px;
background-color: purple;
}
<div id="parent" class="container">
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
<div class="box"></div>
<div class="subcontainer">
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
<div class="subcontainer">
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
</div>
</div>
<div class="subcontainer">
<div class="box">
<div class="lefty"></div>
<div class="righty"></div>
</div>
</div>
</div>
는 내가 얻을 것이 이것이다 :
그러나 파란색과 보라색 상자 수평 정렬되지 않은 그들이해야하는 것처럼.
자바 스크립트 (여기는 JsFiddle)로 문제를 해결할 수 있지만 내부 컨테이너가 크기 조정 등으로 정기적으로 호출해야하므로 짜증이납니다 (확대/축소시 왜곡되는 경향이 있습니다) . 이 작업을 수행 할 수있는 순수한 CSS 방법이 있다면 훌륭합니다.
감사합니다.
이것은 약간의 설명과 함께 훨씬 더 유용 할 것입니다. –
이것은 내가 필요한 것에 가깝다. 불행히도 실제 사용 시나리오에서는 빨간색 상자와 파란색/자주색 상자가 항상 같은 높이는 아닙니다. 나는 .lefty에'top : 0'을, .righty에'bottom : 0'을 사용하여 빨간색 상자의 상단과 하단에 각각 정렬합니다. 이 코드는 작동하지 않습니다. 비록 내가 조정할 수 있습니다. – frabjous