开发者

Question of standards: I, EM, B, STRONG, BIG, SMALL

In real work, I always use EM for italics, STRONG for selection. And SMALL.

I decided to update their knowledge in HTML + decided to look towards the HTML 5

So, xHTML 1.0 strict, as the language of separating flies and cutlets, and allowed the following inline elements related to the text:

I, EM, B, STRONG, BIG, SMALL

here, I came across the first question - why the tags B and I have not been eliminated or at least not become deprecated in XHTML? After all, if you look at the DTD, then about the tag B &a开发者_开发技巧mp; I is clearly written:

<! ELEMENT b% Inline;> <! - Bold font ->
<! ELEMENT i% Inline;> <! - Italic font ->

Is the fat content and courses are structural, logical feature? This is clearly a visual feature.

Next, I looked at http://www.w3schools.com/html5/html5_reference.asp and was surprised that the tag BIG somehow removed from the HTML5, and its logical equivalent SMALL - left! Although BIG was even in XHTML 1.0 Strict!

Where is the logic in such permutations? Explain.


There are uses for tags such as i and small that are not presentational but semantic. <small> represents fine print (or legal print) and side comments. And i can be used for text that is traditionally italicized but not emphasized, e.g. book titles, foreign words, and Latin names of species.

As to why <big> has been dropped while <small> hasn't, see this answer.


First of all EM is not for italics, it is for EMPHASIS. STRONG is for strong emphasis. You should never use them for any other purpose. Not according to the HTML 4 specs, XHTML or HTML5.

For presentational effects one should use CSS.

So why has B, I and SMALL been kept in HTML5?

  1. To prevent abuse of EM and STRONG. If you can not use CSS, like on a forum or a wiki, it is better to use non semantic elements, than to abuse semantic ones. As in our comments for Stackoverflow, where I suspect em and strong is being abused a lot, thanks to the WYSIWYG editor we are using.

  2. There might be legitimate reasons to use bold or italics besides what is covered by EM, STRONG and DFN. HTML5 defines this as text that should be spoken in different voice or mood, it thus adds a kind of semantic and a legitimate use case. This slight redefinition is controversial.

  3. In lieu of B and I some software and/or users insert style-attributes. That is trading one evil for an even worse one.

  4. The same applies to SMALL as well. It has received a similar use case, where it sort of carries a semantic meaning. It does NOT mean side commments.

BTW, B and I were not deprecated in HTML 4/XHTML 1.


why the tags B and I have not been eliminated or at least not become deprecated in XHTML?

Nothing was deprecated in XHTML 1.0. It was designed to express HTML 4.01 in XML.

XHTML 1.1 only slightly tweaked it.

Next, I looked at http://www.w3schools.com/html5/html5_reference.asp

No. Not W3Schools. Please no.

and was surprised that the tag BIG somehow removed from the HTML5, and its logical equivalent SMALL - left!

The semantics of small have been redefined. It will (if not changed before HTML5 becomes a recommendation) mean "side comments" and not "a reduced font size".


Standards are more politics than logic reason.

Sign up to any w3 mailing list (personal favourite is public-html), sit back and enjoy(?) the reality soap.


I believe Hickson should stick to use "style" for changing font sizes, not using those "big" and "small" tags.

To maintain "small" and remove "big" is just so wrong.


Personally I'm happy with this state — there are some conventions (semantics) around "small print" and that tag works quite nicely for it. If I said "read the small print" in a conversation, that would make sense, but "read the big print" and you'd be thinking "what's 'big print'?" I'm happy to see big go (never use it) and small stay (use it often).

I don't personally use b, finding strong suits my needs there. But there are cases where you want text italicised but not emphasised. If it's emphasis, I use EM. If it's a citation, I use CITE. If it's some other italics convention, I don't want to misuse EM or CITE.

Wikipedia has some notes on when to use italics, and you'll find some notes here on the various HTML tags that could be used with those examples: http://www.w3.org/html/wg/wiki/Guide/italics#General_Examples

Feel free to debate any or all examples. It was just my stab at it. Some are straightforward (e.g. use of EM), others are somewhat ambiguous. I prefer to use I for italics rather than choose (a) EM, where that would be misuse or (b) SPAN with font-style italic, which carries NO semantic meaning.

The fact is there are semantics attached to use of italic test (in English at least) and HTML does not provide custom elements to deal with all of them, nor does it need to imho. I is a suitable middle ground.

And for anyone who dislikes using it, you never have to! It's not mandatory :)


I think, part of the answer about <big> and <small> can be found in the spec:

The small element represents side comments such as small print.

Note: Small print typically features disclaimers, caveats, legal restrictions, or copyrights. Small print is also sometimes used for attribution, or for satisfying licensing requirements.

So basically the semantics of <small> is “side comments” and “small print” (in the sense of disclaimers), which is encoded in HTML by an element named “small”. Maybe the naming should be better, of course.


Why is <small> still in HTML5, but <big> isn’t?

I’d assume <small> is still around because it’s often used for side comments, disclaimers, etc in practice, and there isn’t an existing HTML element suited to the task.

Ian Hickson tried to design HTML5 based on how HTML was used in practice: paving the cowpaths. Thus there are places where logic is sacrificed for practicability. (As it says on the WHATWG blog, “Please leave your sense of logic at the door, thanks!”.

If people are already using <small> for side comments, and aren’t using <big> for anything meaningful (I say “if” as there’s plenty of room to debate and/or research that), then why not enshrine the common usage of the former in the spec, and remove the latter?

Why are <b> and <i> still in HTML5 if they’re purely visual in effect?

<b> and <i> have been redefined to have meaning in HTML5, although it’s a very light form of meaning:

  • <i>: “a span of text in an alternate voice or mood”
  • <b>: “a span of text to which attention is being drawn for utilitarian purposes”

They’re now general purpose elements, to be used to distinguish runs of text for reasons not covered specifically by another tag.


Oh, the irony: "fine print" is metonimy for something purely presentational, usually carrying just-as-important information but made harder to read in order to decieve the reader into skipping it. Back in the day of print, it would have been a purely 'CSS' job.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