如何将<div>设置为内联:文本,图像,文本,文本</div>

时间:2015-01-12 00:15:19

标签: html css image inline

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

我想使用内联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>

它看起来像这样: enter image description here

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

2 个答案:

答案 0 :(得分:1)

首先,您需要将这些div放在里面,以便它们彼此相邻。然后,您可以使用calc()使最后一个容器占据宽度的其余部分;

FLOAT EXAMPLE

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

TABLE EXAMPLE

此外,我对此进行了重组,因为那里有一些不必要的元素/样式:

<强> 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

答案 1 :(得分:1)

我简化了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