Connecting Tech Pros Worldwide Help | Site Map

Vertical align in block link?

  #1  
Old September 19th, 2008, 05:15 PM
Patrick
Guest
 
Posts: n/a
Hello,

I'm trying to align a text vertically in a link displayed as a block.
But the text is always at top.
Is there a solution?
Your advices are welcome.

Here is a test page:

<html>
<head>
<style>
a {
display: block;
height: 100%;
text-align: center;
vertical-align: middle;
}
a:hover {
background: #fee;
}
</style>
</head>
<body>
<table width="100%" height="100%">
<tr>
<td valign="middle"><a href="#a">a</a></td>
<td valign="middle"><a href="#b">b</a></td>
</tr>
</table>
</body>
</html>
  #2  
Old September 19th, 2008, 09:35 PM
Ben C
Guest
 
Posts: n/a

re: Vertical align in block link?


On 2008-09-19, Patrick <moi@ici.lawrote:
Quote:
Hello,
>
I'm trying to align a text vertically in a link displayed as a block.
But the text is always at top.
Is there a solution?
Just remove height: 100% from the A and it will be vertically centered
in the table cell.
Quote:
Here is a test page:
>
><html>
><head>
><style>
a {
display: block;
height: 100%; text-align: center;
vertical-align: middle;
}
a:hover {
background: #fee;
}
></style>
></head>
><body>
><table width="100%" height="100%">
<tr>
<td valign="middle"><a href="#a">a</a></td>
<td valign="middle"><a href="#b">b</a></td>
</tr>
></table>
></body>
></html>
  #3  
Old September 19th, 2008, 10:55 PM
Patrick
Guest
 
Posts: n/a

re: Vertical align in block link?


Le 19.09.2008 22:34, Ben C a écrit :
Quote:
On 2008-09-19, Patrick <moi@ici.lawrote:
Quote:
>Hello,
>>
>I'm trying to align a text vertically in a link displayed as a block.
>But the text is always at top.
>Is there a solution?
>
Just remove height: 100% from the A and it will be vertically centered
in the table cell.
Yes but I want the whole block to be clickable as a link, from the top
to the bottom of the screen.

Other ideas please?
Quote:
>
Quote:
>Here is a test page:
>>
><html>
><head>
><style>
>a {
> display: block;
> height: 100%; text-align: center;
> vertical-align: middle;
>}
>a:hover {
> background: #fee;
>}
></style>
></head>
><body>
><table width="100%" height="100%">
> <tr>
> <td valign="middle"><a href="#a">a</a></td>
> <td valign="middle"><a href="#b">b</a></td>
> </tr>
></table>
></body>
></html>
  #4  
Old September 20th, 2008, 02:55 AM
Jim Moe
Guest
 
Posts: n/a

re: Vertical align in block link?


On 09/19/08 09:06 am, Patrick wrote:
Quote:
>
I'm trying to align a text vertically in a link displayed as a block.
But the text is always at top.
Is there a solution?
>
There is no general solution for vertically aligning objects.
For special cases where the text is fixed in length two methods are common.
1. Set the line-height to fill the space.
2. Adjust either the top margin or padding.

--
jmm (hyphen) list (at) sohnen-moe (dot) com
(Remove .AXSPAMGN for email)
  #5  
Old September 20th, 2008, 03:15 AM
Jonathan N. Little
Guest
 
Posts: n/a

re: Vertical align in block link?


Jim Moe wrote:
Quote:
On 09/19/08 09:06 am, Patrick wrote:
Quote:
>I'm trying to align a text vertically in a link displayed as a block.
>But the text is always at top.
>Is there a solution?
>>
There is no general solution for vertically aligning objects.
For special cases where the text is fixed in length two methods are common.
1. Set the line-height to fill the space.
2. Adjust either the top margin or padding.
>
It would have to be padding if you set the link to display: block, the
margin would not be the "clickable" part.

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
  #6  
Old September 20th, 2008, 10:25 AM
Patrick
Guest
 
Posts: n/a

re: Vertical align in block link?


