|
Convenient web based access to our favorite web design Usenet groups
|
 |
This is Interesting: Free Magazines for Graphics designers and webmasters
| Author |
| Thread |
 |
|
|
|
|
|
 |
 |
|
|
 |
 |
Re: Dynamic box layout question |
 |
|
 |
|
|
|
  09-21-05 - 12:40 AM
|
WeshaTheLeopard@XXXXXXXXXX wrote:
> Hi all,
>
> I have to admit that I'm completely at loss trying to implement the
> following layout:
>
> +-----------document---------+
>| |
>| +--box1---+ +--box2---+ |
>|| A | | A | |
>||<-- | | |<-- | | |
>|| | | | |
>|| | +---------+ |
>|| | +--box3-+ |
>|| | | A | |
>|| | |<-- | | |
>|| | | | |
>|| | +-------+ |
>|| | |
>|| | |
>| +---------+ |
>| |
> +----------------------------+
>
> The idea is that box1 clings to the left edge of the document window,
> box2 clings to the right edge of the box1 and aligns with its top edge,
> and box3 clings to the right edge of box1 and bottom edge of the box2.
> The catch is that the size of each box is unknown beforehand, and thus
> the layout must be dynamic.
>
> The code needs to work in Mozilla/Firefox, therefore no need to pay
> attention to IE's qurks.
>
> My idea was to put box1 into DIV1 and box2 and box3 into DIV2 and give
> them DISPLAY:INLINE so they can cling left-to-right -- but obviously I
> misunderstand something in the box model. Floating them to the left
> didn't help much either.
>
> Any hints and ideas appreciated.
Instead of display:inline, give them float:left.
The result though, is that if there's a line of text in DIV1 that's
longer than the required width, the width will just extend, unless you
set a specific width. The same goes for DIV2.
If the boxes are fixed widths, there is no problem. Otherwise I would
give both DIV1 and DIV2 a width (50%?), or, alternatively, give DIV1 a
width, and give DIV2 margin-left:[width of DIV1]; instead of
float:left.
--
Els http://locusmeus.com/
Sonhos vem. Sonhos vão. O resto é imperfeito.
- Renato Russo -
Now playing: Yes - Going For The One
|
|
|
| [
Post Follow-Up to this message ]
|
|
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
 |
Re: Dynamic box layout question |
 |
|
 |
|
|
| WeshaTheLeopard@gmail.com |
|
|
|
|
|
  09-21-05 - 12:40 AM
|
> If the width isn't restricted then it cannot work, table layout or
otherwise.
Huh? Tables, with their "rubber" ability, will either cause the text
inside to wrap, or will just stretch, but box1 will *always* be to the
left of box2 and box3, which cannot be guaranteed by 'float'... Can it?
> .container{
> width:30em;
> margin-right:auto;margin-left:auto}
That's cheating -- static values (such as 30em) may not be used as
content width is unknown beforehand. Besides, if you add border, you
will see that container turns out to be empty because floats escape the
flow...
I can set container to position:absolute, and then it properly engulfs
div1 and div2, but in that case I can't center it...
Is there any other way to place DIVs side by side beside float'ing
them?
I'm trying real hard to understand CSS layout model, but it's just way
too counterintuitive... :(((
|
|
|
| [
Post Follow-Up to this message ]
|
|
|
|
|
 |
 |
Re: Dynamic box layout question |
 |
|
 |
|
|
|
  09-21-05 - 12:40 AM
|
WeshaTheLeopard@XXXXXXXXXX wrote:
>
>Huh? Tables, with their "rubber" ability, will either cause the text
>inside to wrap, or will just stretch, but box1 will *always* be to the
>left of box2 and box3
Right you are, although it's not due to their shrink fit model.
>, which cannot be guaranteed by 'float'... Can it?
Nope, floats are not really suitable for creating layouts, they are
sometimes used to get around IEs poor CSS support. Floats used for
layout are a major source of frustration for budding CSS'ers because of
the issues that result from what is inappropriate usage.
>
>That's cheating -- static values (such as 30em) may not be used as
>content width is unknown beforehand.
You claimed that it wasn't: "thanks god, their content *is* limited in
width".
>Besides, if you add border, you
>will see that container turns out to be empty because floats escape the
>flow...
The container height collapses because floats are not part of the flow,
but this is irrelevant for horizontal centering.
>I can set container to position:absolute, and then it properly engulfs
>div1 and div2, but in that case I can't center it...
>
>Is there any other way to place DIVs side by side beside float'ing
>them?
inline-block (browser support is poor), CSS tables (not supported by
IE), and absolute positioning.
>I'm trying real hard to understand CSS layout model, but it's just way
>too counterintuitive... :(((
It should be much easier than it is, as it stands using CSS for layouts
takes skill, practice and patience. It would be much easier if IE had
supported CSS 2 properly, but it doesn't. Point your arrows towards
Redmond.
--
Spartanicus
|
|
|
| [
Post Follow-Up to this message ]
|
|
|
|
|
 |
|
|
 |
|
|
 |
| All times are GMT. The time now is 08:33 AM. |
 |
|
|
|
|
|  |
|