浮动的图像堆叠

时间:2012-12-13 20:58:19

标签: html css

我正在尝试在电影中创建一个演员列表,在演员姓名及其附带角色的左侧有一个小的个人形象,但是我的图像奇怪地堆叠在一起,我不确定为什么。演员姓名,他们的角色和图像都是从外部API动态提取的。

下面是当前布局的图片: Current layout

随附的HTML和CSS如下: 的 HTML

<?php
    foreach($tmdb_cast['cast'] as $castMember){
        if ($tmp++ < 10)
            echo '<img src="http://cf2.imgobject.com/t/p/w45' . $castMember['profile_path'] . '" class="actor_image" alt="' . $castMember['name'] . '" title="' . $castMember['name'] . '" />';
            echo '<p>' . $castMember['character'] . ' - ' . $castMember['name'] . '</p>';
    }
    echo '<p id="morecast"><a href="http://www.imdb.com/title/' . $imdb_id . '/fullcredits" alt="View full cast list on IMDb">[...view all cast]</a></p>'
?>

CSS

#cast {
    margin-left: 50%;
    border: solid 1px red;
}

.actor_image {
    float: left;
}

#morecast {
    text-align: right;
}

我想要实现的布局类似于IMDb上显示的布局,其中actor的名称和字符与图像垂直对齐: Wanted layout

3 个答案:

答案 0 :(得分:2)

看起来您正在浮动图像,但不会在图像+文本单元之间应用“清晰”。尝试应用“清除:两者”;每个演员实例之间?

答案 1 :(得分:0)

将图像和p元素包装在div中并且清除:两者都在div上。将内联样式设置为类。我把它内联作为一个快速而肮脏的例子。

foreach($tmdb_cast['cast'] as $castMember){
    if ($tmp++ < 10)
        echo '<div style="clear: both;">'
        echo '<img src="http://cf2.imgobject.com/t/p/w45' . $castMember['profile_path'] . '" class="actor_image" alt="' . $castMember['name'] . '" title="' . $castMember['name'] . '" />';
        echo '<p>' . $castMember['character'] . ' - ' . $castMember['name'] . '</p>';
        echo '</div>'
}

答案 2 :(得分:0)

创建一个包装每个图像和文本组的css类很方便:

echo '<div class="actor">
         <img src="http://cf2.imgobject.com/t/p/w45' . $castMember['profile_path'] . '"      class="actor_image" alt="' . $castMember['name'] . '" title="' . $castMember['name'] . '"   />';
echo     '<p>' . $castMember['character'] . ' - ' . $castMember['name'] . '</p>
      </div>';

并浮动每个容器

.actor{
    float:left;
    clear: left;
}

现在,您可以在图像+文本组周围放置一个可以浮动的框。如果这不能解决问题,则下一步是定义.actor“width”属性