W3C home > Mailing lists > Public > www-style@w3.org > June 2001

Re: replaced inlines [was: vertical-align content-generated image?]

From: Ian Hickson <ian@hixie.ch>
Date: Sat, 2 Jun 2001 18:47:26 -0700 (Pacific Daylight Time)
To: fantasai <fantasai@escape.com>
cc: <www-style@w3.org>
Message-ID: <Pine.WNT.4.31.0106021808450.992-100000@HIXIE.netscape.com>
On Sat, 2 Jun 2001, fantasai wrote:
> Ian Hickson wrote:
>> In the relevant CSS3 module, I would hope to see some way of
>> specifying the content of replaced elements, which would go
>> some way towards fixing this. Do you have any syntax ideas?
>> That would be most helpful...
> Kinda hard to translate a text without the text. What exactly
> do you want to express?


> I) The relationship between infinity and 'display'
>   (This is pretty neat)
>   If I have an inline box, I can put an infinite number of
>   empty inline boxes around it and an infinite number of
>   empty inline boxes just inside it, and still wind up with
>   the same thing.*
>     (* Except it breaks explicit inheritance.)
>   I can do the same thing with 'display: block' and
>   'display: table'.
>   But, I can't do that with 'display: inline-block' or
>   'display: inline-table' (both of which behave like
>   replaced inlines) because they create line boxes within
>   the containing inline-block/inline-table and align
>   themselves to the baseline.
>   Likewise, if I have an inline box, I can put an infinite
>   number of empty inline boxes just before it and an infinite
>   number of empty inline boxes right after it, and still wind
>   up with exactly the same thing.
>   And /this/ not only applies to 'inline', 'block', and
>   'table' but to 'inline-block' and 'inline-table' as well.

It turns out that you can almost always do this if you use the write


> II) Do all empty inlines exist, or just some of them?
> [...]
> So, which obscure clause did I skip this time?

You missed two things. First, there is an error in the CSS2 spec. The
initial value of 'content' should not be the empty string, it should be
nothing at all. This is similar to border-color, whose initial value is
not representable in CSS (yet). This is a known error that will be
corrected in CSS3.

The second thing you missed is that the CSS2 specification is completely
silent on how :before and :after should interact with replaced content.
One could argue that the spec says that the text should go inside the
image (:before and :after are actually ":just-inside" and "just-before-
the-end" if you read the spec carefully).

CSS3 will also hopefully solve this "minor" problem, but there are no
proposals yet apart from what I quoted at the top of this e-mail (and
variants on the theme), none of which really solve the problem per se.

Ian Hickson                                            )\     _. - ._.)   fL
Invited Expert, CSS Working Group                     /. `- '  (  `--'
The views expressed in this message are strictly      `- , ) -  > ) \
personal and not those of Netscape or Mozilla. ________ (.' \) (.' -' ______
Received on Saturday, 2 June 2001 21:43:42 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:26:57 UTC