views:

55

answers:

2

An HTML <body> element can only contain block elements such as <p>. If I declare an inline element such as <span> to be display: block using CSS does that make the following HTML well-formed?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>Title</title>
  </head>
  <body>
    <span style="display: block;">Hi!</span>
  </body>
</html>
+3  A: 

<span> is an inline element and not a valid direct child of <body>. The CSS display attribute does not change that.

cletus
+1  A: 

Did you check to see if it validated (it doesn't)? The specifications for XHTML and HTML only apply to themselves, they don't cross boundaries with CSS specifications much. Thus, there won't be anywhere in the definition that checks the value of the style attribute for a certain CSS property in order to validate a document.

Andy E