A FAQ on various IRC channels I help out on is How vị I vertically center my stuff inside this area? This question is often followed by I"m using vertical-align:middle but it"s not working!
The problem here is three-fold:
HTML layout traditionally was not designed lớn specify vertical behavior. By its very nature, it scales width-wise, và the nội dung flows lớn an appropriate height based on the available width. Traditionally, horizontal sizing and layout is easy; vertical sizing and layout was derived from that.The reason vertical-align:middle isn"t doing what is desired want is because the author doesn"t understvà what it"s supposed to bởi, but …… this is because the CSS specification really screwed this one up (in my opinion)—vertical-align is used to specify two completely different behaviors depending on where it is used.Bạn đang xem: Vertical-align là gì
quý khách đã xem: Vertical-align là gìvertical-align in table cells
When used in table cells, vertical-align does what most people expect it to lớn, which is mimic the (old, deprecated) valign attribute. In a modern, standards-compliant browser, the following three code snippets vì chưng the same thing:
vertical-align on inline elements
When vertical-align is applied lớn inline elements, however, it"s a whole new ballgame. In this situation, it behaves lượt thích the (old, deprecated) align attribute did on
and

—as examples.
In this paragraph, I have sầu two images—

and

—as examples.
In this paragraph, I have a dễ thương little display:inline-blockvertical-align:middle & display:inline-blockvertical-align:text-bottom as an example.
Xem thêm: Doanh Nhân Thuỷ Tiên - Nữ Đại Gia Việt Kiều Thủy Tiên
vertical-align on other elements
Technically, this CSS attribute doesn"t go on any other kinds of elements. When the novice developer applies vertical-align lớn normal bloông chồng elements (lượt thích a standard ) most browsers phối the value khổng lồ inherit to lớn all inline children of that element.
So how do I vertically-center something?!
Method 1
The following example makes two (non-trivial) assumptions. If you can meet these assumptions, then this method is for you:
You can put the nội dung that you want khổng lồ center inside a bloông xã & specify a fixed height for that inner nội dung bloông chồng.It"s alright lớn absolutely-position this nội dung. (Usually fine, since the parent element inside which the nội dung is centered can still be in flow.If you can accept the above sầu necessities, the solution is:
Specify the parent container as position:relative or position:absolute.Specify a fixed height on the child container.Set position:absolute and top:1/2 on the child container lớn move sầu the top down to lớn the middle of the parent.Set margin-top:-yy where yy is half the height of the child container khổng lồ offphối the tác phẩm up.An example of this in code:
...Hey look! I"m vertically centered!
How sweet is this?!
In your browser, the above example renders as:
Hey look! I"m vertically centered!
How sweet is this?!
Method 2
This method requires that you be able to satisfy the following conditions:
If you can accept the above sầu necessities, the solution is:
Set the line-height of the parent element lớn the fixed height you want.An example of this in code: