TD 내부의 DIV가 나쁜 생각입니까? 내가 듣고처럼 /

내가 듣고처럼 / A 어딘가에 읽을 것 <div>(A)의 내부가 <td>노 더 없었다. 작동하지 않는 것이 아니라 디스플레이 유형에 따라 실제로 호환되지 않는 것입니다. 직감을 뒷받침 할 증거를 찾을 수 없으므로 완전히 잘못되었을 수 있습니다.



답변

divinstide a를 사용하는 것이 td레이아웃에 테이블을 사용하는 다른 방법보다 나쁘지 않습니다. (어떤 사람들은 레이아웃에 테이블을 사용하지 않으며 그중 하나가됩니다.)

div에서 a 를 사용 td하면 요소의 크기를 어떻게 예측할 수없는 상황에 처하게됩니다. div의 기본값은 부모의 너비를 결정하는 것이고, 테이블 셀의 기본값은 내용의 크기에 따라 크기를 결정하는 것입니다.

div크기 조정 방법에 대한 규칙 은 표준에 잘 정의되어 있지만 크기 조정 방법에 대한 규칙 은 잘 정의되어 td있지 않으므로 브라우저마다 약간 다른 알고리즘을 사용합니다.


답변

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 사양에 따르면

A는 <div>어디에 위치 할 수 유량 콘텐츠 예상 1 은 IS하는 <td>컨텐츠 모델 2 .


답변

테이블 셀은 블록 레벨 요소를 합법적으로 포함 할 수 있으므로 본질적으로 가짜 파가 아닙니다. 물론 브라우저 함침은 추측적인 이론적 입장을 남겨둔다. 레이아웃 문제와 버그가 발생할 수 있습니다.

테이블이 레이아웃에 사용되었지만 때로는 여전히 그래도 대부분의 브라우저가 내용을 올바르게 렌더링한다고 생각합니다. 심지어 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>내부 를 배치하여 문제에 직면했습니다 <td>.

document.getElementById()td 안에 배치 하면 div를 식별 할 수 없었습니다 . 그러나 외부에서는 잘 작동했습니다.


답변

모두가 언급했듯이 레이아웃 목적으로는 좋지 않을 수 있습니다. 나는 똑같이 궁금 해서이 질문에 도달했으며 그것이 유효한 코드인지 알고 싶었습니다.

유효하기 때문에 다른 용도로 사용할 수 있습니다. 예를 들어, 내가 사용할 것은 멋진 “CSSed”div를 테이블 행 안에 넣은 다음 빠른 jQuery 함수를 사용하여 사용자가 가격, 이름 등으로 정보를 정렬 할 수 있도록하는 것입니다. 레이아웃 테이블 만 나에게 “수직 순서”를 줄 것이지만 CSS로 div의 너비, 높이, 배경 등을 제어합니다.