2010-07-07 2 views
10

html은 <p> 안에 비 인라인 요소를 중첩하는 것을 허용하지 않지만 목록을 포함하는 단락을 렌더링하는 방법은 무엇입니까? 자연 텍스트). 모든 대답이 만족스럽지 않은 세 가지 답변을 보았습니다.Nest는 html의 문단에 나열되어 있습니다

  • 목록은 단락 안에 있으면 안됩니다. (나는 문화적 논쟁에 나서지 않을 것이지만, html이 글쓰기 스타일을 지시하는 장소가되지 않기를 바랄 것이다.)
  • 텍스트를 단락으로, 목록으로, 그리고 두 번째로 구분한다. 포스트 텍스트와 단락. 이 문단이 부분 인<p> 청크가 있고 의미가 더 큰 방향으로 이동하려고하는 마크 업에 좋지 않은 것 같습니다.
  • 가짜 단락 일부를 사용하여 <div class="mypara"> - 모든 것을 우회하고 텍스트에 대한 적절한 의미로 마크 업을 포기하는 나쁜 방법처럼 보입니다.

의미 상으로 정확하고 유효한 다른 방법이 있습니까?

+0

+1 이 문제에 대한 주위. 다른 단락을 가로 지르는 문장을 분리하는 것이 확실히 의미 상 올바르지 않기 때문에 문장의 중간에있는 목록을 사용하여 구조를 강조 할 때 문제가 더 눈에.니다. E. g. "나는 우유, 설탕, 애플, 그리고 비올라를 오늘 사고 싶다."이것은 TeX로 텍스트를 조판 할 때 일반적으로 사용된다. – Palec

답변

9

최신 작업 초안의 HTML 5 단락은 표현 요소 만 포함 할 수있는 흐름 요소로 정의됩니다. 목록은 또한 흐름 요소로 정의되며 단락에 묶을 수 없습니다. 단락의 정의가 무엇이되어야한다고 생각하든, 이것은 HTML의 용어에 대한 공식적인 정의이며, 변경 가능성은 거의 없다고 생각합니다.

당신이 언급 한이 두 가지 외에 고려해 두 가지 가능성이 있습니다,

  • 단락이 적용되는 경우보다 더 광범위한 도달 흐름 요소에 도달 고려 등 section, nav, header, footer 또는 article
  • 하이브리드 방식을 사용하십시오. 일반적인 형식을 적용하는 div으로 p – ol – p 시퀀스를 래핑하십시오.

지금까지 div이가는대로 HTML 5 스펙은 분명히 그것은 다른 HTML 요소를 수행하는 방식에 의미 론적 의미를 부담하지 않기 때문에 "최후의 수단"요소를해야하고, 같이하지 않을 수 있습니다 것이 좋습니다 대체 사용자 에이전트에서 사용자 친화적입니다. 이 조언에 따르면, 나는 의미론이 당신에게 중요한 경우 p의 비용으로 div을 사용하지 않을 것입니다. 그러나 여러 단락의 사용이 너무 시각적으로 고르지 않게하는 데 유용 할 수 있습니다.

+0

내가 직면 한 상황은 HTML을 생성하는 시스템이며,이 경우 가장 좋은 옵션은 'div'를 사용하는 것입니다. 그 외에는 더 넓은 태그를 사용하는 것이 좋습니다. – Zee

3

html <p> 태그는 실제 글쓰기 스타일의 관용구를 제어하기위한 것이 아닙니다. 질서 정연한 방식으로 텍스트 덩어리를 표시하는 것은 간단합니다. 나는 그것이 인쇄 된 자료를 시뮬레이트하기위한 것이라는 것을 믿지 않는다. 당신은 이것을 위해 사업부를 사용해야 할 것입니다.

+0

포맷을 위해서만 사용된다면 어쨌든'p' 태그를 사용하는 것이 거의 중요하지 않은 것처럼 보입니다 ... 그러나 저는 브라우저를 다르게 취급하는 몇 가지 언급을 보았습니다. 어디에서 기억하는지. (아마도 화면 판독기와 관련된 것일 수도 있습니다.) – Zee

+0

