![]() | |
![]() |
| | Thread Tools | Display Modes |
#41
| |||
| |||
|
|
dorayme wrote: This is not right Gus. The float does it all by itself for its own text. The div (as you have them) are not doing *this* shrink-wrapping thing Fine. The text wraps around the float. Forget about the word "Shrinkwrapping". No problem. Perhaps you confuse the float somehow. The float is a box with "Some text and more" with a green background. You say I should remove the dimensions. I have no idea why when I desire them. Remember that the float could be an image with its dimensions. I also wish to set the width for shrink box just because I can and to see it wrap around the float. Remove the widths on everything completely (which are not needed for your interesting question btw) to see. No! The dimensions are needed! As is! In my examples! 1. In the 1st example it shows text wrapping around a float. 2. In the 2nd example position:relative; is applied to #shrink. #float now goes behind #shrink. _Why?_ |
#42
| |||
| |||
|
|
dorayme wrote: In article <MPWdnYQR98QBFWjanZ2dnUVZ_sednZ2d (AT) golden (DOT) net>, Gus Richter <gusrichter (AT) netscape (DOT) net> wrote: #shrink {border: 1px solid;background: #ffc;width:8em;} OK Gus, will take a look. But I am puzzled why you talk of #shrink being "shrinkwrapped" Oh, there is some web design book that calls it that. I had never heard of it until then. Something about floats shrinking to the minimum size of the contents, again something I'm unfamiliar with. Perhaps someone can elaborate on this. |
#43
| |||
| |||
|
|
Giving an element a position, even a relative one, seems to take it "out of the flow" in a notional sense (even if there are no offsets specified). |
#44
| |||
| |||
|
|
Because it's positioned, and therefore in stacking level 6 rather than in stacking level 3. The float is always in stacking level 4. 3 is behind 4, 6 is on top of it. These levels are described in CSS 2.1 9.9.1. Yes thank you. In the first post I mentioned the stacking order, but |
#45
| |||
| |||
|
|
When time permits I try some of the many variables possible. Dorayme seems to be doing likewise. I note that on alt.html dorayme is responding to a question "DIV - |
#46
| |||
| |||
|
|
dorayme wrote: There is a fairly fairly consistent rendering of the phenomenon you have been wondering about, this is true. So some rules are being followed! I find the the talk of the various contexts, stacking etc not easy to negotiate - to be frank. The thing about stacking order for layers is that normally we say that elements must be positioned to overlap in order for any z-index to visually take effect. |
|
Well, in the instance of a float we actually already have the float layered on top of the containing block with line boxes (which we've been calling div#shrink in our examples) and regarding this the spec http://www.w3.org/TR/CSS21/visuren.html#floats> has this to say: "The contents of floats are stacked as if floats generated new stacking contexts, except that any elements that actually create new stacking contexts take part in the float's parent's stacking context. A float can overlap other boxes in the normal flow (e.g., when a normal flow box next to a float has negative margins). When this happens, floats are rendered in front of non-positioned in-flow blocks, but behind in-flow inlines." |
#47
| |||
| |||
|
|
dorayme wrote: I earlier gave an indication of a test for when it has sunk in for a normal human. It was a predictive one, not a hindsight one. I am still not as optimistic as you. The slight thing that worries me in my pessimism is that many browsers *do* the same thing, so someone or some group who programmed the browsers had a certain understanding of these things. However, I can't even be sure of this. It may turn out that the programmers put in a set of rules and one of the consequences is the phenomenon you raised, but it takes a blind machine to bring it out (like a not particularly intended consequence). What would be nice is a model that tells a story that is consistent and meaningful and useful. That one can see in practical circumstances as useful. That one can understand for prediction. I am suspicious of the act of staring at tracts of convoluted human unfriendly systems of rules and saying in hindsight, ah, the penny has dropped. This seems to me to be a different kind of understanding than the one that can predict things. We can predict consistent behaviour as soon as we accept that: 1. The float's real estate covers that of the containing block, where both start at 0,0 (without any positioning). Either may have smaller or larger width and/or height. 2. In the instance of a float we actually 'already' have the float layered on top of the containing block with a pre-established stacking order. 3. _Without any positioning applied_ to the containing block, the float has a higher stacking order. The float is on top. 4. _With positioning applied_ to the containing block, the containing block has a higher stacking order. The float is on bottom. 5. _With positioning applied_, the stacking order may be changed by applying z-index to the containing block. |
#48
| |||
| |||
|
|
In my examples, "wrapper" and "containing block" are two different things. The "wrapper" is simply used to reposition the segment pairs. In your examples in the link I mention above, you use headings to accomplish this w/o wrappers. The "containing block" is each one of the yellow boxes in every one of your examples on the page linked above (yellow boxes in my examples as well). It is a bit counter-intuitive in that normally a container comes first in the markup, but in the case with floats, the "container block" comes _after_ the float. |
#49
| |||
| |||
|
|
dorayme wrote: I am inclined to actually use the phrase "containing block" where the context shows it to do a job of containing. Because the point is that it is the container, the parent, the big house where the children live... It is crucial that it is on the container, the parent, that rel pos is made for the abs to work. And I find it interesting how the "layers" work and yet the float still exerts the influence to push aside (displace) the text or pics in the following divs. Just had never thought of the float rules operating from a smothered "underneath" position! Those float rules are powerful voodoo huh? <g 1. Any floated item will be out of the normal flow. 2. When floated left, it will position itself to top,left (0,0) of its "container block". 3. The special feature of a float is that any inline box content in the "container box" will shift over to make room for the float. 4. Blah, blah, blah, blah. You are having difficulty in accepting the container thing, so try asking yourself: "If the float positions itself to 0,0 of the container block, then what could be the container block?" |
#50
| |||
| |||
|
|
Ben C wrote: Because it's positioned, and therefore in stacking level 6 rather than in stacking level 3. The float is always in stacking level 4. 3 is behind 4, 6 is on top of it. These levels are described in CSS 2.1 9.9.1. Yes thank you. In the first post I mentioned the stacking order, but never looked to see what the spec had to say. |
|
My bad. Dorayme jogged my memory by mentioning Appendix E and then it fell into place. I had given a quick stacking order. I note that you have given a different one. I still have to read through them in detail. |
![]() |
| Thread Tools | |
| Display Modes | |
| |