2017-04-26 5 views
1

私はユーザーがコメントを投稿できるウェブサイト上で作業しています。私はこれまでに<ins>要素を使用するつもりです。コメントが不正確な場合は、<del>要素を使用してコメントが削除済みとしてマークされます。<del>と<ins>を正しく使用し、なぜそれらがコンテナとして機能するのか

私の最初の質問は、これらの要素のセマンティクスを正しく使用するかどうかです。

W3Cで、この2つの要素にはブロックレベルの要素が含まれていることがわかりましたが、これは通常、display: inline;(幅、高さなどは設定できません)のテキスト要素には当てはまりません。 )。計算されたブラウザの値は、と<ins>の両方については、確かにdisplay: inline;です。

私の2番目の質問は、ブラウザがこの特殊な動作をどのように動作させるかです。 (またはそれは特別ですか? - 私は何かが欠けていますか?)

答えて

1

スタイリング(CSS)をHTMLコンテンツモデルと混同しないようにしてください。これらは意図的に分離した直交する概念です。唯一のリンクは、HTML要素の中には一貫したデフォルトスタイルがあることです。

HTML4では、insとdelを使用することができますが、HTML5では「ブロック」と「インライン」という用語を使用しないため、この分離がはっきりと区別されます。これらの用語はCSSに委ねられています。 HTML5のコンテンツモデルは、コンテンツモデルは、文書内容の意味を支援するために使用される「フロー」、「言い回し」を含め、別の分類を使用し、この場合に重要、"transparent"

。しかし、ブラウザはその意味を気にせず、それをレンダリングする方法しか気にしません。

CSSは、HTMLのコンテンツモデルの制限に完全に関係なく、インライン要素内のブロック要素をどのようにレンダリングするかについて明確なルールを定めています。この回答を参照してください:Is it wrong to change a block element to inline with CSS if it contains another block element?

したがって、動作は「特別」ではなく、ブラウザは通常のCSSルールを使用して処理する以外は何もする必要はありません。

最初の質問では、「不正確さ」が<del>の使用を意味するかどうかを判断するのは難しいです。コメント作成者がその不正確さを取り消そうとする場合は、<del>が適切です。

関連する問題