2017-03-27 1 views
0

3x3 HTML 테이블이 있습니다. 두 번째 행에는 첫 번째와 세 번째 열에 내용이 세로로 표시되도록 회전 된 div가 포함됩니다. 다른 셀은 내용을 정상적으로 보여줍니다. 이러한 수직 구간은 TD 높이에서 오버플로됩니다. Div 높이 (세로 폭)를 기준으로 TD 높이를 동적으로 확장하려고합니다. 여기 자동 확장 TD 포함 된 DIV에 따라

는 업데이트] fiddle

의 코드입니다

HTML

<table> 

    <tr> 
    <td> 
     <div> 
     ? 
     </div> 
    </td> 
    <td> 
     <div> 
     <input placeholder="some text"> 
     <button>X</button> 
     </div> 
    </td> 
    <td> 
     <div> 
     ? 
     </div> 
    </td> 
    </tr> 

    <tr> 
    <td class="expand"> 
     <div class="vertical"> 
     <input placeholder="some text"> 
     <button>X</button> 
     </div> 
    </td> 
    <td> 
     <div> 
     <input placeholder="some text"> 
     <button>X</button> 
     </div> 
    </td> 
    <td class="expand"> 
     <div class="hw vertical"> 
     <input placeholder="some text"> 
     <button>X</button> 
     </div> 
    </td> 
    </tr> 

    <tr> 
    <td> 
     <div> 
     ? 
     </div> 
    </td> 
    <td> 
     <div> 
     <input placeholder="some text"> 
     <button>X</button> 
     </div> 
    </td> 
    <td> 
     <div> 
     ? 
     </div> 
    </td> 
    </tr> 

</table> 

CSS

table td { 
    border: 2px solid lightgray; 
} 

.hw { 
    width: 208px !important; 
    height: 20px; 
} 

.expand { 
    white-space: pre; 
} 

.vertical { 
    /* writing-mode: vertical-rl; */ 
    transform: rotate(90deg); 
} 

미리 감사드립니다.

답변

1

td에서 사용 white-space: pre;.

확인이 업데이트 된 조각을 편집합니다. 텍스트를 세로로 만들기 위해 'writing-mode : tb-rl'을 사용했습니다. 이 broswer 지원

확인 Can I Use

table td { 
 
    border: 2px solid lightgray; 
 
    white-space:nowrap 
 

 
    } 
 
.vertical { 
 
    writing-mode: tb-rl; 
 
}
<table> 
 

 
<tr> 
 
    <td> 
 
    <div> 
 
     ? 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div> 
 
     lorem ipsum 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div> 
 
     ? 
 
    </div> 
 
    </td> 
 
</tr> 
 

 
<tr> 
 
    <td> 
 
    <div class="vertical" > 
 
     vertical text 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div> 
 
    lorem ipsum 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div class="vertical"> 
 
    vertical text 
 
    </div> 
 
    </td> 
 
</tr> 
 

 
<tr> 
 
    <td> 
 
    <div> 
 
     ? 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div> 
 
     lorem ipsum 
 
    </div> 
 
    </td> 
 
    <td> 
 
    <div> 
 
     ? 
 
    </div> 
 
    </td> 
 
</tr> 
 

 
</table>

+0

좋아요. 그러나 이것은 또한 다른 세포들을 '?' 그것에서 첫 번째와 마지막 행. 또는 다른 말로하면 포함 된 내용 너비/높이의 셀을 맞추고 싶습니다. – Jawaid

+0

굉장합니다. 감사. 이것은 완벽하게 작동했습니다. 하지만 내 애플 리케이션에서 그 내용을 표시하지 수직으로 높이를 조정하지 사용. – Jawaid

+0

http://caniuse.com/#search=writing-mode에서 볼 수 있듯이이 속성은 Opera Mini에서 지원되지 않습니다. 이게 당신 사건입니까? – aje

0

당신은 jQuery를 함께이를 달성 할 수

var height = $('.vertical').width(); $('.vertical').css({'height':height+'px'});

그것은 수평 경우 TD이었을 것입니다 무슨의 폭을 소요하고 대신 높이에 적용합니다.

Jsfiddle here

+0

내가 대신 jQuery를/자바 스크립트의 CSS를 사용하는 것을 선호합니다. 그 이유는 페이지가로드 될 때마다 또는 행/열이 추가/삭제 될 때마다 JS가 실행되어야하기 때문입니다. 이후, 이것은 테이블 행/열이 동적으로 추가/삭제되는 응용 프로그램의 일부입니다. – Jawaid

관련 문제