Chapter 10  Visual formatting model details  10.3.9 'Inlineblock', nonreplaced elements in normal flow
Go to the relevant page of the specification.
 absolutenonreplacedwidth017 (ahem)

'shrinktofit' width of absolutely positioned, nonreplaced elements  direction (lefttoright), inlineblock and maxwidth
When direction is lefttoright and 'left' is set to static position and 'width' and 'right' are 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is also given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If width of an absolutely positioned, nonreplaced element resorts to 'shrinktofit' width calculation but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  absolutenonreplacedwidth018 (ahem)

'shrinktofit' width of absolutely positioned, nonreplaced elements  direction (lefttoright), inlineblock and maxwidth
When direction is lefttoright and 'left' is set to static position and 'width' and 'right' are 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is also given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If width of an absolutely positioned, nonreplaced element resorts to shrinktofit width calculation but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  absolutenonreplacedwidth021 (ahem)

'shrinktofit' width of absolutely positioned, nonreplaced elements  direction (righttoleft), inlineblock and maxwidth
When direction is righttoleft and 'right' is set to static position and 'width' and 'left' are 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is also given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If width of an absolutely positioned, nonreplaced element resorts to 'shrinktofit' width calculation but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  absolutenonreplacedwidth022 (ahem)

'shrinktofit' width of absolutely positioned, nonreplaced elements  direction (righttoleft), inlineblock and maxwidth
When direction is righttoleft and 'right' is set to static position and 'width' and 'left' are 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is also given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If width of an absolutely positioned, nonreplaced element resorts to 'shrinktofit' width calculation but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  floatnonreplacedwidth007 (ahem)

'shrinktofit' width of floating, nonreplaced elements  inlineblock and maxwidth
If 'width' of a floating, nonreplaced element computes to 'auto' or 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If 'width' of a floating, nonreplaced element computes to 'auto' but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  floatnonreplacedwidth011 (ahem)

'shrinktofit' width of floating, nonreplaced elements  inlineblock and maxwidth
If 'width' of a floating, nonreplaced element computes to 'auto' or 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If 'width' of a floating, nonreplaced element computes to 'auto' but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  inlineblock001

inlineblock: ping test
 inlineblock002 (interact)

inlineblock: width
 inlineblock003 (interact)

inlineblock: width
 inlineblock004 (interact)

inlineblock: width
 inlineblock005 (interact)

inlineblock: width
 inlineblocknonreplacedwidth001 (ahem)

Inlineblock nonreplaced elements shrinktofit
If 'width' is 'auto' then 'inlineblock' elements shrinktofit.  inlineblocknonreplacedwidth002 (ahem)

Inlineblock nonreplaced elements with 'marginleft' and 'marginright' set to 'auto'
When 'marginleft' and 'marginright' are set to 'auto' the used value becomes '0'.  inlineblocknonreplacedwidth003 (ahem)

'shrinktofit' width of inlineblock nonreplaced elements  maxwidth
If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto' but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  inlineblocknonreplacedwidth004 (ahem)

'shrinktofit' width of inlineblock nonreplaced elements  maxwidth
If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto', then the used value of 'width' is given by 'shrinktofit' width calculation. If 'width' of an inlineblock, nonreplaced element in normal flow is given by 'shrinktofit' width calculation, then such calculated width can be furthermore constrained, reduced by a maxwidth declaration. If 'width' of an inlineblock, nonreplaced element in normal flow computes to 'auto' but its own child uses a constrained length resulting from a maxwidth declaration, then such constrained length will define the preferred width in 'shrinktofit' width calculation.  inlineblockwidth001a

Test for 'width: auto' on inlineblock
 inlineblockwidth001b

Test for 'width: auto' on inlineblock
 inlineblockwidth002a

Test for 'width: auto' on inlineblock
 inlineblockwidth002b

Test for 'width:
' on inlineblock