Asked  7 Months ago    Answers:  5   Viewed   16 times

What's the difference between <b> and <strong>, <i> and <em> in HTML/XHTML? When should you use each?



They have the same effect on normal web browser rendering engines, but there is a fundamental difference between them.

As the author writes in a discussion list post:

Think of three different situations:

  • web browsers
  • blind people
  • mobile phones

"Bold" is a style - when you say "bold a word", people basically know that it means to add more, let's say "ink", around the letters until they stand out more amongst the rest of the letters.

That, unfortunately, means nothing to a blind person. On mobile phones and other PDAs, text is already bold because screen resolution is very small. You can't bold a bold without screwing something up.

<b> is a style - we know what "bold" is supposed to look like.

<strong> however is an indication of how something should be understood. "Strong" could (and often does) mean "bold" in a browser, but it could also mean a lower tone for a speaking program like Jaws (for blind people) or be represented by an underline (since you can't bold a bold) on a Palm Pilot.

HTML was never meant to be about styles. Do some searches for "Tim Berners-Lee" and "the semantic web." <strong> is semantic—it describes the text it surrounds (e.g., "this text should be stronger than the rest of the text you've displayed") as opposed to describing how the text it surrounds should be displayed (e.g., "this text should be bold").

Tuesday, June 1, 2021
answered 7 Months ago

The mysterious overflow: hidden; is your friend here. It stops elements adjacent to floats from extending behind the float — I think that’s the layout you’re looking for.

Here’s some slightly edited HTML: I don’t think you can have # characters in your ids:

<div id="outer">
    <div id="inner1">
        inner div 1. Some text...
    <div id="inner2">
        inner div 2...

And here’s the CSS to achieve the layout you want.

(I put in additional CSS for IE 6 with HTML conditional comments. I just noticed you didn’t actually need it to work in IE 6 too, but if you fancy being nice to the IE 6 users out there...)

<style type="text/css">
#outer {
    overflow: hidden;/* Makes #outer contain its floated children */
    width: 100%;

    /* Colours and borders for illustration purposes */
    border: solid 3px #666;
    background: #ddd;

#inner1 {
    float: left;/* Make this div as wide as its contents */

    /* Colours and borders for illustration purposes */
    border: solid 3px #c00;
    background: #fdd;

#inner2 {
    overflow: hidden;/* Make this div take up the rest of the horizontal space, and no more */

    /* Colours and borders for illustration purposes */
    border: solid 3px #00c;
    background: #ddf;

<!--[if lte IE 6]>
<style type="text/css">
#inner2 {
    zoom: 1;/* Make this div take up the rest of the horizontal space, and no more, in IE 6 */

#inner1 {
    margin-right: -3px;/* Fix the 3-pixel gap that the previous rule introduces. (Shit like this is why web developers hate IE 6.) */

Tested and working in IE 6, 7, and 8; Firefox 3.5; and Chrome 4.

Wednesday, June 2, 2021
answered 6 Months ago

To visualize the difference, I usually imagine two textboxes in Word or Photoshop.

  • alignBottom lines up the bottom of the textboxes. (The blue outline)
    • Text could be uneven, but the boxes they're in would line up on the bottom.
  • alignBaseline aligns the actual text within the box. This can help ensure that the texts line up on the bottom, regardless of font size or textbox size. (The green line)

enter image description here

What is a Baseline?

Baseline is a typography term that refers to the invisible line text is written on.

What is a baseline

(As referenced in What is the baseline in RelativeLayout?)


If you're not careful, using alignBaseline could make your layout look like this: Unintended baseline alignment

Details: Watch That Baseline Alignment

I don't know if you're still looking for the answer, but I decided to at least put this out there since this was one of the first results.

Sunday, August 1, 2021
answered 4 Months ago

According to the DTD, lots of elements:

br | span | bdo | map
object | img | tt | i | b | big | small 
ins | del | script | input | select | textarea | label | button
em | strong | dfn | code | q |
               samp | kbd | var | cite | abbr | acronym | sub | sup 
Thursday, August 5, 2021
Vamsi Emani
answered 4 Months ago

As of yesterday (NDK r9d), gnustl was still more comprehensive, e.g. support for <thread>, <future>, and some other C++11 features. Even these depend on the toolchain: you could not use the default ARM gcc 4.6 to have them enabled.

OTOH, stlport license is no-nonsense free, like the rest of AOSP, while the linking exception to GPL v3 for gnustl is not easy to understand. See for some older discussion.

If you look at the NDK release notes, you will find that in terms of fixed bugs these two STL implementations were more or less on par.

I would be glad to see performance benchmarks, but personally I have never encountered a situation where STL implementation variation resolved a real bottleneck.

Monday, September 27, 2021
answered 2 Months ago
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :