Sunday, 15 December 2019

html - Vertically align text in element with CSS




Can someone explain how I vertically align the text in elements - so both text appears in the middle of the red box?



http://jsfiddle.net/WeKtX/



Here's my HTML:






and my CSS:



li {list-style-type:none;margin:0;padding:0}
li a {width:100px;float:left;background:red;margin-right:20px;height:40px}


Many thanks for any pointers



Answer



If you want to center the text horizontally then try:



text-align: center;


If you want to center the text vertically then try:



line-height: 40px; //Where 40px is the height of your parent element



Keep in mind, that when using line-height, it will only work on one line of text. If you want to do multiple lines of text then I'm afraid you have to specify a height to the text and then use position: absolute; on the text with position: relative; on the parent element.



For your multi-line example I'd try something like the following jsFiddle:



li {
list-style-type:none;
margin:0;
padding:0;
position: relative;

height: 60px;
width: 200px;
display: block;
background:red;
}

li a {
width:100px;
height:40px;
position: absolute;

top: 50%;
margin-top: -20px;
}

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...