Le 20.09.2008 04:06, Jonathan N. Little a écrit :
Quote:
Jim Moe wrote:
Quote:
>On 09/19/08 09:06 am, Patrick wrote:
Quote:
>>I'm trying to align a text vertically in a link displayed as a block.
>>But the text is always at top.
>>Is there a solution?
>>>
> There is no general solution for vertically aligning objects.
> For special cases where the text is fixed in length two methods are
>common.
>1. Set the line-height to fill the space.
>2. Adjust either the top margin or padding.
>>
>
It would have to be padding if you set the link to display: block, the
margin would not be the "clickable" part.
Thanks for the help. I tried to set height: 50%; padding-top: 50%;
It works more or less in Firefox but not Konqueror (block is only half
height, text not vertically centered).

Is there really no solution (even not pure CSS, I don't care) working
for most browsers?

--
Patrick
  #7  
Old September 20th, 2008, 02:35 PM
Ben C
Guest
 
Posts: n/a

re: Vertical align in block link?


On 2008-09-19, Patrick <moi@ici.lawrote:
Quote:
Le 19.09.2008 22:34, Ben C a écrit :
Quote:
>On 2008-09-19, Patrick <moi@ici.lawrote:
Quote:
>>Hello,
>>>
>>I'm trying to align a text vertically in a link displayed as a block.
>>But the text is always at top.
>>Is there a solution?
>>
>Just remove height: 100% from the A and it will be vertically centered
>in the table cell.
>
Yes but I want the whole block to be clickable as a link, from the top
to the bottom of the screen.
>
Other ideas please?
It's not easy.

You could set a big line-height on the A (and no need to set
vertical-align: middle).

But you can't do that because you want "100%", not some known value, and
line-height: 100% doesn't mean 100% of the containing height but 100% of
the font size.

Display: table-cell on the A is another option, but won't work in IE.
You could put a span inside the A and offset it with position: relative
and top: 50%, but it won't be quite centered unless you move it up again
by half its font-size.

You could fake it with Javascript-- centre the A but give the table cell
a click handler.
  #8  
Old September 20th, 2008, 07:55 PM
Jim Moe
Guest
 
Posts: n/a

re: Vertical align in block link?


On 09/20/08 02:20 am, Patrick wrote:
Quote:
Quote:
Quote:
>>>I'm trying to align a text vertically in a link displayed as a block.
>>>But the text is always at top.
>>>Is there a solution?
>>>>
>> There is no general solution for vertically aligning objects.
>> For special cases where the text is fixed in length two methods are
>>common.
>>1. Set the line-height to fill the space.
>>2. Adjust either the top margin or padding.
>>>
>
Thanks for the help. I tried to set height: 50%; padding-top: 50%;
It works more or less in Firefox but not Konqueror (block is only half
height, text not vertically centered).
>
Use "line-height", not "height".

--
jmm (hyphen) list (at) sohnen-moe (dot) com
(Remove .AXSPAMGN for email)
  #9  
Old September 21st, 2008, 06:25 PM
Patrick
Guest
 
Posts: n/a

re: Vertical align in block link?


>>>I'm trying to align a text vertically in a link displayed as a block.
Quote:
Quote:
Quote:
>>>But the text is always at top.
>>>Is there a solution?
>>Just remove height: 100% from the A and it will be vertically centered
>>in the table cell.
>Yes but I want the whole block to be clickable as a link, from the top
>to the bottom of the screen.
>
It's not easy.
>
You could set a big line-height on the A (and no need to set
vertical-align: middle).
>
But you can't do that because you want "100%", not some known value, and
line-height: 100% doesn't mean 100% of the containing height but 100% of
the font size.
>
Display: table-cell on the A is another option, but won't work in IE.
You could put a span inside the A and offset it with position: relative
and top: 50%, but it won't be quite centered unless you move it up again
by half its font-size.
>
You could fake it with Javascript-- centre the A but give the table cell
a click handler.
Thanks for the help :-)
The solution with
<span style="position: relative; top: 50%">
works well in Firefox and IE (but not in my version of Konqueror, maybe
a bug).
I'll go with that one.

--
Patrick
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
vertical-align... maya answers 40 June 27th, 2008 08:19 PM
css: vertical align text to a background image in a link chris_culley@yahoo.com answers 2 November 24th, 2005 04:05 PM
CSS in tables - tricky vertical align problem Felipe Gasper answers 2 July 20th, 2005 10:20 PM
vertical-align:bottom not working Markus Ernst answers 10 July 20th, 2005 10:19 PM