将文本与图像垂直对齐

时间:2012-12-08 18:44:31

标签: html css image vertical-alignment

我试图在图像中间对齐一些文本,我尝试了几种不同的垂直对齐方式,但我似乎无法让它工作。

目前,布局看起来如此: Current layout

,用于此的HTML / CSS是:

<p id="searchresults">Search Results</p>

        <ul id="posted_results">
            <?php
                foreach($search_result['movies'] as $sr){
                    echo '<li class="search_item"><a href="/ug10/cs10aer/screening/movie.php?title=' . $sr['title'] . '" alt="' . $sr['title'] . ' (' . $sr['year'] . ')"><img src="' . $sr['posters']['thumbnail'] . '" title="' . $sr['title'] . ' poster" alt="' . $sr['title'] . ' poster" /></a><a href="/ug10/cs10aer/screening/movie.php?title=' . $sr['title'] . '" alt="' . $sr['title'] . ' (' . $sr['year'] . ')">' . $sr['title'] . ' (' . $sr['year'] . ')</a></li>';
                }
            ?>
        </ul>

Current CSS

更新 只是为了进一步指导,我想让每个列表对象的文本显示如下: Wanted layout

更新2 根据要求,这是Firefox看到的HTML代码:

<div id="content">

        <p id="searchresults">Search Results</p>

        <ul id="posted_results">
            <li class="search_item"><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode III - Revenge of the Sith 3D" alt="Star Wars: Episode III - Revenge of the Sith 3D (2005)"><img src="http://content8.flixster.com/movie/10/94/47/10944718_mob.jpg" title="Star Wars: Episode III - Revenge of the Sith 3D poster" alt="Star Wars: Episode III - Revenge of the Sith 3D poster" /></a><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode III - Revenge of the Sith 3D" alt="Star Wars: Episode III - Revenge of the Sith 3D (2005)">Star Wars: Episode III - Revenge of the Sith 3D (2005)</a></li>
            <li class="search_item"><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode II - Attack of the Clones 3D" alt="Star Wars: Episode II - Attack of the Clones 3D (2002)"><img src="http://content7.flixster.com/movie/10/94/47/10944721_mob.jpg" title="Star Wars: Episode II - Attack of the Clones 3D poster" alt="Star Wars: Episode II - Attack of the Clones 3D poster" /></a><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode II - Attack of the Clones 3D" alt="Star Wars: Episode II - Attack of the Clones 3D (2002)">Star Wars: Episode II - Attack of the Clones 3D (2002)</a></li>
            <li class="search_item"><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode IV - A New Hope" alt="Star Wars: Episode IV - A New Hope (1977)"><img src="http://content9.flixster.com/movie/10/94/47/10944715_mob.jpg" title="Star Wars: Episode IV - A New Hope poster" alt="Star Wars: Episode IV - A New Hope poster" /></a><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode IV - A New Hope" alt="Star Wars: Episode IV - A New Hope (1977)">Star Wars: Episode IV - A New Hope (1977)</a></li>
            <li class="search_item"><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode VI - Return of the Jedi" alt="Star Wars: Episode VI - Return of the Jedi (1983)"><img src="http://content7.flixster.com/movie/10/94/47/10944709_mob.jpg" title="Star Wars: Episode VI - Return of the Jedi poster" alt="Star Wars: Episode VI - Return of the Jedi poster" /></a><a href="/ug10/cs10aer/screening/movie.php?title=Star Wars: Episode VI - Return of the Jedi" alt="Star Wars: Episode VI - Return of the Jedi (1983)">Star Wars: Episode VI - Return of the Jedi (1983)</a></li>
        </ul>


    </div>

3 个答案:

答案 0 :(得分:1)

从图像中移除浮动并使用vertical-align:

.search_item img {
    vertical-align: middle;  
    margin-right: 30px;
}

http://jsfiddle.net/tNhyj/

答案 1 :(得分:0)

如果图像总是相同的高度+描述长度总是相似的,你可以使用行高或/和margin-top来破解它,或者使用vertical-align在image eample上使用vertical-align在这里:https://stackoverflow.com/a/13780959/1134615

使用行高的简单小提琴:

http://jsfiddle.net/BrFga/

HTML

    <ul>
        <li>
            <img src=""/>       
            <p>Sample text</p>
    </li>
    </ul>​

CSS

ul {
    height: 120px;
    width: 600px;
    outline: red 1px solid; 
}

img {
    height: 120px;
    width: 120px;
    float: left;
}

p {
    height: 120px;
    line-height: 120px;
}

答案 2 :(得分:0)

您可以在图像中添加vertical-align:middle。

li img {
 vertical-align:middle;
padding-right:10px;    
}

检查这个jsfiddle,看看它是不是你想要的。 http://jsfiddle.net/3ETDj/

对我而言,它适用于Firefox,IE8,Chrome和Opera。