两个不同宽度样式的浮动

发布于 2024-10-30 01:54:25 字数 483 浏览 1 评论 0原文

是否可以有两个浮动,其中 .left 宽度以像素为单位,.right 以百分比为单位?因此,每当 .left 更改其宽度时,.right 都会自动调整。 例如:

<div id="wrap">
<div class="left"></div>
<div class="right"></div>
</div>

CSS代码:

#wrap {
    overflow: hidden;
    width: 500px;
    margin: 0 auto;
    padding: 5px 0;
}
.left {
    float: left;
    width: 200px;
    height: 100px;
}
.right {
    float: left;
    width: 100%;
    height: 100px;
}

Is it possible to have two floats with .left width in pixel and .right in percentage? So whenever .left changes its width, .right will just adjust automatically.
For example:

<div id="wrap">
<div class="left"></div>
<div class="right"></div>
</div>

CSS code:

#wrap {
    overflow: hidden;
    width: 500px;
    margin: 0 auto;
    padding: 5px 0;
}
.left {
    float: left;
    width: 200px;
    height: 100px;
}
.right {
    float: left;
    width: 100%;
    height: 100px;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

太阳男子 2024-11-06 01:54:25

您根本不需要以百分比形式指定右侧宽度:

我只是修改了 Blender 的示例,因为他的示例不正确,因为 #wrap 元素的宽度不是 500 像素,而是 600 像素。

#wrap {
    overflow: hidden;
    height: 100px;

    padding: 5px 0;

    width: 500px;
    margin: 0 auto;
}

.left {
    width: 100px;
    height: 100px;

    float: left;
    background-color: rgb(220, 200, 200);
}

.right {
    height: 100px;
    background-color: rgb(200, 200, 220);
}

这是一个演示

更新:

如果右侧比左侧高,那么您需要将右侧的样式更改为:

.right {
    height: 300px;
    background-color: rgb(200, 200, 220);
    width: 100%;
    margin-left: 100px;
}

另外,从#wrap 中删除高度,无论如何你都不需要它......

You don't need to specify the width of the right one in percentages at all:

I just modified Blender's example, since his example was incorrect as the #wrap element was not 500px wide, but 600px instead.

#wrap {
    overflow: hidden;
    height: 100px;

    padding: 5px 0;

    width: 500px;
    margin: 0 auto;
}

.left {
    width: 100px;
    height: 100px;

    float: left;
    background-color: rgb(220, 200, 200);
}

.right {
    height: 100px;
    background-color: rgb(200, 200, 220);
}

Here's a demo

Update:

If right is taller then left, then you need to change right's style to this:

.right {
    height: 300px;
    background-color: rgb(200, 200, 220);
    width: 100%;
    margin-left: 100px;
}

Also, remove the hight from #wrap, you don't need it there anyways...

友欢 2024-11-06 01:54:25

使用 LESScss (lesscss.org)!您可以做的是设置一个变量来包含一个元素的宽度(百分比),然后从总数中减去该变量以自动调整另一个元素的宽度

@width1: 50%;
@width2: 100%-@width1;
.left {
    width: @width1;
}
.right {
    width: @width2;
}

use LESScss (lesscss.org)! what you can do is set a variable to contain the width (percentage) of an element, and then subtract that from the total to auto-adjust the width of the other

@width1: 50%;
@width2: 100%-@width1;
.left {
    width: @width1;
}
.right {
    width: @width2;
}
青巷忧颜 2024-11-06 01:54:25

它有点长,但在概念上可以理解(无论如何对我来说):

#wrap {
    overflow: hidden;
    height: 100px;

    padding: 5px 0;
    padding-left: 100px; /* Width of static */

    width: 500px;
    margin: 0 auto;
}

.left {
    width: 100px;
    height: 100px;

    float: left;
    margin-left: -100px; /* Negative width of self */
}

.right {
    height: 100px;
    width: 100%;

    float: left;
}

这是一个演示(将盒子拉伸一点即可看到)。

It's a tad long, but conceptually understandable (to me anyways):

#wrap {
    overflow: hidden;
    height: 100px;

    padding: 5px 0;
    padding-left: 100px; /* Width of static */

    width: 500px;
    margin: 0 auto;
}

.left {
    width: 100px;
    height: 100px;

    float: left;
    margin-left: -100px; /* Negative width of self */
}

.right {
    height: 100px;
    width: 100%;

    float: left;
}

Here's a demo (stretch the box a little to see).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文