CSS / HTML : 텍스트를 이탤릭체로 만드는 올바른 방법은 무엇입니까? 같은 네

텍스트를 기울임 꼴로 만드는 올바른 방법 은 무엇입니까 ? 나는 다음과 같은 네 가지 접근법을 보았다.

<i>Italic Text</i>

<em>Italic Text</em>

<span class="italic">Italic Text</span>

<span class="footnote">Italic Text</span>

<i>

이것이 “구식”입니다. <i>의미 적 의미가 없으며 텍스트를 이탤릭체로 만드는 표현 효과 만 전달합니다. 내가 볼 수있는 한, 이것은 의미가 없기 때문에 분명히 잘못되었습니다.


<em>

이것은 순수한 표현 목적으로 시맨틱 마크 업을 사용합니다. 단지 그 일이 <em>기본적으로 기울임 꼴 텍스트를 렌더링하고이 종종 알고있는 사람들에 의해 사용되도록 <i>피해야하지만 누가되어야 그 의미 론적 의미를 모르고있다. 모든 이탤릭체 텍스트가 강조되어 이탤릭체 인 것은 아닙니다. 때로는 사이드 노트 나 속삭임과 같이 정반대 일 수 있습니다.


<span class="italic">

CSS 클래스를 사용하여 프리젠 테이션을합니다. 이것은 종종 올바른 방법으로 선전되지만 다시 한 번 나에게 잘못된 것 같습니다. 이것은 더 의미적인 의미를 전달하지 않는 것 같습니다 <i>. 그러나 그 지지자들은 울부 짖습니다. 대담하게 원한다면 나중에 모든 기울임 꼴 텍스트를 변경하는 것이 훨씬 쉽습니다. 그러나 텍스트가 굵게 표시되는 “italic”이라는 클래스가 남아 있기 때문에 그렇지 않습니다. 또한 왜 내 웹 사이트에서 모든 기울임 꼴 텍스트를 변경하고 싶거나 적어도 이것이 바람직하지 않거나 필요하지 않은 경우를 생각할 수 있는지 분명하지 않습니다.


<span class="footnote">

시맨틱에 CSS 클래스를 사용합니다. 지금까지 이것이 최선의 방법으로 보이지만 실제로 두 가지 문제가 있습니다.

  1. 모든 텍스트가 의미 적 마크 업을 보증하기에 충분한 의미를 갖는 것은 아닙니다. 예를 들어, 페이지 하단의 기울임 꼴 텍스트는 실제로 각주입니까? 아니면 제쳐두고 있습니까? 아니면 완전히 다른 것. 아마도 특별한 의미가 없으며 앞의 텍스트와 표현을 구분하기 위해 기울임 꼴로 렌더링해야합니다.

  2. 의미가 충분한 강도로 존재하지 않으면 의미가 변경 될 수 있습니다. 페이지 맨 아래에있는 텍스트 외에는 “각주”를 사용했다고 가정 해 보겠습니다. 몇 개월 후 하단에 더 많은 텍스트를 추가하려고하면 어떻게됩니까? 더 이상 각주가 아닙니다. 우리는 덜 일반적 <em>이지만 이러한 문제를 피하는 의미 론적 클래스를 어떻게 선택할 수 있습니까?


요약

이탤릭체를 만들려는 욕구가 의미 론적 의미를 갖기위한 것이 아닌 많은 경우에 의미론의 요구가 지나치게 부담이되는 것으로 보인다.

또한 스타일과 구조를 분리하려는 의도로 인해 CSS <i>가 실제로 유용하지 않을 때를 대신하여 CSS가 선전되었습니다 . 그래서 이것은 겸손한 <i>태그로 다시 돌아와서이 생각의 기차가 HTML5 사양에 남아있는 이유인지 궁금합니다.

이 주제에 관한 좋은 블로그 게시물이나 기사가 있습니까? 아마도 <i>태그 를 유지 / 생성하기로 한 결정에 관련된 사람들에 의해 ?



답변

사용 사례마다 다른 방법을 사용해야합니다.

  1. 문구를 강조하려면을 사용하십시오 <em>.
  2. <i>태그는 HTML5 에서 “대체 음성 또는 분위기의 텍스트 범위”를 나타내는 새로운 의미를 갖습니다 . 따라서이 태그를 생각 / 옆으로 또는 관용구와 같은 것에 사용해야합니다. 이 스펙은 또한 선박 이름을 제안하지만 더 이상 책 / 노래 / 영화 이름을 제안하지 않습니다 <cite>. 대신에 사용하십시오.
  3. 기울임 꼴 텍스트가 큰 문맥의 일부인 경우 (예 : 소개 단락) CSS 스타일을 큰 요소에 연결해야합니다. p.intro { font-style: italic; }

