Re: Float and Shrinkwrap

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ben C

    Re: Float and Shrinkwrap

    On 2008-04-08, Gus Richter <gusrichter@net scape.netwrote:
    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?"
    Sometimes 0,0 of more than one container blocks occupy the same pixel on
    the screen, so this is not a good criterion.

    body
    float
    div

    In this example, 0,0 of div and body are in the same place because of
    margin collapsing.

    So which is the containing block for the float? Body, not the div,
    because it's the block level ancestor as specified.
  • Gus Richter

    #2
    Re: Float and Shrinkwrap

    Ben C wrote:
    On 2008-04-08, Gus Richter <gusrichter@net scape.netwrote:
    >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?"
    >
    Sometimes 0,0 of more than one container blocks occupy the same pixel on
    the screen, so this is not a good criterion.
    >
    body
    float
    div
    >
    In this example, 0,0 of div and body are in the same place because of
    margin collapsing.
    >
    So which is the containing block for the float? Body, not the div,
    because it's the block level ancestor as specified.
    I agree.
    My explanation of 0,0 of the container block fits simplistically.
    The following condenses the spec a little more in detail:

    1. Any floated item will be out of the normal flow.
    2. A float will position itself to the _top_ of any "block", "float" or
    "line box" earlier in the source (further rules are provided in the case
    of collapsing margins).
    3. When floated left, it will position itself to the _left_ of its
    "containing block" and when floated right, it will position itself to
    the _right_ of its "containing block" (further rules are provided in the
    case of collapsing margins).
    [A "Containing Block" is a generated box for the content/descendants
    and the containing block's behavior is determined by the "type" of box
    generated.]
    4. 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.

    Caveat: Although I "got it" when I wrote it, I find on re-reading that I
    have to reference the spec (bad part: in several different chapters) to
    see what I was talking about. So it needs quite a few more re-reads for me.

    --
    Gus

    Comment

    • Ben C

      #3
      Re: Float and Shrinkwrap

      On 2008-04-10, Gus Richter <gusrichter@net scape.netwrote:
      [...]
      The following condenses the spec a little more in detail:
      >
      1. Any floated item will be out of the normal flow.
      2. A float will position itself to the _top_ of any "block", "float" or
      "line box" earlier in the source (further rules are provided in the case
      of collapsing margins).
      Not earlier in the source but up the tree.

      It goes to the top of the current line box provided that putting it
      there doesn't mean that the line breaks such that text before the float
      ends up on the line box beneath it. In that case it goes at the top of
      the next line box. Firefox 2 and IE always put it at the top of the next
      line box anyway although this is technically wrong.
      3. When floated left, it will position itself to the _left_ of its
      "containing block" and when floated right, it will position itself to
      the _right_ of its "containing block"
      Yes, although it might not make it all the way to the left or right if
      there are other floats already in the way.
      (further rules are provided in the case of collapsing margins).
      Collapsing margins don't affect how far to the left or right it goes
      (well not directly, although they might influence the position of other
      floats).

      [...]
      4. 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.
      Yes although the inline boxes don't have to be in the same container.

      <div>
      <tall float that sticks out of the bottom>
      </div>
      <div>
      This text will shift over to make room for the float in the div
      above.
      </div>

      Comment

      Working...