开发者

using css to allow a div to grow in width to a certain predetermined limit

Is it possible using CSS to have a panel that can grow in width as the content grows up to a certain predetermined limit? Many thanks, James


see here: http://jamesradford.net/me.htm

I need the 'LEFT COLUMN' to fill 50% of the 600px panel when there's sufficient content to fill the 50%. So in this 开发者_如何学运维example, the left column with much more content would grow to width=300px before vertically wrapping. thanks


You can use max-width to determine the maximum width to which the div (or other block or inline-block element) can stretch.

You can also specify a min-width to define the minimum width a block (or inline-block) element can have:

p, div {
    min-width: 20em;
    max-width: 50%;
}

My personal usage is to specify one of the attributes as an absolute value (px, em, pt) and the other as a percentage of the screen (%) or parent element.


You can set a max-width property within the style


based on the new information and link here's a suggestion.. use max-width as suggested on the left column, then set the column "gap" as a right margin to this div too.. then by setting overflow: hidden on the right column it will automatically take up whatever space is left over for it once other restrictions have been taken care of

working example : HERE

uncomment some of the text in left column to make the left div grow

Code: HTML

<div id="Container">

    <div class="leftCol">
        <h3>Left Column</h3>  
        <p>Pellentesque habitant morbi</p>
        <!--
        tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
        -->
    </div>

    <div class="ColumnGap">
        <h3>RIGHT COLUMN</h3>
        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
    </div>

</div>

CSS

#Container {
    border: 1px solid #000;
    float: left;
    width: 600px;
}

.leftCol {
    float: left;
    background-color: #444;
    color: #fff;
    border: 1px solid #000;
    max-width: 298px;  /* took off 2px for border - optional */
    margin-right: 10px; /* this is the "column gap" */
}

.ColumnGap {
    overflow: hidden; /* this column will auto adjust to space left  */
    background: #eee;
    border: 1px solid #000;
}

Added jQuery IE6 solution:

<!--[if lte IE 6]>aded jQuery solution for IE6
<script type="text/javascript">
$(document).ready(function() {

          $(".leftCol").each(function() {

           //Get the width of the left column
           var width = $(this).width();

           // if it's width is greater than 298px, fix it at 298px
           if (width > 298) {
             $(this).css("width", "298px");
           }

         });

});
</script>
<![endif]-->
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