2009-07-17 5 views

답변

44

예들은 다른 (일부 이메일 시스템에서, 예를 들어)를 사용할 수없는 경우 그들은 또한 환경에서 다르게 렌더링됩니다. 당신이 display: block와 스팬 스타일을

에도 불구하고 당신은 여전히 ​​그 안에 블록 레벨 요소를 넣을 수 없습니다 :

<div><p>correct</p></div> 
<span style="display: block;"><p>wrong</p></span> 

(X) HTML은 여전히 ​​HTML DTD를합니다 ((X)를 순종하는 중 하나 CSS가 어떻게 변경 되더라도 상관 없습니다.

<a href='example.com'> 
    <span class='title' style='display:block;'>The title of the image is also a link</span> 
    <img src="example.com/someimage.jpg"/> 
</a> 

당신이 당신의 범위 블록 레벨 요소 만들 수 있습니다 때 함께 강조 이미지와 범위를 허용합니다

+2

'표시 : 인라인'으로 'div'보다 'span'을 사용하면 약간의 문자 수를 제외하고 어떤 이점이 있습니까? – JAB

+1

OMG 좋은 답변. – VoidKing

1

예. 그들은 다른 것들을 포함 할 수 있고 다른 장소에서 허용됩니다.

CSS는

12

는 여기가 (적어도, 유효 코드에 대한) 진정한 차이를 만드는 예제 이상 moused.

div는 a 태그 안에 중첩되지 않습니다.

+0

CSS를 지원하는 장치에서 span _display_를 블록으로 만들지 만 블럭 레벨 요소로 만들지는 않습니다. 이는 인라인 요소로 남아 있습니다. 이 경우 블로 니스가 시각적 인 효과를 내기 위해서 실제로 원하는 것입니다 :-) – NickFitz

+2

예. 그리고 그것은 그것의 아름다움입니다. 스타일 시트가 없으면 멋지지 않습니다. –

+0

HTML 유효성 여부에 상관없이 브라우저가 실제적이고 실질적인 차이를 제공하기 때문에 유효성을 정말로 논의하는 것은 유감스러운 일입니다. – Alohci

3

<div>은 별도의 콘텐츠 블록을 정의하는 것 이상의 고유 한 특수 의미 체계가없는 블록 수준 요소입니다. <span>은 인라인 컨텐츠의 개별 세그먼트를 정의하는 것 이상의 고유 한 특수 의미를 갖지 않는 인라인 요소입니다.

CSS를 사용하여 스팬 디스플레이를 블록으로 만들 수 있지만 편집 할 이유는 없습니다. Gabriel이 보여준 것처럼 순수한 시각 효과는 제외합니다. 제 말은 CSS를 사용하여 스팬을 문서 구조 측면에서 블록 수준의 중요성을 갖도록하려고하지 말아야한다는 것입니다. 또한 사용자가 할 경우 CSS가없는 사용자 (예 : 시각 장애인 또는 검색 엔진)에게 콘텐츠가 무의미하게 표시됩니다.

블록 인 경우 div를 사용하십시오. 인라인 콘텐츠의 일부인 경우 범위를 사용하십시오. CSS는 프레젠테이션에 관한 것입니다. 귀하의 콘텐츠를 사용할 수 있도록 귀하의 마크 업을 논리적 인 방식으로 구성해야합니다.

자세한 내용은 http://www.w3.org/TR/html401/struct/global.html#edef-DIV을 참조하십시오.

+1

"절대로 그렇게 할 이유가 없습니다"라는 진술은 노골적으로 거짓입니다. –

+0

@Gabriel : 방금 프리젠 테이션을 사용하는 예제를 참조하기 위해 내 의견을 편집했습니다. – NickFitz

관련 문제