开发者

CSS columns: both fluid and flexible in width

The challenge is to come up with this:

+--------------------------------------++----------------+
| This is a header with potentially    || button div     |
|                                      ||                |
| long text that will 开发者_如何学Cwrap most likely |+----------------+
|                                      |
| but can't go under the button to the |
|                                      |
| right                                |
+--------------------------------------+

Not a big deal with a typical 2 column layout where you set the left column's margin to equal that of the div on the right. The variable in this particular example, however, is that I won't know how wide the div on the right will be at any given time (it's based on a line of text that will vary.

In summary, I need:

  • a 2 column layout
  • both columns take up the full width
  • column on right is as wide as the text it contains
  • column on left is as wide as the leftover space

It seems like I would have had to have built this before but I'm stumped.

I'm open to CSS, JS or jQuery solutions.

Actually, I can already see a fairly easy jQuery solution. I can grab the rendered width of the div on the right, then do some math subtracting that width from the width of the parent container and then setting the width of the left column the same. That'll be my fallback plan if there's not a clean CSS option.


See: http://jsfiddle.net/vpADP/

It will work in IE7+ and all modern browsers.

HTML:

<div id="buttonDiv">button div as wide as text</div>
<div id="leftDiv">
    left div
</div>

CSS:

#leftDiv {
    overflow: hidden
}
#buttonDiv {
    float: right
}

That's not the typical use of overflow: hidden, read this for details.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