답변

<i>의미가 없기 때문에 잘못되지 않습니다. 프레젠테이션이기 때문에 (보통) 잘못되었습니다. 우려의 분리는 프리젠 테이션 정보가 CSS와 함께 전달되어야 함을 의미합니다.

일반적으로 이름을 지정하는 것은 까다로울 수 있으며 클래스 이름도 예외는 아니지만 그럼에도 불구하고해야 할 일입니다. 이탤릭체를 사용하여 본문에서 블록을 돋보이게하는 경우 클래스 이름이 “flow-distinctive”일 수 있습니다. 재사용에 대해 생각해보십시오. 클래스 이름은 분류를위한 것입니다. 다른 곳에서 같은 일을 하시겠습니까? 적절한 이름을 식별하는 데 도움이됩니다.

<i>HTML5에 포함되어 있지만 특정 의미론이 제공됩니다. 이탤릭체로 표시하는 이유가 사양에서 식별 된 의미 중 하나를 충족하는 경우을 사용하는 것이 좋습니다 <i>. 그렇지 않으면 아닙니다.


답변

나는 전문가가 아니지만 실제로 의미를 원한다면 어휘 (RDFa)를 사용해야한다고 말하고 싶습니다.

결과는 다음과 같습니다.

<em property="italic" href="http://url/to/a/definition_of_italic"> Your text </em>

em프리젠 테이션에 사용되며 (인간은 기울임 꼴로 표시됨) propertyhref속성은 기울임 꼴 (기계 용)의 정의에 연결됩니다.

그런 종류의 어휘가 있는지 확인해야합니다. 속성이 이미있을 수 있습니다.

RDFa에 대한 자세한 정보는 여기 : http://www.alistapart.com/articles/introduction-to-rdfa/


답변

TLDR

텍스트를 기울임 꼴로 만드는 올바른 방법은 CSS에 도달 할 때까지 문제를 무시한 다음 프리젠 테이션 시맨틱에 따라 스타일을 지정하는 것입니다. 제공 한 처음 두 옵션은 상황에 따라 맞을 수 있습니다. 마지막 두가 잘못되었습니다.

더 긴 설명

마크 업을 작성할 때 프리젠 테이션에 대해 걱정하지 마십시오. 이탤릭체로 생각하지 마십시오. 의미 론적으로 생각하십시오. 스트레스 강조가 필요한 경우 em. 메인 콘텐츠와 접하는 경우는 aside입니다. 어쩌면 대담하고 이탤릭체 일 수도 있고 형광등 일 수도 있습니다. 마크 업을 작성할 때는 중요하지 않습니다.

CSS에 도달하면 사이트에있는 모든 항목에 대해 이탤릭체를 넣는 의미 론적 의미 요소가 이미있을 수 있습니다. em좋은 예입니다. 그러나 aside > ul > li여러분은 이탤릭체로 된 사이트를 모두 원할 것 입니다. 마크 업에 대한 생각과 프레젠테이션에 대한 생각을 분리해야합니다.

DisgruntledGoat 에서 언급했듯이 iHTML5에서는 의미가 있습니다. 그래도 시맨틱은 다소 좁아 보입니다. 아마도 사용이 거의 없을 것입니다.

emHTML5 의 의미는 스트레스 강조로 변경되었습니다. strong중요도를 나타내는 데 사용될 수 있습니다. strong스타일을 지정하려는 경우 대담하지 않고 기울임 꼴이 될 수 있습니다. 브라우저의 스타일 시트로 제한하지 마십시오. 스타일 시트 재설정을 사용 하여 기본값 내에서 생각을 멈출 수 있습니다. (그러나 몇 가지주의 사항이 있습니다.)

class="italic"나쁘다. 사용하지 마십시오. 시맨틱하지 않으며 전혀 유연하지 않습니다. 프리젠 테이션에는 여전히 의미가 있으며 마크 업과는 다른 종류입니다.

class="footnote"마크 업 시맨틱을 에뮬레이트하고 있으며 올바르지 않습니다. 각주에 대한 CSS는 각주에 고유하지 않아야합니다. 모든 부분의 스타일이 다르면 사이트가 너무 지저분 해 보일 것입니다. CSS 클래스로 전환 할 수 있도록 시각적 패턴이 페이지에 흩어져 있어야합니다. 각주 스타일과 블록 인용구의 스타일이 매우 유사한 경우 반복해서 반복하지 말고 유사성을 한 클래스에 넣어야합니다. OOCSS의 관행 채택을 고려할 수 있습니다 (아래 링크).