어떤 사람들은 그것을 diffirently 처리 할 수 ​​있지만, 그러한 구현에 대한 작업의 질을 절대로 지키고 싶지는 않습니다. 당신은 언제나 항상 중간 지점에서 촬영하고 싶어합니다. 더 많은 사용자가 귀하의 사이트에서 더 나은 행복하게 할 수 있습니다. – John

+0

정확하게 - 그 이유는 내가 질문 ... – Zee

0

사양은 사용자가 할 수 없다고 말하기 때문에 질문에 대한 대답은 분명히 아니오입니다. 너와 마찬가지로, 나는 의미론을 유지하기를 좋아한다. 그래서 나는 보통 두 번째 옵션 (단락, 목록, 다른 단락)을 사용한다. 그러나 내 머리 꼭대기에서 나는 목록이 실제로 텍스트의 흐름을 어 기지 않는 텍스트를 생각할 수 없다. 그래서리스트 이후에 새로운 단락을 시작하는 것은 상처를 입힐 수 없다.

+0

목록이 앞의 텍스트에 포함되어있는 것이 더 일반적 일 것입니다. (그리고 렌더링 방법에 차이는 없지만 옳은 것이 무엇인지 알아 내려고합니다 ...). – Zee

1

나는 당신이 "단락"이라고 생각하는 것에 달려 있다고 생각한다. HTML 디자이너는 목록을 단락의 일부로 간주하지 않습니다.그리고 어느 해석에 대해서도 논쟁이있을 수 있다고 생각하지만, 나는 그 스펙이 옳았다 고 생각합니다.

목록은 생각의 틈을 나타내지 않지만 확실히 음성 또는 사고 방식의 변화를 나타내며 이는 새로운 의미 컨테이너에 적합하다고 생각합니다.

같은 맥락에서 단락은 한 부분의 논리적 파티션을 나타냅니다. 리스트는 논리적 파티션의 순서를 나타내며, 하나의 논리적 파티션이 더 많은 파티션으로 분할 될 수있는 것은 상상할 수 있지만, 단순히 새로운 파티션을 생성하는 것이 더 합리적입니다 (특히 음성/방법의 그러한 큰 중단의 경우).

의미는 크게 주관적 일 수 있습니다. 그리고 괜찮습니다. 그러나이 경우에는 HTML 스펙이 의미를 올바르게 나타냅니다.

+1

글쎄, 필자는 이것이 올바른 결정인지 아닌지에 대해 구체적으로 회피했다. 요점은 HTML 사양 작성자가 목록의 단락을 결정하는 위치에 있어야한다고 생각하지 않는다 허용되어야하는 것과하지 말아야 할 것입니다. 이를 위해서는 다양한 문화권의 활자체에 대한 철저한 조사가 필요하며 단락에 중첩 된 목록을 허용하는 활자체 시스템 (La/TeX가 명백한 사례)이 많이 있습니다. – Zee

+0

질문에 대한 쉬운 대답은 "아니오"입니다. –

+0

BTW - 개인적으로 공식 사양의 대답이 틀린 문단 안에 목록을 작성해서는 안된다고 생각합니다. 그러한 철저한 조사 (유니 코드 저자들이 많은 시간을 투자하는 것)가 없다면 이것은 단지 평범한 오만 일뿐입니다. 이것이 실제 스타일이 좋은 스타일로 간주되어야한다는 것을 결정하기보다는 렌더링과 프리젠 테이션의 기술적 인 문제에 기반을두기를 기대하는 이유입니다. – Zee

3

시각적 스타일의 이유는 무엇입니까? 다른 말로하면, 다음과 같은 것이있을 때, 이상적이지 않은 방식으로 시각적으로 렌더링되는 것입니까? 문제가 너무 많은 마진은 P 후와 UL 이전 인 경우

<p>Some paragraph text.</p> 
<ul> 
    <li>First list item</li> 
    <li>Second list item</li> 
    <li>Third list item</li> 
</ul> 
<p>Another paragraph.</p> 

, 당신은 보상이 같은 인접 형제 선택을 시도 할 수 있습니다 : 일반적인 워크를 지적

p + ul { margin-top: -1em; } 
+1

시각적 렌더링은 문제가 아니 었습니다 (div는 제대로 작동합니다). 태그를 의미있게 유지하면서이를 수행하는 "올바른"방법을 찾기위한 시도였습니다. – Zee