Question Overflow
Question Overflow

Reputation: 11255

How to vertical-align an alternate text within a floated image?

Having tried some of the solutions relating to vertical align, I don't seem to be able to solve this. Not sure if anyone can help me on this. All I want is to position the alternate text in the middle of an empty image.

This is the html code:

<div class="viewport">
 <a href="#">
  <img src="http://yahoo.com/" alt="no image" />
 </a>
 <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
 </div>
</div>

And this is the css code:

.viewport {
 background: #bbb;
 width: 350px;
 height: 300px;
 padding: 5px;
}

.viewport img {
 float: left;
 margin: 5px;
 width: 100px;
 height: 100px;
 background: #000;
 text-align: center;
}

.viewport div {
 margin-left: 20px;
}

Thanks for taking your time to read.

Upvotes: 4

Views: 5805

Answers (2)

FelipeAls
FelipeAls

Reputation: 22161

edit 2017: Flexbox FTW (probably with a both as a flex item (its container having default vertical/second axis align-items: stretch) and a flex container (vertical alignment is then achieved with flex-direction:column and justify-content: whatisneeded)

I believe @alt has the height of its content, far less than 100px.

By fixing a line-height equal to height, vetical-align will do what you intend it to do.
Here is a fiddle: http://jsfiddle.net/PhilippeVay/Xevph/

Upvotes: 7

Rizwan Mumtaz
Rizwan Mumtaz

Reputation: 3955

no you cant do that. But you can change the color and display properties like

img[alt]{
color:red;
 display:none;
}


Here is a cool tip, first check if file exist i-e the image you are loading is avaialble or not if not then show up a div with the alt attribute text in that DIV.

Upvotes: 4

Related Questions