HTML5에서는 우려와 의미의 분리가 큽니다. 사람들은 종종 마크 업이 의미론이 중요한 유일한 장소가 아니라는 것을 인식하지 못합니다. 컨텐츠 시맨틱 (HTML)이 있지만, 프리젠 테이션 시맨틱 (CSS) 및 행동 시맨틱 (JavaScript)도 있습니다. 그들은 모두 유지 보수성과 DRY를 유지하기 위해주의를 기울여야하는 자체 의미가 있습니다.

OOCSS 자료


답변

아마도 특별한 의미가 없으며 앞의 텍스트와 표현을 구분하기 위해 기울임 꼴로 렌더링해야합니다.

특별한 의미가 없다면 왜 이전의 텍스트와 표현 적으로 분리해야합니까? 이 텍스트는 아무 이유없이 이탤릭체로 표시 되었기 때문에 조금 이상하게 보입니다 .

그래도 당신의 요점을 이해합니다. 디자이너가 의미있는 변화없이 시각적으로 변화하는 디자인을 만드는 것은 드문 일이 아닙니다. 필자는 이것을 상자에서 가장 자주 보았습니다. 디자이너는 색상, 모서리, 그라디언트 및 그림자의 다양한 조합이있는 상자를 포함하여 스타일과 내용의 의미가없는 상자를 포함한 디자인을 제공합니다.

이들은 다른 장소에서 다시 사용 (관련 인터넷 익스플로러 문제에) 합리적으로 복잡한 스타일이기 때문에, 우리는 같은 클래스를 만들고 box-1, box-2우리가 할 수 있도록하는 스타일을 다시 사용합니다.

일부 텍스트를 이탤릭체로 만드는 구체적인 예는 너무 사소해서 걱정할 수 없습니다. 시맨틱 Nutters에 대해 그런 식으로 축소하십시오.


답변

HTML 기울임 꼴 텍스트는 기울임 꼴 형식으로 텍스트를 표시합니다.

<i>HTML italic text example</i>

강조와 강력한 요소는 모두 특정 단어 나 문장의 중요성을 높이는 데 사용될 수 있습니다.

<p>This is <em>emphasized </em> text format <em>example</em></p>

강조 태그는 텍스트에서 한 점을 강조하고 싶을 때 반드시 텍스트를 이탤릭체로 나타내려고 할 때 사용해야합니다.

자세한 내용은이 안내서를 참조하십시오 : HTML 텍스트 형식


답변

i소자 그래서 등 스크린 리더, Google 검색을 위해, 그것은 투명 (단지 같은 일종의되어야 비 론적 인 span또는 div요소). 그러나 프리젠 테이션 레이어를 구조 레이어와 결합하기 때문에 개발자에게 적합하지 않습니다. 이는 나쁜 습관입니다.

em요소 ( strong또한)는 표현 적 맥락이 아닌 의미 론적 맥락에서 항상 사용되어야한다. 단어 나 문장이 중요 할 때마다 사용해야합니다. 이전 문장의 예를 들어 em, ‘항상 사용해야한다’부분에 더 중점을 두어야합니다. 브라우저는 이러한 요소에 대한 몇 가지 기본 CSS 속성을 제공하지만 디자인에서 이러한 요소의 올바른 의미를 유지하기 위해 필요한 경우 기본값을 무시할 수 있습니다.

<span class="italic">Italic Text</span>가장 잘못된 방법입니다. 우선, 사용하기 불편합니다. 둘째, 텍스트가 기울임 꼴이어야한다고 제안합니다. 그리고 구조 계층 (HTML, XML 등) 그렇게하지 않아야 합니다. 프리젠 테이션은 항상 구조와 분리되어 있어야합니다.

<span class="footnote">Italic Text</span>각주에 가장 좋은 방법 인 것 같습니다. 프레젠테이션을 제안하지 않으며 마크 업 만 설명합니다. 이 기능에서 어떤 일이 일어날 지 예측할 수 없습니다. 기능에서 각주가 커지면 클래스 이름을 변경해야 할 수도 있습니다 (코드에 논리를 유지하기 위해).

당신은 몇 가지 중요한 텍스트를 사용했습니다 때마다 그래서 emstrong강조 그것. 그러나 이러한 요소는 인라인 요소이므로 큰 텍스트 블록을 강조하는 데 사용해서는 안됩니다.

무언가 모양 만 신경 쓰고 항상 추가 마크 업을 피하려는 경우 CSS를 사용하십시오.