p Element


 

Module

The p element is a block-level element declared by the XHTML 1.1 Text Module (Block Structural)

Elements in the Text Module are:
span | br (Inline Structural Support Module)
em | strong | q | cite | abbr | acronym | code | var | kbd | samp | dfn (Inline Phrasal Support Module)
div | p (Block Structural Support Module)
h1 - h6 | blockquote | pre | address (Block Phrasal Support Module)

Description

The p element encloses a single paragraph of text and so it can contain only text and inline elements. You cannot, for example, include lists, forms, headings or tables within a paragraph. You can, however, include a line break (using the br element) if it makes sense to start a new line within your paragraph. User agents usually add top/bottom margins to paragraphs by default, so that adjacent paragraphs are vertically separated, but CSS can be used to style them as the author desires.

Although a p element may validly be empty, like so: <p></p>, this is discouraged. See, for HTML 4.01 at the W3C: *Paragraphs: the P element, which even goes so far as to say that user agents should ignore empty paragraphs - whether this is also intended to apply to XHTML is unclear, but there is obviously little semantic meaning to an empty paragraph and user agents do usually ignore them. Browsers may also ignore p elements which contain only whitespace or no printing characters (e.g. <p> <em> </em> </p>). Overall, it is best to remember that a paragraph is not really a paragraph unless it contains something visible - stick to CSS to control the spacing of items within a page.

For example:

<p>Paragraph text may include line breaks<br /> <em>emphasised text</em>, <img src="/images/images.png" alt="images" /> and many other inline elements...</p>

This renders as (with an appropriate image) as:

Paragraph text may include line breaks
emphasised text, images and many other inline elements...

In the example above, the vertical alignment of the image on its line can be controlled by the CSS vertical-align property (e.g. vertical-align:middle).

See also the div element.

#REQUIRED Attributes

There are no #REQUIRED attributes on the p element.


Specific Attributes

There are no specific attributes declared on the p element.


Common Attributes

Common attributes of the p element are listed below:

From the Core Attribute Collection

class [ type NMTOKENS ]
One or more space separated classes
id [ type ID ]
A unique identifier for the element
style [ type CDATA ], from the Style Attribute Module (deprecated)
Element-specific styles
title [ type Text ]
Descriptive title for the element (in some user agents this may appear as a "tooltip" when the mouse hovers over the element)
xmlns [ type URI - #FIXED 'http://www.w3.org/1999/xhtml' ]
XML namespace

From the I18N Attribute Collection

dir [ type Enumeration (ltr | rtl) ], from the Bi-directional Text Module
Left-to-right or right-to-left directionality
xml:lang [ type LanguageCode ]
A language code for the element

From the Events Attribute Collection

All attributes in the Events Attribute Collection are supported:
onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup


Content Model

The Content Model for the p element is:

( #PCDATA | Inline.mix )*

See Content Model & Nesting for information about Content Model syntax and Nesting Groups.

Valid children of p

Valid parents of p


Page Footer & Copyright

Copyright © Sally Maughan 2005-2009 (Page last updated on 01 Oct 2009)

*Valid XHTML 1.1 - hosted by *Openstrike

Content based on the W3C Working Draft: *XHTML 1.1 and Recommendation: *XHTML Modularisation 1.1.

W3C, XHTML, XML, HTML, CSS and MathML are *Trademarks of the W3C (*MIT, *ERCIM, *Keio) with which the site's author has no connection.


Up, Next & Previous Links

Your Location

Home > XHTML 1.1 Home > XHTML 1.1 Indexes > Element Index (XHTML 1.1) > p Element