2010-07-22 2 views
4

내 목표는 테이블로 HTML 파일을 생성하고 pdf로 내보내는 것입니다.
불행히도 내가 원하는 것처럼 행동 할 수있는 테이블을 얻을 수 없습니다.테이블 속성 너비가 무시됩니다

테이블의 한 부분에는 가장 낮은 행, 주, 월 및 연도에있는 일과 함께 시간 눈금이 표시되고 위 행에는 미리 계산 된 colspan이 있어야합니다.

요일의 s는 CSS (style="width:...")로 주어진 너비 만 있습니다.

문제는 너비가 완전히 무시되므로 1-9 일의 기간은 다른 것보다 절반 밖에되지 않는다는 것입니다. 그리고 따라 와서, 위의 필드는 크기가 주어지지 않았기 때문에 자동으로 크기 때문에 그 크기도 틀립니다. Heres는

alt text http://img217.imageshack.us/img217/6617/scale1x.jpg

생성 된 소스 : http://pastebin.com/JyiqhSzs

는 우리가 지금까지 시도하는 것 :

  • 사용 비 CSS (width="")
  • 는 또한 계산 된 다른 필드를 제공 너비 (하루의 너비에 곱한 콜 스팬 값)

테이블에 style="table-layout:fixed;"도 설정하지만 아무 효과가 없습니다.

그래서 테이블에 원하는 너비를 갖게하는 방법을 모르겠습니까?

답변

11

대신 width: 23px 사용 min-width: 23px. IE8 및 FireFox에서 작동했습니다. 아직 IE7에 대한 한 마디 수식을 알아 내지 못했습니다. table-layout: fixed은 필요하지 않으며 IE7 디스플레이에서 문제가 발생할 수 있습니다.

항상 동일한 크기로 만들려면 em 크기 조정을 사용하는 것이 좋습니다. 텍스트 크기가 변경되면 테이블 크기가 비례 적으로 증가/감소합니다. 나는 당신의 모든 필요를 알지 못하지만,보아야 할 제안입니다.

편집 : 더 많은 크로스 브라우저 솔루션. IE6, 7 필요가 대신 폭의 모든 종류의 스타일로 td 스타일링의 다음 div로 싸서 "일"세포에있는 모든 숫자를 가지고 할 수있는 width: 23px하지min-width: 23pxdiv.

+0

'min-width'도 나를 위해 일했습니다. 왜 * width *가 작동하지 않는지를 아는 것은 흥미로울 것입니다. –

1

그냥 지정할 수 없습니다 "폭 = ..."당신은 ... 끝까지 CSS 요소 표시를 변경해야

그래서 우리는 셀이 30 픽셀 넓게한다고 가정 할 수 있습니다 :

style="width: 30px !important; display: block;" 

display : 블록; 기본적으로 CSS에 width : 및 height :에 주어진 치수를 기반으로 요소의 크기를 조정해야하며 요소에 실제로 포함 된 내용을 기반으로하지 말아야한다고 알려줍니다.

그러나 요소의 내용이 너비와 높이로 지정된 범위를 벗어날 수 있다는 점에 대해서는 약간의 우려가 있지만이 상황에서는 큰 문제가 될 것이라고 생각하지 않습니다. .

HTH

+0

:

<tr class="days"><td>1</td><td>2</td></tr> tr.days td { width: 23px; } 
CSchulz

+0

문제가있는 모든 셀에 변경 사항을 적용하고 실패하면 패딩을 추가합니다. 0 2px 0 2px! important; 스타일. 이렇게하면 셀의 왼쪽과 오른쪽에 2px의 여유 공간이 생깁니다. –

+0

코드를 붙여 넣기 상자에서 다운로드하여 주변을 둘러 보았을 때 패딩을 추가해도 작동하지 않습니다. "나쁜"셀에서 colspan으로 변경할 수 있다면 그렇게해야합니다.하지만 모든 단일 셀을 편집하여 올바르게 표시해야 할 수도 있습니다. –

2

실제 페이지에서도 으로 잘못 입력 된 style 속성입니까?

좀 더 힌트 :

  • 테이블이 전체 페이지에 맞지 않는 경우 테이블 셀이 수축하는 것은 정상입니다, 그것은 HTML 테이블이 작동하는 방법입니다.
  • 오타를 수정 한 후 table-layout: fixed을 시도하십시오.
  • 그래도 작동하지 않으면 각 셀에 div (또는 다른 요소)을 추가하고 너비를 대신 지정해야합니다.
  • 글꼴이없는 경우 너비는 작동하지 않습니다. 예상하는 크기 (아니요, 특정 크기로 강요 할 수 없습니다). 시도해보십시오 2ex.
  • 각각의 스타일을 설정하는 대신 td의 모든 스타일 시트를 설정하십시오.

예 :

<td style="width:50em"> 
0

내가 좋아하는, 예상되는 텍스트보다 약간 더 큰 무언가에 <td> 수준의 폭을 설정하여 유사한 경우에 같은 문제를 해결 그것은 나를 위해 작동하지 않습니다. 하지만 마지막 행만 편집했거나 모두 편집해야합니까?
관련 문제