2012-03-12 3 views
1

나는 5 개의 열이있는 테이블을 가지고 있는데 그 중 2 개는 너비가 설정되어 있고 나머지 세 개는 그렇지 않습니다. 서로 다른 브라우저가 일관성이없는 것으로 해석합니다.빈 셀의 너비는 고정되어 있습니까?

다른 브라우저에서 this fiddle을 확인하십시오.

파이어 폭스와 IE9는 올바른 방식으로 렌더링합니다. 모든 셀의 폭은 20 % (두 개는 각각 20 %의 너비가 설정되고 나머지 60 %는 나머지 세 개의 셀로 나뉩니다)라고합니다.

크롬, 오페라, IE7 및 IE8은 너비가 0이되도록 빈 너비를 설정하고, 나머지 두 셀을 각각 50 % 너비로 늘립니다. 세 개의 빈 셀 중 하나에 내용을 넣으면 사용 가능한 모든 너비 (한 셀에 내용이있는 경우 60 %, 두 개이면 30 % 등)를 사용할 수 있습니다. 마찬가지로, 너비가 설정된 두 셀 중 하나에서 내용을 제거하면 강제로 너비가 0이됩니다.

어떤 브라우저가 올바르게 만들었고 어떤 브라우저가 잘못 했습니까?

또한 테이블에 관한 W3C 사양을 살펴 보았지만 테두리/배경이있는 빈 셀 렌더링을 제어하는 ​​것으로 가정 된 description of the empty-cells property 만 발견되었지만 셀의 너비에는 영향을주지 않습니다. 나는 table-layout property이 트릭을 할 수도 있다고 생각했지만, 크롬에서 table-layout:fixed을 설정하면 모든 열이 나타나지만 Firefox에서는 그 반대의 경우 (적어도 하나도 보이지 않습니다)는 없습니다. 만약 당신이 이것을 상세히 설명 할 수 있고 그리고/또는 이것을 다루는 W3C 스펙의 정확한 부분을 지적 해 주시면 고맙겠습니다.

+0

단지'table td {width : 20 %; }'? – Ben

+0

이상한 행동을 발견하고 그 원인에 대해 더 알고 싶습니다. 나는 결코 내가 무엇인가 문제가 있다고 말하지 않았다. – mingos

답변

1

아직 다루 듯하지 않은 "빈"내부  을 넣어, 그들은이 상황을 취급의 "오른쪽"방법을 제안하지 않았습니다. 브라우저는 원하는 방식으로 해석 할 자유가 있으며, IE9와 Firefox가 그렇게하는 방식입니다.

0

IMHO 모든 브라우저에서 사물을 올바르게 표시하고 있습니다. 개발자는 빈 셀에서 기대하는 바를 이해해야합니다. 모든 브라우저에서 일관된 표시를 얻으려면 셀이 비어있는 경우에도 항상 너비를 정의하거나 공백을 추가하는 것이 좋습니다.

+0

Stefan의 대답과 마찬가지로, 당신은 내가 요구하는 것이 아닌 해결책을 제게 제공하려고합니다. 나는 그 문제를 피하는 방법을 안다. 나는 그 원인과 W3C 표준 준수 가능성을 알고 싶다. – mingos

+0

이 링크는 도움이 될 수 있습니다. http://www.qwconsulting.com/blog/gecko-vs-trident-browser-issues.html –

+0

그리고 정확히 내 질문의 주제를 다루고 있습니까? 이는 기술에 익숙하지 않은 사람들을위한 텍스트로 "다른 레이아웃 엔진이 CSS를 다르게 해석합니다"라는 문장으로 요약 할 수 있습니다. 그게 명백한 일 아닌가? – mingos

0

이 문제는 W3C로 발생 <td>

+0

해결책을 찾는 것이 쉽지 않기 때문에 저는 해결책을 묻지 않을 것입니다. 나는 잘못 행동에 대한 설명과 W3C에 의한 "기본"행동에 대한 포인터를 요구하고 있습니다. – mingos

+0

만약 내가 잘못하고 있지 않다면 ... 보이지 않는/쓸모없는 아이템을 저장하기위한 작은 최적화입니다 ... 나는 파이어 폭스 (이전 버전) 숨겨진 이미지 (CSS 포함)를 믿었거나 페이지에로드되지 않은 div로 오버레이되었습니다. – StefanNch

+0

무언가가 "쓸모없는"것인지 아닌지를 결정하는 것은 브라우저의 책임이 아닙니다. "invisible"에 관해서는 문제의 요소가 Firefox에서 보이지 않습니다. W3C에서 빈 셀을 렌더링해야하는지 안해야하는지, 그리고 브라우저가 다른 규칙을 따르는 이유 : 주제에 대한 공식 입장의 부재 (스펙 해석의 자유) 또는 설정 표준의 불완전한 구현에 대해 W3C가 말한 것에 대해 묻고있다. . – mingos

관련 문제