답변:
div
instide a를 사용하는 것이 td
레이아웃에 테이블을 사용하는 다른 방법보다 나쁘지 않습니다. (어떤 사람들은 레이아웃에 테이블을 사용하지 않으며 그중 하나가됩니다.)
div
에서 a 를 사용 td
하면 요소의 크기를 어떻게 예측할 수없는 상황에 처하게됩니다. div의 기본값은 부모의 너비를 결정하는 것이고, 테이블 셀의 기본값은 내용의 크기에 따라 크기를 결정하는 것입니다.
div
크기 조정 방법에 대한 규칙 은 표준에 잘 정의되어 있지만 크기 조정 방법에 대한 규칙 은 잘 정의되어 td
있지 않으므로 브라우저마다 약간 다른 알고리즘을 사용합니다.
table-layout:fixed
CSS는 당신이 생각하는 것이 아닙니다. 첫 번째 행의 크기 만 계산하여 테이블을 렌더링 할 때 계산 브라우저의 양을 줄입니다.
XHTML DTD를 확인한 후 <TD>-요소에 표제, 목록 및 <DIV>-요소와 같은 블록 요소를 포함 할 수 있음을 발견했습니다. 따라서 <TD>-요소 안에 <DIV>-요소를 사용한다고해서 XHTML 표준을 위반하지는 않습니다. 현대의 다른 HTML 변형에는 <TD> 요소에 해당하는 콘텐츠 모델이 있다고 확신합니다.
관련 DTD 규칙은 다음과 같습니다.
<!ELEMENT td %Flow;>
<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY %Flow "(#PCDATA | %block; | form | %inline; | %misc;>
<!ENTITY %block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
반드시 그런 것은 아닙니다.
TD 내에 DIV를 배치해야하는 경우 TD를 올바르게 사용하고 있는지 확인하십시오. 테이블 형식 데이터 및 의미에 대해 신경 쓰지 않으면 궁극적으로 TD의 DIV에 대해서는 신경 쓰지 않습니다. 당신이 경우에 - 나는 문제 생각이 없다고 생각 이 당신이 그것을 할 수있는 좋은 방법입니다 벌금을.
HTML 사양에 따르면
테이블 셀은 블록 레벨 요소를 합법적으로 포함 할 수 있으므로 본질적으로 가짜 파가 아닙니다. 물론 브라우저 함침은 추측적인 이론적 입장을 남겨둔다. 레이아웃 문제와 버그가 발생할 수 있습니다.
테이블이 레이아웃에 사용되었지만 때로는 여전히 그래도 대부분의 브라우저가 내용을 올바르게 렌더링한다고 생각합니다. 심지어 IE.
position을 사용하려면 : absolute; position: relative;
td 와 함께 div에서 문제가 발생합니다. FF, safari 및 chrome (mac, PC는 아니지만)은 div를 td에 상대적으로 배치하지 않습니다 (예상 한 것처럼) .div에도 마찬가지 display: table-whatever;
이므로 두 가지 div가 필요합니다. 컨테이너에 width: 100%;
height: 100%;
테두리가 없으므로 시각적 영향없이 td를 채 웁니다. 그리고 절대적인 것.
그 외에는 왜 세포를 나누지 않습니까?
그것을 다루는 두 가지 방법
div
안에 넣다tbody
div
안에 넣다tr
https://stackoverflow.com/a/23440419/2305243 : feference가 보이면 두 가지 방법 모두 유효합니다.
그것은 의미론을 깨뜨 립니다. 잘 작동하지만 "시맨틱을 깨 뜨리면"HTML을 처리하는 것을 좋아하지 않는 화면 판독기 나 무언가가있을 수 있습니다.