테이블 형식의 데이터를 표시하는 데 테이블을 사용하고 있지만 내용이 더 많은 수직 공간을 차지하지 않도록 픽셀 단위로 크기를 조정해야합니다. 내가 사용할 수있는 것보다. 또한, 수십 개의 요소가 있기 때문에 CSS 만 사용하는 레이아웃은 적합하지 않습니다. 상자 - 인라인 용 블록 모델과 테이블 내 블록 요소 td
<!DOCTYPE html>
<html lang="en">
<head>
<style>
table, td, tr, thead, tfoot, tbody, th, tf {
border-collapse: collapse;
margin: 0px;
padding: 0px;
border:0;
line-height:16px;
}
</style>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0">
<tr style="height:16px">
<td>
<span style="font-size:10pt;">Here is some text</span>
</td>
</tr>
</table>
</body>
</html>
은 기본적으로 내가이 구성에서이 17px을 복용 끝, 그러나, 테이블의 행은 16px을 차지하려는 :
여기 내 간단한 테스트 코드입니다. 이 등 15 픽셀 만 (17)의 TD와 TR 아직 패딩, 아니 테두리의 범위를 보여줍니다 방화범 요소를 검사
... IE에서
나는 같은 동작을 얻을
마지막으로
, 내 스팬 ELEM를 설정하여 문제를 해결할 수 있습니다, 그러나 거기에 내 신비 추가 픽셀 또는 두 가지에 대해 좀 더 정보가있는 스팬 요소 오프셋 보인다 (또는 span 요소를 display : block으로 만들거나 심지어는 display : table-cell으로 만들어서 div에 넣을 수도 있습니다). 그래서 내 문제를 해결하는 데 정말로 도움이 필요하지 않지만, 이유는 인라인 요소가 테이블 셀에 들어가면 결국 더 많은 공간을 차지하게됩니다. 난 구글과 w3c 사양을 시도했지만 유용한 아무것도 찾을 수 없습니다.
재미있는, IE 개발자를 보면 그 빈 텍스트 노드에서 툴은 공간을 차지하지 않는다는 것을 보여 주며, div로 스팬을 변경하면 비좁은 작은 빈 텍스트 노드가 표시되지 않습니다. span이나 div를 전혀 사용하지 않고 텍스트를 td에 직접 입력하면 작동합니다. 글꼴 크기를 더 높은 수준으로 가져 오면 셀 크기가 17 대신 16 픽셀로 올바르게 조정되는 것처럼 보이지만 왜 그렇게 될지 이해하지 못합니다. 빈 셀 노드를 만드는 것처럼이 동작을 일으키는 테이블 셀 안에 인라인 요소가있는 것이 있는지 궁금합니다. –
스팬을 자체 행에 두지 않으면 빈 텍스트 노드가 사라 집니까?
td와 span 태그 사이의 공백/개행을 제거하면 별 의미가 없습니다. 테이블 셀에 줄 바꿈을하는 것이 좋지 않나요? 마크 업을 조금 더 읽기 쉽게 만들고 싶었습니다. 그래서 그것이 제가 그렇게했습니다. 여전히 셀에 줄 바꿈을위한 공간이 더 필요하고 줄 바꿈이없는 div가 아닌 이유는 여전히 불투명합니다. 블럭 레벨 요소를 사용하면 전체 셀을 차지할 때 테이블 셀이 사용되는 것으로 추측합니다. –