2012-02-29 143 views
5

我正在使用jQuery手机,并试图将一些图像图标集中在列表中。我遇到的问题是图像不是在列表项中垂直居中。如何在LI元素中垂直居中放置图像?

有人能指点我,因为我不是一个CSS专家。我知道我可以让他们用桌子,但我不想这样做。谢谢。

哦,我在下面的m代码中使用EJS。请参阅下面的屏幕截图:

http://imgur.com/uIXuÇ

这里是我的代码:

<li data-icon="false"> 
      <a href="#"> 
       <img src="images/img_trans.gif" class='largePlatform platform_<%= releases[i].platform_abbr %>_large' width='30' height='30' style="position:absolute; top:25%; left:10px"/> 
       <h2 style="position:absolute; top:25%; left:50px"><%= releases[i].platform_abbr %></h2> 

       <div data-role="controlgroup" data-type="horizontal" style="float:right" > 

        <% if (purchaseText != "") { %> 

         <img src="images/game_detail/<%= releases[i].purchase_button_icon %>-purchase.png" width="35" height="35" onclick="window.open('<%= releases[i].purchase_button_url %>');" alt="<%= purchaseText %>" style="position:relative; top:10px;"/> 

        <% } %> 

        <div data-role="button" data-icon="reminder" data-theme="<%= buttonTheme %>" onclick="<%= buttonAction %>(<%= releases[i].id %>)"> 
        <%= buttonText %> 
       </div> 
       </div> 

      </a> 
     </li> 
+0

T他的回答将取决于图像如何针对里面的其他*内容展开。你可以精心策划吗? – Faust 2012-02-29 13:34:47

+0

肯定的事情。所以我的li元素有3个并排的图像在顶部垂直对齐。所以像[img some text img img] – jini 2012-02-29 13:39:22

+0

对不起 - 你能否澄清你的意思是“......垂直对齐在顶部。” – Faust 2012-02-29 13:56:35

回答

9

活生生的例子

http://jsfiddle.net/B6Z9N/

HTML

<li> 
    <img src="http://dummyimage.com/20x20/000/000000.png" /> 
</li>​ 

CSS

li { 
    border: 1px dotted black; /* Just to illustrate height */ 

    height: 100px; 
    line-height: 100px; 
    vertical-align: middle; 
}​ 

发现这篇文章:http://css-tricks.com/snippets/css/absolute-center-vertical-horizontal-an-image/

+0

高度由jQuery Mobile决定。我是否需要在CSS中手动添加它? – jini 2012-02-29 15:42:37

+0

您应该叮嘱道,行高始终与元素的高度相匹配。 – Maroshii 2012-02-29 16:12:54

0

在IMG就申请保证金。

<li> 
    <img class="image-style" src="https://dummyimage.com/20x20/000/111fed" /> 
</li> 

.image-style { 
    margin : 10px -10px; 

} 

li { 
    border : 1px solid black 
} 

JSFiddle

0

我知道我迟到了,但我一直用这个,以为有人可能会发现它有用..

HTML ..

<ul> 
    <li class="logo_bar"><img src="img/1" /></li> 
    <li class="logo_bar"><img src="img/2" /></li> 
    <li class="logo_bar"><img src="img/3" /></li> 
    <li class="logo_bar"><img src="img/4" /></li> 
    <li class="logo_bar"><img src="img/5"/></li> 
</ul> 

CSS ...

.logo_bar { 
    display: inline-block; 
    vertical-align: middle; 
}