두 개의 텍스트 필드가 나란히 있고 자동으로 공간을 채우기 위해 웹 폼에서 플렉스 디스플레이 속성을 사용하고 싶습니다. 나는 테이블 레이아웃 위에 flex를 사용하기로 결정했다. 왜냐하면 윈도우가 축소되었을 때 그들 자신의 라인으로 옮기길 바랬 기 때문이다.양식의 CSS 플렉스 박스
나는 flexbox 사용법을 오해하고 있다고 생각합니다.
아래는 지금까지의 작업입니다 (여기에 게시하기 위해 단순화되었습니다). 나는 플렉스 부모로서 fieldset을 사용하고 있으며, "성장"해야 할 각 양식 요소는 div에 쌌다 (같은 줄에있을 수 있도록 display: inline
로 설정). 필드 집합에 대한 전설도 있는데, display:block
및 width:100%
으로 설정되어 자체 줄에 표시됩니다.
당신이 볼 수 있듯이
fieldset {
display: flex;
flex-direction: row;
justify-content: space-between;
border: none;
}
label {
display: none;
}
legend {
display: block;
width: 100%;
}
fieldset > div {
display: inline;
flex: 1 1 auto;
}
input {
width: 100%;
}
<form>
<fieldset>
<legend>These are Text Fields</legend>
<div>
<input type="text" id="text1">
<label for="text1">Text Field</label>
</div>
<div>
<input type="text" id="text2">
<label for="text2">More Text</label>
</div>
</fieldset>
</form>
jsFiddle link , div의 자신의 행에 각이합니다 (display: inline
및 인 flexbox 물건에도 불구하고). div 요소에 테두리를 추가하면 해당 요소가 현재 100 % 너비임을 알 수 있습니다. 하지만 너비를 수동으로 정의하더라도 (30 %와 같이), 그것들은 자신의 줄에 남아 있습니다.
div를 나란히 표시하고 부모의 너비를 채우도록 크기를 조절하려면 어떻게해야합니까? 여기
참조 https://bugzilla.mozilla.org/show_bug.cgi?id=949476 및 https://code.google.com/p/chromium/issues/detail?id=262679 간단한에서 'fieldset'는 오버라이드 할 수없는 전용 렌더러를 가지고 있습니다. –
@ GabyakaG.Petrioli 감사합니다. 나는 원래의 검색에서 그 질문을 발견하지 못했다. 나는 그것이 그것이 고유 한 fieldset 것으로 의심하지 않았다. –