css-overflow/Overview.src.html

changeset 9850
0cd153c3469c
parent 8332
31b5970ee580
child 9865
625d8c1b183a
     1.1 --- a/css-overflow/Overview.src.html	Tue Jan 28 00:45:24 2014 -0800
     1.2 +++ b/css-overflow/Overview.src.html	Tue Jan 28 01:13:53 2014 -0800
     1.3 @@ -243,6 +243,169 @@
     1.4  		in the CSS Fragmentation Module [[!CSS3-BREAK]].
     1.5  	</p>
     1.6  
     1.7 +<h2 id="overflow-concepts">Types of overflow</h2>
     1.8 +
     1.9 +	<p>
    1.10 +		CSS uses the term <dfn>overflow</dfn> to describe
    1.11 +		the contents of a box
    1.12 +		that extend outside that one of that box's edges
    1.13 +		(i.e., its <i>content edge</i>, <i>padding edge</i>,
    1.14 +		<i>border edge</i>, or <i>margin edge</i>).
    1.15 +		The overflow might be described as the elements or features
    1.16 +		that cause this overflow,
    1.17 +		the non-rectangular region occupied by these features,
    1.18 +		or, more commonly,
    1.19 +		as the minimal rectangle that bounds that region.
    1.20 +		A box's overflow is computed based on the boxes and styles
    1.21 +		of the box and of all its descendants whose containing block chain
    1.22 +		<span class="issue">undefined term?</span>
    1.23 +		includes the box.
    1.24 +	</p>
    1.25 +
    1.26 +	<p>
    1.27 +		In most cases, any of these types of overflow
    1.28 +		can be computed for any box
    1.29 +		from the bounds and properties of that box,
    1.30 +		and from the overflow (of that type)
    1.31 +		of each of its children.
    1.32 +		However, this is not always the case; for example,
    1.33 +		when ''transform-style: preserve-3d'' [[CSS3-TRANSFORMS]] is used on
    1.34 +		some of the children, their descendants with
    1.35 +		''transform-style: preserve-3d'' must also be examined.
    1.36 +	</p>
    1.37 +
    1.38 +<h3 id="ink-overflow">Ink overflow</h3>
    1.39 +
    1.40 +	<p>
    1.41 +		The <dfn>ink overflow</dfn> of a box
    1.42 +		is the part of that box and its contents that
    1.43 +		creates a visual effect outside of
    1.44 +		the box's border box.
    1.45 +	</p>
    1.46 +
    1.47 +	<p>
    1.48 +		Since some effects in CSS (for example, the blurs in
    1.49 +		'text-shadow' [[CSS3TEXT]] and 'box-shadow' [[CSS3BG]])
    1.50 +		do not define what visual extent they cover, the extent
    1.51 +		of the <i>ink overflow</i> is undefined.
    1.52 +	</p>
    1.53 +
    1.54 +	<p class="issue">
    1.55 +		Should we try to define it at all and just leave pieces undefined?
    1.56 +	</p>
    1.57 +
    1.58 +	<p>
    1.59 +		The <dfn>ink overflow region</dfn> is the non-rectangular region
    1.60 +		occupied by the <i>ink overflow</i>, and the
    1.61 +		<dfn>ink overflow rectangle</dfn> is
    1.62 +		the minimal rectangle whose axis is aligned to the box's axes
    1.63 +		and contains the <i>ink overflow region</i>.
    1.64 +		Note that the <i>ink overflow rectangle</i> is a rectangle
    1.65 +		in the box's coordinate system, but might be non-rectangular
    1.66 +		in other coordinate systems due to transforms [[CSS3-TRANSFORMS]].
    1.67 +	</p>
    1.68 +
    1.69 +<h3 id="scrollable-overflow">Scrollable overflow</h3>
    1.70 +
    1.71 +	<p>
    1.72 +		The <dfn>scrollable overflow</dfn> of a box is the
    1.73 +		set of things extending outside of that box's padding edge
    1.74 +		for which a scrolling mechanism needs to be provided.
    1.75 +	</p>
    1.76 +
    1.77 +	<p>
    1.78 +		Given the following definitions
    1.79 +		<span class="issue">which belong in [[CSS3-TRANSFORMS]]</span>:
    1.80 +	</p>
    1.81 +
    1.82 +	<dl>
    1.83 +		<dt><dfn>3d-preserving child</dfn></dt>
    1.84 +		<dd>
    1.85 +			A child box C of a parent box P is a 3d-preserving
    1.86 +			child if it has ''transform-style: preserve-3d''
    1.87 +			and the user-agent is not required to flatten it
    1.88 +			based on the <a href="http://www.w3.org/TR/css3-transforms/#transform-style-property">requirements</a> in [[!CSS3-TRANSFORMS]].
    1.89 +		</dt>
    1.90 +		<dt><dfn>non-3d-preserving child</dfn></dt>
    1.91 +		<dd>
    1.92 +			A child C of a box P is a non-3d-preserving-child if
    1.93 +			it is not a <i>3d-preserving child</i>.
    1.94 +		</dd>
    1.95 +		<dt><dfn>3d-preserving descendant</dfn></dt>
    1.96 +		<dd>
    1.97 +			Box D is a 3d-preserving descendant of box A if A is
    1.98 +			an ancestor of D, and D and all of the boxes (if any)
    1.99 +			in the ancestor chain from D to A
   1.100 +			are <i>3d-preserving child</i> boxes.
   1.101 +		</dd>
   1.102 +	</dl>
   1.103 +
   1.104 +	<p>The scrollable overflow of a box is the union of the following things,
   1.105 +	all adjusted for transforms <span class="issue">undefined concept!</span> into the box's coordinate space:</p>
   1.106 +
   1.107 +	<ul>
   1.108 +		<li>
   1.109 +			for the box and all of its <i>3d-preserving descendant</i> boxes:
   1.110 +			<ul>
   1.111 +				<li>the box's own padding edge (for the box itself) or border edge (for <i>3d-preserving descendant</i> boxes)</li>
   1.112 +				<li>the bounds <span class="issue">undefined term!</span> of any text directly in the box</li>
   1.113 +				<li><span class="issue">MORE HERE!</span>
   1.114 +			</ul>
   1.115 +		<li>
   1.116 +			for all the <i>non-3d-preserving child</i> boxes of the
   1.117 +			box and its <i>3d-preserving descendant</i> boxes,
   1.118 +			the scrollable overflow of the box
   1.119 +		</li>
   1.120 +	</ul>
   1.121 +
   1.122 +	<p class="issue">
   1.123 +		I wrote this definition off the top of my head,
   1.124 +		so it can't possibly be right.
   1.125 +		It's missing tons of pieces!
   1.126 +	</p>
   1.127 +
   1.128 +	<p>
   1.129 +		The <dfn>scrollable overflow region</dfn> is the non-rectangular region
   1.130 +		occupied by the <i>scrollable overflow</i>, and the
   1.131 +		<dfn>scrollable overflow rectangle</dfn> is
   1.132 +		the minimal rectangle whose axis is aligned to the box's axes
   1.133 +		and contains the <i>scrollable overflow region</i>.
   1.134 +		Note that the <i>scrollable overflow rectangle</i> is a rectangle
   1.135 +		in the box's coordinate system, but might be non-rectangular
   1.136 +		in other coordinate systems due to transforms [[CSS3-TRANSFORMS]].
   1.137 +	</p>
   1.138 +
   1.139 +<h3 id="border-box-overflow">Border box overflow</h3>
   1.140 +
   1.141 +	<p class="issue">
   1.142 +		This concept has been proposed for some uses, such as for
   1.143 +		determining what the 'outline' property goes around, and
   1.144 +		as the basis of a coordinate system for specifying clips and masks,
   1.145 +		but it's not clear if it's needed.
   1.146 +	</p>
   1.147 +
   1.148 +	<p>
   1.149 +		The <dfn>border-box overflow</dfn> of a box is the
   1.150 +		union of the box's border edge and the border edges of
   1.151 +		the box's descendants.</p>
   1.152 +	</p>
   1.153 +
   1.154 +	<p class="issue">
   1.155 +		If needed, define more formally, as for scrollable overflow above.
   1.156 +		(Maybe even share the definitions in an appropriate way!)
   1.157 +	</p>
   1.158 +
   1.159 +	<p>
   1.160 +		The <dfn>border-box overflow region</dfn> is the non-rectangular region
   1.161 +		occupied by the <i>border-box overflow</i>, and the
   1.162 +		<dfn>border-box overflow rectangle</dfn> is
   1.163 +		the minimal rectangle whose axis is aligned to the box's axes
   1.164 +		and contains the <i>border-box overflow region</i>.
   1.165 +		Note that the <i>border-box overflow rectangle</i> is a rectangle
   1.166 +		in the box's coordinate system, but might be non-rectangular
   1.167 +		in other coordinate systems due to transforms [[CSS3-TRANSFORMS]].
   1.168 +	</p>
   1.169 +
   1.170  <h2 id="overflow-properties">Overflow properties</h2>
   1.171  
   1.172  	<p>

mercurial