2016-11-22 1 views
0

td에 동적으로 너비를 추가하려고합니다. Chrome 및 Safari에서는 잘 작동하지만 FF에서는 작동하지 않습니다.CSS - calc이 작동하지 않습니다. Firefox

Fiddle

HTML

<table border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td>1</td> 
     <td>Title</td> 
     <td>Interpret</td> 
     <td>Album</td> 
     <td>Year</td> 
     <td>YouTube</td> 
    </tr> 
</table> 

CSS

table{ 
    table-layout:fixed; 
    width: 100%; 
    border-collapse: collapse; 
} 
td{ 
    border:1px solid red; 
} 
td:first-child{ 
    width: calc(100%/6 * 0.5); 
} 
td:last-child{ 
    width: calc(100%/6 * 2); 
} 

나는 하드 코드는 픽셀 값 대신 예에 대한 100%가., calc(690px/6 * 2), 그것은 작동합니다.

+3

당신은 인 flexbox 더 나은 행운을해야합니다. –

답변

0

제거 CSS의이 라인 :

table { 
    // table-layout: fixed; 
    width: 100%; 
    border-collapse: collapse; 
} 

table-layout: fixed는 테이블에 자신의 폭을 적용 할 수 있습니다. 파이어 폭스가 왜이 규칙에 부합하는지 잘 모르겠다. 참고로

는 : 기본 폭을 설정 한 내가 그것을 이해 고정 셀 너비를 시뮬레이션하는 동안이, 작동하기 위해서는 using calc() with tables

+0

@ Turnurn Oh? 내가 참조 스레드에서 최고 투표 응답에서 그것을 읽었습니다. 내가 조정할거야. 감사! – Roberrrt

+0

동의! 그러나 고정 된 레이아웃은 모든 'td'에 동일한 폭을 제공하며 내용의 크기가 변하면 변경되지 않습니다. – moustacheman

-1

뿐만 아니라 auto-fixed에서 table-layout을 변경하는 것입니다 모두 td 님의 답변

동적으로 이렇게하려면 테이블 너비를 열 수 (이 경우 백분율로)로 나눕니다. - 100/6 = 16.66666....

그렇다면 우리는 또한 기존의 수식 (각각 0.52 등)로 유지하면서 16.6666%100% 대체함으로써, 그리고 :first-child:last-child 대한 calc() 내, 그 값을 사용한다.

CSS

table{ 
    table-layout:auto; 
    width: 100%; 
    border-collapse: collapse; 
} 
td{ 

    border:1px solid red; 
    width: 16.6666%; 
} 
td:first-child{ 
    width: calc(16.6666% * 0.5); 
} 
td:last-child{ 
    width: calc(16.6666% * 2); 
} 

Example Fiddle

+0

수동으로 나눌 필요가 없으며,'table-layout'을'auto'로 변경할 때 작동 할 것입니다. – moustacheman

+0

@aravindtrue OP에서 요청한대로 Firefox에서 작동하려면 수동으로해야합니다. 그렇지 않으면 처음과 마지막 사이의 모든 열이 다양한 너비가됩니다. 이것을 설정하면 명시 적으로 첫 번째와 마지막을 백분율 * 수정 자로 허용하는 동시에 해당 열을 유동적이고 균일하게 유지함으로써이 문제를 명시 적으로 해결할 수 있습니다. – seantunwin

관련 문제