2014-05-14 55 views
0

我有这段代码,文字居中。以图片垂直居中文字

HTML

<div class="holder"> 
    <img src="http://placehold.it/100x150/" style="float: left;" /> 
    <a href="#" class="centered"> some text</a> 
</div> 

CSS

.holder { 
    border: 1px solid red; 
    padding: 10px; 
    width: 300px; 
    display: table; 
} 
a { 
    display: table-cell; 
    vertical-align: middle; 
} 
img { 
    width: 100px; 
} 

http://jsfiddle.net/2P8Yj/1/

我怎样才能使对齐到左的文字,图片旁边?

enter image description here

回答

-1

您可以添加position:relativeleft:-80px到文字CSS。

EXAMPLE

+0

为什么downvote?这工作正常 – SaturnsEye

+1

这是一个非常肮脏的方式来处理左:-80px如果你不必。但我没有倒下它;) – Drogon

-1

flaot:left;可能会解决你的问题。

+0

甚至有一个JsFiddle附加。没有“可能”要么它或没有,证明是在小提琴;-) – Potherca

2

宽度添加到您的一个:

a { 
    display: table-cell; 
    vertical-align: middle; 
    width:200px; 
} 

DEMO HERE

+0

完全相同的事情,我想发布作为答案:) –

+0

+1这里唯一的答案是在真正的问题点击 – Abhitalks

0

试试这个的jsfiddle:JsFiddle

这是你的CSS的变化,发现我已经加入到.holder高度和行高到你a

.holder { 
    border: 1px solid red; 
    padding: 10px; 
    width: 300px; 
    height:150px; 
    display: block; 
} 

a { 
    line-height:150px; 
    padding-left:20px; 
} 

img { 
    width: 100px; 
} 
+0

您是否彻底检查了解决方案? http://jsfiddle.net/abhitalks/2P8Yj/21/? – Abhitalks

+0

哎哟,不是真的。我真的认为这是一个简短的文本,然后它会工作,但的确如果你创建一个更长的文本,它不会工作。 – Drogon

0

你可以把imga每一个cell创建一个 “正确” 的表:

HTML:

<div class="holder"> 
    <div class="cell"> 
     <img src="http://placehold.it/100x150/" style="float: left;" /> 
    </div> 
    <div class="cell"> 
     <a href="#" class="centered"> some text</a> 
    </div> 
</div> 

CSS:

.holder { 
    border: 1px solid red; 
    padding: 10px; 
    width: 300px; 
    display: table; 
} 

.cell { 
    display:table-cell; 
    vertical-align: middle; 
    text-align:left;  
} 

.cell:nth-child(1) { 
    width:105px; /*just to show, better to use padding for second cell*/ 
} 

img { 
    width: 100px; 
} 

http://jsfiddle.net/2P8Yj/13/

+0

为什么你想创建一个表,如果你不需要? – Drogon

0

不知道将display: table-cell;更改为display: inline-block;即可在您的位置通货膨胀。

但是你可以完成与此相同的效果:

a { 
    display: inline-block; 
    vertical-align: middle; 
} 
img { 
    width: 100px; 
    display: inline-block; 
    vertical-align: middle; 
} 

Demo

1

试试这个http://jsfiddle.net/2P8Yj/18/

我已经加入了显示:表体的CSS如下

 body{display:table} 
     .holder { border: 1px solid red; padding: 10px; width: 300px;display: table-row;} 
     a { display: table-cell; 
     vertical-align: middle; } 
     img { width: 100px;} 

而不是身体你可以有在它上面有更多的div。

+0

请标记一些答案为正确的答案,因为它将从stackoverflow的未答复队列中移除问题。 – SSS

1

设置你的锚为100%,如果需要添加一些填充:

a { 
    display: table-cell; 
    vertical-align: middle; 
    width: 100%; 
    padding-left: 15px; 
    } 

演示:http://jsfiddle.net/2P8Yj/20/

+0

+1实际上100%宽度更好 – Abhitalks