我有一个固定器div,它的收缩包裹在其他几个div上,因此固定器没有固定宽度。持有者内部还有另一个包含文本的div。当文本太多时,它会扩展持有者,因此它不会再收缩。这是我的问题的演示http://jsfiddle.net/WSbAt/。这是一个照片库页面。
我想没有设置支架的宽度可能没有办法,因为每行的图像数量是动态的,所以我无法做到。我可以用jQuery来解决它,但希望有一个css解决方案。
编辑:我正在尝试不指定任何宽度,因为每行缩略图的数量取决于您的窗口大小。
CSS:
#container
{
width:600px; /*only set for demo. will be random on live page*/
border:1px solid black;
text-align:center;
}
#holder
{
display: inline-block;
border:2px solid blue;
}
.thumbnail
{
float:left;
width:100px;
height:100px;
background-color:red;
margin-right:10px;
margin-bottom:10px;
}
.expandedHolder
{
padding:10px;
border:2px solid yellow;
margin-bottom:10px;
margin-right:10px;
}
.fullImage
{
float:left;
width:250px;/*only set for demo. will be random on live page*/
height:200px;
background-color:green;
}
.text
{
float:left;
margin-left:10px;
}
HTML:
<div id="container">
<div id="holder">
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div class="thumbnail"></div>
<div style="clear:both;"></div>
<div class="expandedHolder">
<div class="fullImage"></div>
<div class="text">some text here. some text here. some text here. </div>
<div style="clear:both;"></div>
</div>
<div style="clear:both;"></div>
</div>
</div>
答案 0 :(得分:2)
使用百分比作为.fullImage和.text
的宽度 .fullImage
{
float:left;
width:70%;
height:200px;
background-color:green;
}
.text
{
width: auto;
float:left;
width:20%;
margin-left:10px;
}
然后,如果文本变得很大,请使用text-overflow
text-overflow:ellipsis;
overflow:hidden;
答案 1 :(得分:0)
我正在尝试使用纯CSS做同样的事情。我找到了一种在Chrome中运行的hacky方式(我还没有检查过其他浏览器)。
#container {
display: table-caption; /* Shrink the container */
border:1px solid black;
text-align:center;
}
答案 2 :(得分:-3)
我使用jQuery来计算文本宽度应该是多少。如果有人好奇,这就是你如何解决我的榜样。
var textDiv = $(".text");
textDiv.hide();//hide the text to get holder width without text
var holderWidth = $("#holder").width();
var imageWidth = $(".fullImage").width();
var textWidth = (holderWidth - imageWidth) - 45;
textDiv.css("width", textWidth + "px");
textDiv.show();