起初我必须阅读很多教程,但我仍然不知道自己做错了什么......
我想使用内联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来做! 我错过了什么?
答案 0 :(得分:1)
首先,您需要将这些div放在里面,以便它们彼此相邻。然后,您可以使用calc()
使最后一个容器占据宽度的其余部分;
或强>
您可以在父级上使用display: table
并将子级设置为display: table-cell
,如下所示:
此外,我对此进行了重组,因为那里有一些不必要的元素/样式:
<强> 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;
}
答案 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>