All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class org.w3c.css.properties.CssFloat

java.lang.Object
   |
   +----org.w3c.css.properties.CssProperty
           |
           +----org.w3c.css.properties.CssFloat

public class CssFloat
extends CssProperty

   'float'

Value: left | right | none
Initial: none
Applies to: all elements
Inherited: no
Percentage values: N/A

With the value 'none', the element will be displayed where it appears in the text. With a value of 'left' ('right') the element will be moved to the left ('right') and the text will wrap on the right (left) side of the element. With a value of 'left' or 'right', the element is treated as block-level (i.e. the 'display' property is ignored).

   Floating elements

Using the 'float' property, an element can be declared to be outside the normal flow of elements and is then formatted as a block-level element. For example, by setting the 'float' property of an image to 'left', the image is moved to the left until the margin, padding or border of another block-level element is reached. The normal flow will wrap around on the right side. The margins, borders and padding of the element itself will be honored, and the margins never collapse with the margins of adjacent elements.

A floating element is positioned subject to the following constraints:

  1. The left outer edge of a left-floating element may not be to the left of the left inner edge of its parent element. Analogously for right floating elements.
  2. The left outer edge of a left floating element must be to the right of the right outer edge of every earlier (in the HTML source) left-floating element or the top of the former must be lower than the bottom of the latter. Analogously for right floating elements.
  3. The right outer edge of a left-floating element may not be to the right of the left outer edge of any right-floating element that is to the right of it. Analogously for right-floating elements.
  4. A floating element's top may not be higher than the inner top of its parent.
  5. A floating element's top may not be higher than the top of any earlier floating or block-level element.
  6. A floating element's top may not be higher than the top of any line-box (see section 4.4) with content that precedes the floating element in the HTML source.
  7. A floating element must be placed as high as possible.
  8. A left-floating element must be put as far to the left as possible, a right-floating element as far to the right as possible. A higher position is preferred over one that is further to the left/right.
   <STYLE TYPE="text/css">
     IMG { float: left }
     BODY, P, IMG { margin: 2em }
   </STYLE>
   <BODY>
     <P>
       <IMG SRC=img.gif>
       Some sample text that has no other...
   </BODY>
 

The above example could be formatted as:

    ________________________________________
   |
   |          max(BODY margin, P margin)
   |          ______________________________
   |    |    |             Some sample text
   | B  | P  | IMG margins that has no other
   | O  |    |    _____    purpose than to 
   | D  | m  |   |     |   show how floating
   | Y  | a  |   | IMG |   elements are moved
   |    | r  |   |     |   to the side of the
   | m  | g  |   |_____|   parent element
   | a  | i  |             while honoring
   | r  | n  |             margins, borders
   | g  |    |             and padding. Note
   | i  |    |how adjacent vertical margins  
   | n  |    |are collapsed between non-
   |    |    |floating block-level elements.
 

Note that the margin of the 'P' elements enclose the floating 'IMG' element.

There are two situations when floating elements can overlap with the margin, border and padding areas of other elements:


Constructor Index

 o CssFloat()
Create a new CssFloat
 o CssFloat(CssExpression)
Create a new CssFloat

Method Index

 o addToStyle(CssStyle)
Add this property to the CssStyle.
 o equals(CssProperty)
Compares two properties for equality.
 o get()
Returns the value of this property
 o getPropertyInStyle(CssStyle, boolean)
Get this property in the style.
 o getPropertyName()
Returns the name of this property
 o isDefault()
Is the value of this property is a default value.
 o isSoftlyInherited()
Returns true if this property is "softly" inherited e.g.
 o toString()
Returns a string representation of the object.

Constructors

 o CssFloat
 public CssFloat()
Create a new CssFloat

 o CssFloat
 public CssFloat(CssExpression expression) throws InvalidParamException
Create a new CssFloat

Parameters:
expression - The expression for this property
Throws: InvalidParamException
Values are incorrect

Methods

 o get
 public Object get()
Returns the value of this property

Overrides:
get in class CssProperty
 o getPropertyName
 public String getPropertyName()
Returns the name of this property

Overrides:
getPropertyName in class CssProperty
 o isSoftlyInherited
 public boolean isSoftlyInherited()
Returns true if this property is "softly" inherited e.g. his value equals inherit

Overrides:
isSoftlyInherited in class CssProperty
 o toString
 public String toString()
Returns a string representation of the object.

Overrides:
toString in class CssProperty
 o addToStyle
 public void addToStyle(CssStyle style)
Add this property to the CssStyle.

Parameters:
style - The CssStyle
Overrides:
addToStyle in class CssProperty
 o getPropertyInStyle
 public CssProperty getPropertyInStyle(CssStyle style,
                                       boolean resolve)
Get this property in the style.

Parameters:
style - The style where the property is
resolve - if true, resolve the style to find this property
Overrides:
getPropertyInStyle in class CssProperty
 o equals
 public boolean equals(CssProperty property)
Compares two properties for equality.

Parameters:
value - The other property.
Overrides:
equals in class CssProperty
 o isDefault
 public boolean isDefault()
Is the value of this property is a default value. It is used by all macro for the function print

Overrides:
isDefault in class CssProperty

All Packages  Class Hierarchy  This Package  Previous  Next  Index