如何设置 <div> s inline: text, img, text, text

How to set <div> s inline: text, img, text, text

起初我必须阅读很多教程,但我仍然不知道我做错了什么...

我想内联使用 4 个 div。在我想放置的那些 div 中:文本、图像、文本、文本。我希望中间文本自动设置为最大宽度。

我写了一个简单的代码,只是为了说明我的问题:

<div>
    <div style="float: right; width: 100px; background-color: red">right</div>
    <div style="margin-right: 100px; background-color: blue">
        <div style="width: 100px; background-color: green">left</div>
        <div style="width: 100px; margin-left: 100px; background-color: pink">
            <img src="../zdjecia_przedmiotow/1_small.jpg" />

        </div>
        <div style="margin-left: 200px; background-color: green">center</div>
    </div>
</div>

它看起来像这样:

我想用 div 来做! 我错过了什么?

首先,您需要将这些 div 浮动到内部,以便它们彼此相邻对齐。然后你可以使用calc()让最后一个容器占用剩下的宽度;

FLOAT EXAMPLE

您可以在父级上使用 display: table 并将子级设置为 display: table-cell,如下所示:

TABLE EXAMPLE

我还稍微调整了一下结构,因为里面有一些不必要的 elements/styles:

HTML

<div class="wrapper">
   <div class="box box1">left</div>
   <div class="box box2">
      <img src="../zdjecia_przedmiotow/1_small.jpg" />
   </div>
   <div class="box box3">center</div>
   <div class="box box4">right</div>
</div>

CSS

.wrapper{
    overflow:hidden;
    width:100%;
}

.box{
    float: left;
} 

.box1{
  width: 100px; 
  background-color: green;
}

.box2{
    width: 100px; 
    background-color: pink;
}

.box3{
    background-color: green;
    width:calc(100% - 300px);
}

.box4{
    width:100px;
    background-color: blue;
}

CLEANER FIDDLE

我稍微简化了 HTML 结构并使用了浮点数。 CSS 左内联:

<div style="background-color:blue;">
    <div style="width: 100px; background-color: green; float:left;">left</div>
    <img src="../zdjecia_przedmiotow/1_small.jpg" style="width: 100px; background-color: pink; float:left;" />
    <div style="background-color: green; width:calc(100% - 300px); float:left;">center</div>
    <div style="width: 100px; background-color: red; float:right;">right</div>
</div>

CSS出局后:

.box{background-color:blue}
.left{width: 100px; background-color: green; float:left;}
.fill{background-color: pink; width:calc(100% - 300px);}
.right{width: 100px; background-color: red; float:right;}

<div class="box">
    <div class="left">left</div>
    <img class="left" src="../zdjecia_przedmiotow/1_small.jpg"/>
    <div class="left fill">center</div>
    <div style="right">right</div>
</div>

Fiddle