백분율을 사용하여 표 셀의 최대 너비를 어떻게 설정할 수 있습니까?


100
<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>

<style>
td{max-width:67%;}
</style>

위는 작동하지 않습니다. 백분율을 사용하여 표 셀의 최대 너비를 어떻게 설정할 수 있습니까?


"작동하지 않음"으로 확장하십시오 .
Sparky 2011

1
td의 PARENT가 특정 너비를 가지고 있는지 확인해야합니다 (너비 : 100 %; body에서 td까지 전달하는지 여부, 또는 부모 (여기 : tr) 1000px 또는 원하는대로 제공 할 수 있음). . CSS에서 %% 사용하는 경우 항상 부모에 정의 된 정확한 픽셀을 사용하고 그들이 크기 가지고 다음, 어린이를위한 %%로 픽셀을 변환 상대적으로 자신의 부모를.
필립 마이스너

기록을 위해 max-width는 이제 Safari와 Chrome에서 작동합니다. 얼마나 오랫동안 지원되었는지 잘 모르겠습니다.
Jacob

답변:


71

CSS 2.1 사양 의 max-width 정의에 따르면 "테이블, 인라인 테이블, 테이블 셀, 테이블 열 및 열 그룹에 대한 '최소 너비'및 '최대 너비'의 효과는 정의되지 않았습니다." 따라서 td 요소에 최대 너비를 직접 설정할 수 없습니다.

두 번째 열이 최대 67 %를 차지하도록하려면 너비 (테이블 셀의 경우 사실상 최소 너비)를 33 %로 설정할 수 있습니다 (예 : 예제의 경우).

td:first-child { width: 33% ;}

두 열 모두에 대해 설정하면 브라우저가 열 너비를 동일하게 만드는 경향이 있기 때문에 잘 작동하지 않습니다.


실제로 max-width는 이제 Safari와 Chrome에서 작동합니다. 얼마나 오랫동안 지원되었는지 잘 모르겠습니다.
Jacob

114

내가 아는 오래된 질문이지만 이제는 table-layout: fixed테이블 태그 의 css 속성 을 사용하여 가능 합니다. 이 질문에서 아래 답변 표 셀의 CSS 백분율 너비 및 텍스트 오버플로

를 사용 table-layout: fixed하면 쉽게 할 수 있지만이 CSS 속성에 대해 아는 사람이 많지 않기 때문에 약간 까다 롭습니다.

table {
  width: 100%;
  table-layout: fixed;
}

여기에서 업데이트 된 바이올린에서 실제로 확인하십시오 : http://jsfiddle.net/Fm5bM/4/


2
감사! 고정은 너비가 설정되지 않은 셀의 너비를 다시 계산하지 않을 것이라는 것을 의미하지만 운 좋게도 그렇지 않습니다.
fassl

4
jsfiddle에서 너비 속성을 제거하면 max-width가 여전히 작동하지 않으므로 문제가 어떻게 해결되는지 확실하지 않습니다.
frezq

4
@superphonic 나는 당신이 혼란스러워하는 것 같아요. max-width해당 jsfiddle에서 를 제거하면 너비가 동일하게 유지되므로 max-width설정하는 것이 아닙니다. max-width: 10%처음 으로 a 로 td바꾸면 더 명확해질 수 있습니다 ... 변경되지 않음을 알 수 있습니다. jsfiddle.net/w3f8ey22/1
frezq

4
table-layout : fixed는 OP 문제를 해결하지 않습니다. 마술처럼 테이블 셀에서 '최소 너비'가 작동하도록 만들지는 않습니다. table-layout : fixed가 제거 된 경우 참조 된 두 바이올린 모두 표시에 차이가 없습니다.
cmerriman

2
이 질문에 관련되지 않는이 답변이 오해의 소지가있다
졸탄 술레

8

나는 이것이 말 그대로 1 년 후라는 것을 알고 있지만 나는 나눌 것이라고 생각했다. 나는 똑같은 일을하려고 노력하고 있었고 나를 위해 일한이 솔루션을 발견했습니다. 전체 테이블의 최대 너비를 설정 한 다음 원하는 효과를 위해 셀 크기로 작업했습니다.

테이블을 자체 div에 넣은 다음 전체 테이블에 대해 원하는대로 div의 너비, 최소 너비 및 / 또는 최대 너비를 설정합니다. 그런 다음 다른 셀의 너비와 최소 너비를 작업하고 설정할 수 있으며 div의 최대 너비는 효과적으로 주변 및 역방향으로 작업하여 원하는 최대 너비를 얻을 수 있습니다.

<div id="tablediv">
<table width="100%">
 <tr>
  <td class="tdleft">Test</td>
  <td>A long string blah blah blah</td>
 </tr>
</table>
</div>

그런 다음 스타일에 다음을 입력하십시오.

#tablediv {
    width:90%;
    min-width:800px
    max-width:1500px;
}
.tdleft {
    width:20%;
    min-width:200px;
}

물론 이것은 셀 자체의 "최대"너비를 제공하지는 않지만 이러한 옵션 대신 작동 할 수있는 일부 제어를 허용합니다. 귀하의 필요에 맞는지 확실하지 않습니다. 페이지의 내비게이션 측면이 일정 지점까지 확대 및 축소되기를 원하는 상황에서 효과가 있었지만 요즘에는 모든 와이드 스크린에서 작동한다는 것을 알고 있습니다.


0

백분율은 절대 크기에 상대적이어야합니다. 다음을 시도하십시오.

<table>
<tr>
<td>Testasdas 3123 1 dasd as da</td>
<td>A long string blah blah blah</td>
</tr>
</table>

<style>
table{width:200px;}
td{width:65%;border:1px solid black;}
</style>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.