flex로 가로로 배열된 두 항목 중 하나의height 동적 변화로 다른 것도 변동하지 마라
과제.
flex로 두 항목을 가로로 배열할 때 기본적으로 높이도 신축되고 한 항목의 높이가 동태적으로 변하면 다른 높이도 변동한다.
한쪽만 동적으로 변화시키고, 다른 한쪽은 변화시키려 하지 않는 경우도 있다고 생각해서 그 해결책을 적었다.
나는 처음에 자바스크립트
resizeObserver
로 감시하고 싶었는데 고도가 변할 때마다 하이라이트의 값을 바꾸려고 했지만 그런 일을 하지 않고 끝났다.실제로 행동해 보세요.
코드
index.html
<div>
pattern 1 item2の高さも変動する
</div>
<div class="flex">
<div id='item1' class="item1">
item1
</div>
<div id='item2' class="item2">
item2
</div>
</div>
<button class="button" onclick='changeHeight()' style='margin-bottom: 32px;'>change</button>
<div>
pattern2 item4の高さが変動しない
</div>
<div class="flex">
<div id='item3' class="item3">
<div id='inner_item' class="inner_item">
item3
</div>
</div>
<div id='item4' class="item4">
item4
</div>
</div>
<button class="button" onclick='changeHeightItem3()'>change</button>
mein.css .flex {
display: flex;
margin-bottom: 32px;
}
.item1 {
width: 100px;
padding: 8px;
margin-right: 16px;
background-color: red;
color: white;
font-size: 20px;
}
.item2 {
width: 100px;
padding: 8px;
background-color: blue;
color: white;
font-size: 20px;
}
.item3 {
position: relative;
width: 100px;
margin-right: 16px;
}
.inner_item {
position: absolute;
overflow: scroll;
top: 0px;
left:0px;
width: 100%;
height: 100%;
padding: 8px;
background-color: red;
color: white;
font-size: 20px;
}
.item4 {
width: 100px;
padding: 8px;
background-color: blue;
color: white;
font-size: 20px;
}
.button {
padding: 8px;
}
main.js var changeHeight = () => {
var item1 = document.getElementById('item1');
item1.style.height = 200;
};
var changeHeightItem3 = () => {
var inner_item = document.getElementById('inner_item');
inner_item.style.height = 200;
};
설명
상단 측면은
片方の高さ変動に合わせてもう片方も変動してしまう失敗パターン
,下段が片方の高さだけを変えることに成功した成功パターン
.구성상 달라진 점은 가로로 늘어선 요소가 아니라 그 아이의 요소를 변동하는 요소로 바꾼 것이다.
가로로 배열된 요소
display: relative;
, 그리고 변동하는 자요소display: absolute;
.이렇게 되면 그 중의 하위 요소는 더 이상 flex의 영향을 받은 item이 아니기 때문에 그 가로 요소의 세로 너비는 변화가 일어나지 않을 것이다.
(상기 예에서 너무 깊이 고려하지 않았기 때문에 고도의 변동 단추를 숨긴다)
조건에 따라 변동하지 않으려는 요소
max-height
만 설정하면 되지만, 스스로 해결하고 싶은 모드에서는 이상으로 해결됐다.그게 다야.
Reference
이 문제에 관하여(flex로 가로로 배열된 두 항목 중 하나의height 동적 변화로 다른 것도 변동하지 마라), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/cho_kin/articles/flex-items-change-height텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)