Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can a span be closed using <span />?

Tags:

html

css

layout

Whether or not this is valid depends on your doctype, basically whether or not you're using XHTML or HTML.

When using XHTML, all major browsers will support self closing tags like the example you provided. Take the following example, this is valid because I'm specifying the page is using XHTML (in other words, HTML that is valid XML).

Update: Based on the very good comments below, browsers will only interpret all self closing tags correctly if the mime type is text/xml or application/xhtml+xml, see here for the details. For pages served as text/html (the vast majority), see here here for the tags that can be self closing.

This example will validate:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <h2>Will test page</h2>
    <p>some stuff <span class="drop" /></p>
</body>
</html>

However, this example is not valid, because I've switched the doctype to HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <h2>Will test page</h2>
    <p>some stuff <span class="drop" /></p>
</body>
</html>

A few helpful references:

  • W3C Validator
  • XHTML vs HTML

No, this isn't supported by all browsers.
Here's an example with divs: http://jsbin.com/upovu


Testing the following fragment on validator.w3.org:

<p><span class="drop" /></p>

Validating as HTML 4.01 Strict

# end tag for "SPAN" omitted, but its declaration does not permit this

Validating as XHTML 1.0 Strict

# The uploaded document was successfully checked as XHTML 1.0 Strict.

Easiest way to check is using http://validator.w3.org/

And the answer is no.