|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#26 |
|
Messages: n/a
Hébergeur: |
liketofindoutwhy@gmail.com wrote:
> On Mar 20, 8:12 pm, Gus Richter <gusrich...@netscape.net> wrote: >> liketofindout...@gmail.com wrote: >>> so eric.j had a nice solution on >>> http://www.sitepoint.com/forums/show...81#post3761981 >>> it is simplest... and probably can lead to more understanding of the >>> inline elements (probably need to read some reference like the CSS >>> Definitive guide by Eric Meyer) >> Found it! ;-) >> Check this out for all possibilities: >> <http://www.student.oulu.fi/~laurirai/www/css/middle/> >> By: Lauri Raittila > > > erik.j's solution doesn't work? really? coz it works for me... using > IE 7 and Firefox 2 When I clicked on the link provided, it brought me to the version using overflow: hidden; and this one did not work. The one also discussed by Ben and Neredbojias works. -- Gus |
|
|
|
#27 |
|
Messages: n/a
Hébergeur: |
Neredbojias wrote:
> Uh, text can be vertically-aligned to an image as in the following example. > Dunno what else you mean. > > http://www.neredbojias.com/tsttst/vctst.html It works great except that in the div these two items are not needed: line-height:100%;vertical-align:middle; -- Gus |
|
|
|
#28 |
|
Messages: n/a
Hébergeur: |
On 21 Mar 2008, Gus Richter <gusrichter@netscape.net> wrote:
> Neredbojias wrote: > >> Uh, text can be vertically-aligned to an image as in the following >> example. Dunno what else you mean. >> >> http://www.neredbojias.com/tsttst/vctst.html > > It works great except that in the div these two items are not needed: > line-height:100%;vertical-align:middle; Precisely. I just threw vertical-align:middle; on the image on the OP's original markup without carefully checking all his mistakes, but I probably should have removed those in the example. -- Neredbojias http://www.neredbojias.com/ Great sights and sounds |
|
|
|
#29 |
|
Messages: n/a
Hébergeur: |
Ben C wrote:
> On 2008-03-21, kenneth02394832 <kenneth.kin.lum@gmail.com> wrote: >> The same goes for text: (to vertically center the "Hello") >> >> THIS WON'T WORK: even if you add style="vertical-align:middle" to the >> outer div, it won't work either. > > Vertical-align doesn't apply to blocks and isn't inherited, so no point > in ever applying it to a div unless you've changed the div to display: > inline or table-cell. > >> <div> >> <span style="font-size:100px;">XY</span><span style="vertical- >> align:middle">Hello</span> >> </div> > > The second span is vertically aligned with respect to the "strut" of its > container, which has normal font-size. > > If you add vertical-align: middle to the _first_ span, then the second > one ends up roughly halfway up it. > > The reason this is all so counterintuitive is that both spans are being > aligned to something that you can't see. > > The affect of aligning the big span is to move the top edge of the > invisible imaginary inline parent which the second span is aligned > relative to, relative to the containing div. So the second span (which > is positioned relative to that imaginary inline parent) moves on the > screen. > >> THIS ALSO WON'T WORK: even if you add style="vertical-align:middle" to >> the outer div, it also won't work either. >> >> <div> >> <span style="vertical-align:middle"><span style="font-size: >> 100px;">XY</span>Hello</span> >> </div> > > There too the word Hello is vertically aligned within its inline parent, > which since it doesn't have one, is this so called "strut" of the div. > That has normal line-height, so "Hello" doesn't move much. > >> NOW if the vertical-align is added to the big text portion, now the >> small text is vertically centered... this is wrecking my brain right >> now >> >> <div> >> <span style="font-size:100px;vertical-align:middle">XY</span>Hello >> </div> > > Yes exactly! It is very confusing. > > I will try to explain again. > > Vertical-align (on an inline box) aligns it with respect to its inline > parent. The obvious case in which this makes sense is when you nest one > span inside another. The two spans may have different font sizes. > Normally the inner span's baseline lines up with that of the larger one > (its inline parent), but you can move it up and down with > vertical-align. The obvious time you might want to do this is for super > or subscript. > > If an inline element doesn't have an inline parent (because its parent > is a block), then it's treated as though it had an inline parent anyway, > with the font-size that applies to the block. That imaginary inline > parent is called the "strut". > > In this case, the strut is not particularly tall-- it has font-size: > normal. The first span, the one containing XY, is lined up so that its > middle is at the middle of the strut. > > The second span is lined up with its baseline at the strut's baseline. > So why does the second span move up? Because the alignment of the first > span causes the line box top edge to move down relative to the > strut's baseline. > > Once both the spans have been lined up with respect to the strut, then a > bounding box is drawn around the whole lot. That's the line box. The > line box sits in the div with its top edge at the top of the div. > > The first span is the biggest thing on the line. It's therefore what > determines the height of the line box. If it's vertical-align: baseline, > it pushes the top of the line box up more than it pushes the bottom of > it down. If it's vertical-align: middle, it pushes the top up less and > the bottom down more. > > Here are some diagrams: http://tidraso.co.uk/misc/vertical-align.html Great stuff Ben. Where did you get this "strut" thing from? Sounds like something for my car. -- Gus |
|
|
|
#30 |
|
Messages: n/a
Hébergeur: |
On 2008-03-21, Gus Richter <gusrichter@netscape.net> wrote:
> Ben C wrote: [...] > Great stuff Ben. Where did you get this "strut" thing from? Sounds like > something for my car. It's mentioned in the CSS specification. Apparently it's a TeX term. |
|
|
|
#31 |
|
Messages: n/a
Hébergeur: |
Ben C <spamspam@spam.eggs> writes:
> On 2008-03-21, Gus Richter <gusrichter@netscape.net> wrote: >> Ben C wrote: > [...] >> Great stuff Ben. Where did you get this "strut" thing from? Sounds like >> something for my car. > > It's mentioned in the CSS specification. Apparently it's a TeX term. .... taken (by TeX) from the world of metal type where it was exactly what you would expect -- a metal strut that was used to hold space open in a layout. -- Ben. |
|
|
|
#32 |
|
Messages: n/a
Hébergeur: |
Ben Bacarisse wrote:
> Ben C <spamspam@spam.eggs> writes: > >> On 2008-03-21, Gus Richter <gusrichter@netscape.net> wrote: >>> Ben C wrote: >> [...] >>> Great stuff Ben. Where did you get this "strut" thing from? Sounds like >>> something for my car. >> It's mentioned in the CSS specification. Apparently it's a TeX term. > > ... taken (by TeX) from the world of metal type where it was exactly > what you would expect -- a metal strut that was used to hold space > open in a layout. Careful, you're taking a chance to be called a Dipstick. ;-) -- Gus |
|
![]() |
| Outils de la discussion | |
|
|