CSS全宽减边距左div,20px同行右div

标签 css css-float margin

我试图让下面的第一个 div 子级用完可用空间的 100% 减去 20px 然后使用第二个div 子级使用 20px 并与第一个子级 div 在同一行。

<div style="width: 10%;">

<div style="float: left; margin-right: 20px;">Left side, should use up all space except margin!</div>

<div style="float: left; margin-left: -20px; width: 20px;">Should only use 20px no matter what.</div>

</div>

这应该能够通过 CSS 一级(这意味着没有 position 错误)来完成,尽管我知道我遗漏了一些东西。两个 div 元素中也会有 anchors必须 使用 100% 的可用宽度,所以这里有一个技巧来获取 float 以某种方式行事...

最佳答案

解决方案#1

利用overflow: hidden(或overflow: auto)来填充剩余的水平空间。

(注意:为此,您需要先在标记中将元素放在右侧)

FIDDLE

<div>
    <div class="div2">DIV 2</div>
    <div class="div1">DIV 1</div>   
</div>

CSS

.div1 {
    background:yellow;
    overflow: hidden;
}
.div2 {
    background:brown;
    float:right;
    width: 50px;
}

解决方案#2

您可以使用 box-sizing: border-box

FIDDLE

<div>
    <div class="div1">DIV 1</div>
    <div class="div2">DIV 2</div>
</div>

CSS

.div1 {
    background:yellow;
    float:left;
    padding-right: 50px;
    margin-right: -50px;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
}
.div2 {
    background:brown;
    float:left;
    width: 50px;
}

解决方案#3

使用 css 表格:

FIDDLE

<div class="container">
    <div class="div1">DIV 1</div>
    <div class="div2">DIV 2</div>
</div>

.container
{
    display:table;
}
.div1 {
    background:yellow;
    display: table-cell;
    width: 100%;
}
.div2 {
    background:brown;
    width: 50px;
    display: table-cell;
    word-break: break-word;
    min-width: 50px;
}

解决方案#4(需要 CSS3)

使用计算

FIDDLE

在第一个子集上 width: calc(100% - 50px)

在第二个 div 上设置 width: 50px;

.div1 {
    background:yellow;
    width: calc(100% - 50px);
    float: left;

}
.div2 {
    background:brown;
    width: 50px;
    float: left;
}

关于CSS全宽减边距左div,20px同行右div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578746/

相关文章:

ios - 我可以强制 iOS Safari 识别手持媒体查询吗?

background-image - 如何消除下拉菜单中的虚幻边距?

ios - 为什么 View 的边距必须为 -20 才能使其接近屏幕末尾,为什么不为零?

html - ant-tooltip组件的文字颜色和背景颜色如何更改

一个元素上有两个类的 CSS 选择器

CSS:隐藏元素但保持宽度(而不是高度)

html - CSS 菜单溢出?

html - 在另一个 div 内对齐图像和文本中心

html - float 和 margin 崩溃

html - CSS - Margin-top 不适用于一个选择器,但在兼容模式下可以