display: run-in
---------------
Worked through issues summarized in Bert's email
<http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html>
- RESOLVED: Accept proposal at the bottom of
http://lists.w3.org/Archives/Public/www-style/2009Aug/0607.html
- RESOLVED: Add "The content of replaced elements is not considered in the
CSS rendering model." to the definition of "replaced element"
- Filed http://wiki.csswg.org/spec/css2.1#issue-142
- RESOLVED: Run-ins inherit from their document parent, not their sibling.
It is explicitly undefined in 2.1 what happens with parent/sibling
::first-lines and run-ins.
====== Full minutes below =====
http://www.w3.org/2009/11/03-CSS-minutes.htmlhttp://krijnhoetmer.nl/irc-logs/css/20091103#l-266
<RRSAgent> logging to http://www.w3.org/2009/11/03-CSS-irc
Present:
Tab Atkins
David Baron
Bert Bos
Tantek Ãelik
Arron Eicholz
fantasai Etemad
Sylvain Galineau
Daniel Glazman
Chirs Lilley
Peter Linss
Boris Zbarsky (Mozilla, via telephone+IRC)
display: run-in
---------------
* bz calls
<Zakim> +bzbarsky
<Zakim> +SteveZ
Scribe: TabAtkins
<Bert> http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html
Bert: As a reminder, general idea of runin is a heading followed by a
paragraph, and you want to display the header inline, perhaps
with styles to make it stand out.
Bert: Another application is a dl where the dt runs into the dd that
follows rather than above it.
Bert: First issue: When can this happen? When can the run-in element
become inline in the next element, and when not?
Bert: This depends on the element itself, and what follows.
Bert: There must be a block afterward, for it to run into, and it
can't contain blocks.
Bert: Original definition wasn't precise.
Bert: *points to email*
Bert: The first link goes to page holding conditions for element
following the run-in.
<bz> which page are these links on?
Bert: It must have a following sibling.
Bert: Ignore anything that's not in flow.
<bz> ah, I see, archives
<bz> ok
Bert: Such as floats, display:none elems, etc.
Bert: At top of the message, first point is about run-in itself.
Come back to that later.
Bert: Point 2!
Bert: You need to have an element after the run-in that is either
block or list-item, or else the element displays as block.
Bert: Also, it clarifies that run-in comes before any pseudo-elements
of the following sibling, so element order is retained.
Bert: There was discussion about whether block+list-item was sufficient.
Frex, would run-in+run-in+block causes the two run-ins to run
together, or would the first make the second a block, and then
the second doesn't run in.
Bert: Frex, an <h2> followed by an <h2>. Perhaps the content between
the two headers is temporarily suppressed.
fantasai: What about <h2> followed by <h3>?
Tantek: You can just put several run-ins in a row, right? And they'll
all run in?
Bert: No, not by current language. The first would go block, the
second would run-in.
Bert: The dt case makes a stronger example. You may want multiple
<dt>s applying to the same <dd> to run together.
Bert: But I think the heading case is strong enough that we don't
want to make multiple consecutive run-ins go together.
Bert: Point 1! Conditions on the run-in, and what children it can contain.
Bert: You have to look not only at children, but at all in-flow descendants.
Bert: The definition is in terms of elements that are incompatible with
run-in behavior; elements that inhibit run-in.
Bert: If one of the children inhibits run-in, the run-in must go block.
Bert: Again, ignore out-of-flow children. But if one of the remaining
children is block/list-item/table/run-in, the run-in cannot go inline.
Bert: The remaining children must be inline, so recursively descend
to look for children with block/list-item/etc. If there are no
in-flow children that inhibit, the element can run-in.
Fantasai: You can combine a,b,d and say "all children, including :before
and :after".
Bert: Yeah, that's already done.
Bert: Rewritten definition at bottom of email that has only two clauses.
fantasai: Can we say block-level element or display type, so we're not
tying things to a specific list?
fantasai: The more we can do that, the better we'll be in the future
when we introduce new types.
tantek: That's mostly good, but it might also causes problems if a
future display type specially should interact with run-in.
fantasai: More things should prevent run-in than less.
plinss: It's far more likely that something new would inhibit run-in
than allow it.
Bert: I haven't looked into that specifically, to see if the definition
of "block-level" would work.
fantasai: Yeah, we've just had a lot of problems with inline-blocks,
because a lot of specific lists didn't take it into account.
tantek: That's a good argument. inline-block may act like a block
*or* inline.
fantasai: What we need is the ability to say something is a block on
the outside, or a block on the inside.
tantek: Yeah, but we didn't even know that until we made inline-block.
We didn't realize the abstraction was even necessary.
fantasai: You have the same problem with tables and table-cells.
Table cells act like a block container, but it's not like
a block on the outside.
fantasai: I don't want to introduce a new display-type and say "Let's
go audit CSS2.1 and fix all the places."
fantasai: But I think for the new display types, our abstractions are
good enough to talk about.
plinss: If we have a new list, we're *guaranteed* to update it. An
abstraction *may* need to be updated.
tantek: I'd rather have things fail obviously than subtly.
fantasai: It's never obvious. People look at the list of things that
are allowed, and just assume that it's still correct.
dbaron: We do have the terms "inline-level" and "block-level" elements,
which can work as the excluded/included lists.
Peter: If we had an include list and an exclude list, then people would
notice "oh, it's missing". But if we have an include list and
"everythingg else" is excluded, nobody notices that something's
wrong.
dbaron: I've noticed the list of Bert's seems to be wrong. A run-in
containing a run-in is inhibited.
Bert: That's what is says.
dbaron: Sorry, yeah.
<bz> That was updated
<bz> http://lists.w3.org/Archives/Public/www-style/2009Sep/0013.html
has the right text
tantek: How many implementors have some kind of run-in.
smfr: Webkit has basic run-in behavior, but sort of broken.
dbaron: I think everyone but Moz implements, but they all do it differently.
tantek: And presumably the test-cases that demonstrate lack of interop
is published?
TabAtkins: Yeah, I think Boris published those.
tantek: It would be good to get a pointer for that.
<Bert> -> http://www.w3.org/Style/Group/css2-src/visuren.html#block-boxes
Definition of "block-level elements" (9.2.1)
<Zakim> -SteveZ
<sylvaing> http://lists.w3.org/Archives/Public/www-style/2009Sep/0018.html
dbaron: I think Boris is waiting to publish the test-cases until he's
sure that they're right.
tantek: It's useful to have real examples, not just specified abstractly.
<sylvaing> correction; a testcase from bz:
http://lists.w3.org/Archives/Public/www-style/2009Sep/0017.html
tantek: It may turn out that once we see a real example of the prose text,
it's not what we wanted.
Bert: I don't have a preference for a list or a "block-level" definition.
Bert: There's some subtlety in that it would refer to run-ins and say
"some of the time".
Bert: Verdict on the definition?
fantasai: I think I'd prefer it to say "block-level elements", but I
don't need to block this on this. We can raise a separate
issue for it.
Bert: So that sounds like proposal #1?
<fantasai> http://lists.w3.org/Archives/Public/www-style/2009Aug/0607.html
<fantasai> accept text at bottom
<bz> http://lists.w3.org/Archives/Public/www-style/2009Aug/0594.html
RESOLVED accept text at bottom.
Bert: Next issue. Should still be easy.
Bert: What do to with replaced elements?
<bz> I assume we decided that behavior is ok?
Bert: Maybe a wider issue. In my implementation replaced elements are
always empty.
fantasai: No.
Bert: I know what I think.
fantasai: In the document tree it's not necessarily empty: textarea,
object, etc.
Bert: That's the issue. Do you look in the document tree, or just in
the things considered for rendering?
Bert: In replaced elements, the children are thrown away.
fantasai: And form elements may or may not be replaced, depending.
Bert: Let's look at the proposal. There's proposed text to clarify.
Bert: Section 3.1
Bert: Do we consider replaced elements as empty so we never look at its
children, or do we look at the children of the replaced element?
fantasai: Replaced elements are defined as children being outside of
the scope.
fantasai: Whether or not it has children doesn't matter
Bert: So that seems to mean that we don't have to look at them.
fantasai: Right, but that doesn't mean it doesn't *have* children
<dbaron> bz, doesn't the table-cell have a block wrapping it in that case?
<bz> dbaron, it doesn't
<bz> dbaron: or rather....
<bz> dbaron: the interaction is interesting
Boris: I think the behavior is well-defined for if the run-in is into
a table cell or not.
Boris: It's a little weird because if it has a table child it can't
run in, but I think it's all consistent.
Boris: It's something to be careful with.
<tantek> sylvaing thanks - http://lists.w3.org/Archives/Public/www-style/2009Sep/0017.html
helps but would prefer actual live test cases we can quickly
click and run across browsers/machines.
dbaron: I would think that if it has any table stuff in it, except
inline-table, it should inhibit run-in.
Bert: But if you have a table-cell inside an inline element, it
automatically generates an inline table.
tantek: Did we ever define pseudo-elems for the generated wrappers for tables?
?: No.
Boris: Anonymous blocks have to have something to do with what's
going on here.
dbaron: I don't think there's an inconsistency between boris's two cases,
because it only occurs into inlines and not other things.
<dbaron> bz, I don't think we're inconsistent between those two cases,
since the recursion in Bert's proposal only recurs into inlines
Boris: The issue raised here was addressed in Bert's proposal, and should
both result in the run-in running in.
<Zakim> +SteveZ
<tantek> anonymous table pseudo-elements and anonymous table-row
pseudo-elements - that get auto-generated when an element is
set to display:table-cell outside of any kind of table context
for example
<bz> tantek, http://lists.w3.org/Archives/Public/www-style/2009Jul/0030.html
has another test
<bz> tantek: but yes, testcases that are clickable (or at least reftest-like)
will happen
<bz> tantek, my current estimate is we need ~100ish tests to test all
reasonably
<tantek> bz - thanks much - that will help a lot
<tantek> ouch!
<bz> tantek, dynamic changes make it extra fun. ;)
<bz> tantek, e.g. webkit gets confused if you change textnodes between
the run-in and the block from whitespace to not or vice versa
<tantek> bz - even just a few live static tests to start with, even
if "exploratory" in nature (i.e. not knowing exactly what
*should* occur) would help answer some of the design questions.
<tantek> bz - agreed, things are much more difficult when dynamic.
<tantek> useful to at least get the static cases figured out first
though right?
<bz> yeah, no point testing dynamic much till static is defined
* tantek implemented some degree of CSS2 display:run-in in IE5/Mac about
10 years ago.
* tantek curious how many cases he got right/wrong.
<bz> tantek, http://lists.w3.org/Archives/Public/www-style/2009Jul/0025.html
has an attached testcase
<bz> tantek, with lots of different cases tested
<tantek> http://lists.w3.org/Archives/Public/www-style/2009Jul/att-0025/test.html
is a good start
<bz> tantek, sadly, without much description of what _should_ happen
<tantek> bz - presumably red means wrong?
<bz> tantek, sorry, no. color is just used to tell apart the various blocks
<bz> tantek, I should have used purple or blue.....
<bz> tantek, all the right/wrong is in whether things run in or not.
So whether they're on one line or two lines
<bz> tantek, and which is contained in which border
* bz gathered this was normal, yes. ;)
Bert: Back to replaced elements. Proposal is to clarify definition in
section 3.1, where it says "out of scope"
Bert: Definition of replaced elements in 3.1 says that content is out
of scope. I want to clarify that you don't have to look inside
a replaced element to determine if it inhibits run-in.
fantasai: I disagree with Bert's proposed text
Bert: Proposal is that document tree is empty for CSS.
Bert: you disagree, fantasai?
fantasai: Yeah, in the document tree the element isn't considered empty,
and for selectors and such you don't *want* it to be empty.
fantasai: We'll be referring back to this later, and you can't screw
around with the document tree for future extensions.
Bert: But that's the definition of replaced. The content that was there
no longer appears.
fantasai: But what about inline SVG? There's obviously children there.
Bert: But it looks empty for CSS.
fantasai: You're talking about the rendering tree, which is different
from the document tree.
Bert: There is no rendering tree.
<glazou> "There is no rendering tree" -- Bert 2009-11-03
fantasai: If we can reword it so we don't say the element is empty,
I may be happy with it.
Bert: We may avoid 'empty', but need to say that the contents of a replaced
element is ignored for CSS.
Fantasai: Sure, just don't call it empty.
tantek: so it's opaque
Bert insists that it's empty
<bz> I just have nothing to say on this; the behavior we want is obvious;
the only question is how to define it.
<fantasai> Let's say I have a <p> element with an <a> inside it
<fantasai> I write a selector for <p>s that have <a>s inside them using
Selectors 4
<fantasai> then I say { content: url(image.png); }
<fantasai> That makes it replaced
<fantasai> which makes the selector no longer apply
<fantasai> because it's replaced
<fantasai> and now it's empty!!
<bz> so...
<bz> it's even simpler
<bz> Say I have an HTML <img>
<bz> that I style with :empty
<bz> img:empty { border: 10px solid purple; }
<tantek> fantasai - no selector feedback loops
glazou: But why would this no longer apply?
fantasai: Because we say that it's a replaced element now, and thus it
would be empty. No selector can target the contents anymore.
dbaron: We should fix this issue in the run-in section, not by changing
the definition of a replaced element.
TabAtkins: fantasai is saying that run-ins can ignore children of replaced,
but we shouldn't just say that the children don't exist.
Bert: We don't care about the DOM, we care if CSS says they exist.
fantasai: But they do exist. You can select on them.
Chris: Ignoring them and making them disappear are two different things.
Bert: I just want to clarify that we're using a definition is internally
consistent.
Bert: Per CSS, whatever's inside a replaced element simply isn't there.
<dbaron> object:empty only matches some of the time
fantasai: Let's just say that you can't do anything with it, not say
that it isn't there.
dbaron: You're saying the object:empty should match *all* of the time.
Bert: Yeah, it should say that.
glazou: When doesn't object:empty work?
dbaron: When <object> has fallback, frex.
glazou: Object has children in the DOM.
Bert: If it's replaced it has no children.
glazou: It does.
Bert: Does not.
<bz> is too, is not
Chris: We're going in circles. Chairs?
tantek: How do you assign different styles to an object based on whether
the object loads or not.
tantek: This decision is made before CSS happens.
tantek: How do you decide?
TabAtkins: :incomplete?
fantasai: There was some discussion of this on www-style
tantek: That's an old thing, right?
fantasai: Nah, it's relatively recent. But it's out of scope of this
conversation.
Bert: Let's make it clear that you don't look at the DOM content of
replaced elements.
Bert: We just need to exclude children from being looked at for this.
Bert: So how do we phrase this?
<fantasai> "The children of replaced elements are not considered in
the CSS rendering model."
<fantasai> for 3.1
Bert: But that sounds like a contradiction. Replaced elements don't
have children.
glazou: Nah, everyone agrees that they do.
dbaron: So if a <select> is a replaced element, browsers can't render
<option>s?
fantasai: They're not unrenderable, just CSS won't see them. Whatever
draws forms will.
Bert: In CSS1 form elements were defined as replaced, but we've
gradually been removing that.
tantek: And in CSS3, <select> is appearance:popup-menu.
<tantek> http://w3.org/TR/css3-ui
glazou: Bert, do you have a counterproposal, since you're blocking
this sentence?
Bert: Can we say that the "content", not "children"?
fantasai: Okay.
<Zakim> -SteveZ
<fantasai> "The content of replaced elements is not considered in the
CSS rendering model."
Bert: That's fine.
Chris: So what about <foo-img src=bar><tooltip>baz</tooltip></foo-img>.
Does this mean we can't ever style the tooltip?
ChrisL: I think the real answer is we *can* target and style the tooltip.
Maybe it has display:tool-tip or whatever, but it should be there.
Bert: How do you display that image? Does it replace the contents?
ChrisL: Ys.
* sylvaing expects an :nth-illegitimate-child() proposal by end of day
Bert: Defined by the document format?
ChrisL: Yes.
<annevk> XBL!
Bert: Then it has no children.
ChrisL: But we may want to do so.
<dbaron> So which case of run-in behavior are we trying to affect, anyway?
Bert: Then we'll need to change CSS to do so.
Bert: When we use CSS3 Generated Content, we'll be able to do so.
<dbaron> The definition for whether things run in seems fine for
replaced elements already.
Bert: If the document language says how to display it, we can no longer
say anything about it.
ChrisL: I was trying to get away from <object>, because the children
there are clearly alternates. I wanted an example where the
children are used alongside the content.
glazou: What Chris is saying is that this restricts new language design.
<fantasai> http://www.w3.org/TR/CSS21/intro.html#processing-model
ChrisL: I'm happy to say "formatting structure" rather than "rendering tree".
It's in *that* that replaced elements have no children.
ChrisL: The point is that it's not the source tree, so we don't have
to *pretend* that the document-tree has no children.
Bert: Ok.
<dbaron> Instead, I propose changing:
<dbaron> C has a computed value for 'display' of 'inline' and it has one or
<dbaron> more children that inhibit run-in behavior
<dbaron> to:
<dbaron> C has a computed value for 'display' of 'inline', is non-replaced,
and has one or more children that inhibit run-in behavior
<dbaron> and changing:
<dbaron> If A has any children
<dbaron> to:
<dbaron> If A is non-replaced and has any children
glazou: We were at 3. Accept the proposal with Bert's new text?
RESOLVED Accept Bert's new text for issue 3 in the run-in email
<Bert> http://lists.w3.org/Archives/Public/www-style/2009Sep/0126.html
Bert: Next issue. What is the containing block of the run-in and children?
Bert: Every box needs a containing-block. If the run-in goes inline,
which box is containing it?
Bert: 10.1 supposedly defines the containing block for all elements.
Bert: In my reading, it does, and the definition there only follows the
document tree. It doesn't look at the visual place it appears,
just ancestors in the document tree.
Bert: So the run-in will have it's normal parent as the containing block,
not the sibling that it's flowing into.
Bert: Do we want that, or do we want the sibling to be the containing block?
fantasai: The second one.
fantasai: Frex, width:50% on the run-in's inline-block child should be
taking its width from the sibling it's flowing into.
sylvain: So it would get its color, frex, from its parent, but other
things would come from the eparent.
fantasai: Yeah, we do something similar with abspos. The containing
block may be an ancestor far up, even though it still
inherits from its parent.
Boris: To be clear, I think we want to say this...
Boris: The other question is if you have floating children of the run-in,
then what happens with those? Which block is the containing block
for those floats?
Boris: And with abspos children of the run-in.
fantasai: For floats it should be the same - the containing sibling.
fantasai: For abspos children, I have no opinion. I'm happy to go with
whatever's easiest.
TabAtkins: For consistency, I'd prefer abspos to do the same thing.
Bert: It seems most are in favor of taking the sibling as the containing
element for run-in and all children?
<bz> yay! ;)
RESOLVED The sibling that the run-in runs into is the containing block
for it and all children.
Bert: Next issue. Boris believes 10.1 is ambiguous. It says "ancestor box".
Bert: In my reading it's just the ancestor. But Boris thinks it might
refer to the formatting structure, and so it may refer to the
ancestor in the formatting structure.
Bert: So should we go through the spec and look for "ancestor box",
"parent box", etc and replace it with something umabiguous, so
we're clear if it refers to the content or the visual structure
or containing block.
Bert: I don't personally think it's necessary. I read "ancestor box"
as referring to the document structure.
Bert: But if others think it's ambiguous, we have to go through the
text and replace those occurances. Thoughts?
fantasai, sylvain: I always interpreted that as being formatting structure.
plinss: Especially since it says "box", not "element".
ChrisL: Yeah, it's ambiguous, especially frex for abspos.
dbaron: Why is "ancestor" clearly one tree and not the other?
dbaron: I think it's clear that it's in the formatting tree.
ChrisL: If you have an abspos element, is the ancestor the whole document?
Bert: That's the ICB, not an ancestor.
plinss: The fact that we're having the conversation means it's ambiguous.
Bert: You can say that about any line in the spec.
Bert: It's a bit of work to go through the spec.
ChrisL: I'm okay with saying it's unambiguous if someone explains it clearly.
plinss: If it's supposed to be the box of the ancestor, say "box of
the ancestor".
fantasai: For run-ins, we don't want to look up the element tree here.
We want to look up the formatting tree.
fantasai: Frex, with several runs of nested spans around an abspos, is
the run-in's containing block (sibling) relpos? That's a
formatting ancestor, not a document ancestor.
fantasai: We don't want to make this decision unless we're careful
about run-ins?
Bert: Are you saying that if we keep it how it is we don't need to
make a change? I think you're going opposite from me.
Bert: I think we'll have to rewrite 10.1 anyway, at least an extra clause.
fantasai: I'm saying for children of the run-in, frex when they're
looking for fixpos/relpos ancestors, they're going up the
formatting tree and will find the run-in's containing block.
fantasai: So I guess file this as an issue and deal with it later?
Somebody has to go through and look through the whole spec
and figure out what we're doing all over the place.
Bert: I think deciding that is progress already. At least we know it
has to be done.
RESOLVED: File an issue to go through the spec for this. Either fantasai
or Bert will take care of this. At least clarify/define the
"ancestor box".
<fantasai> http://wiki.csswg.org/spec/css2.1#issue-142
Bert: Now the famous ::first-line issue.
Bert: Consider a run-in displayed inline in the sibling. The sibling
has a ::first-line pseudo. Where does the first line get its
properties from?
Bert: Imagine the run-in is short, so half of the first line comes from
the run-in, and half comes from the content.
Bert: There are 3 or 4 reasonable ways of creating that inheritance tree.
Bert: Tab's proposal was to avoid the whole issue and just create ::run-in.
Then ::first-line doesn't apply to run-in, just the content from
the paragraph.
Bert: But we don't have that pseudo in CSS2, so it's quite a change.
fantasai: I propose just following the document tree.
plinss: I don't know if that makes stylistic sense.
plinss: I don't think a run-in should pick up any style from the first
line of the paragraph that it's running in.
Bert: What about background?
fantasai: Run-in should be included in ::first-line in the box model,
but shouldn't inherit from ::first-line.
[Tab explains the issue ::run-in is trying to solve: being able
to style the element differently when it runs in than when it is
block.]
[Tantek says you typically use run-in when you're pretty sure
the element *will* run in.]
[tantek and fantasai point out that you can't have a
pseudo-class match depending on display type]
Peter: but you could have a pseudo-element
Peter: that selects its contents
RESOLVED: run-ins inherit from their document tree parent
dbaron: what about the common ancestor's ::first-line?
dbaron: I don't think we want to ignore the paragraph's ::first-line
but honor the ancestor's
fantasai: Yeah, we should either ignore all ::first-lines for run-in
inheritance, or honor all of them
<fantasai> bz, can you type in your example pls? :)
<bz> <div style="color: blue">
<bz> <div style="display: run-in">Text</div>
<bz> <div style="color: yellow"></div>
<bz> </div>
bz: If there are no ::first-line styles, then we've just decided the
run-in is color: blue
bz: If there is a ::first-line style on the second <div>, what happens?
bz: If that ::first-line style also sets color: orange (or color: yellow),
what happens?
plinss: I think the run-in should inherit from its parent always. The
remaining content of the sibling on the first-line coms from
the sibling's ::first-line, the run-in doesn't care.
fantasai: If you have ::first-line {color:green;} on the ancestor,
should it affect the run-in?
plinss: yes.
plinss: You're in effect getting two separate first-line boxes.
TabAtkins: Is this actually any more difficult than current ::first-line
behavior?
<bz> of course
dbaron: I don't think we implement the full ::first-line behavior anyway,
so we can't really say.
<bz> first-line + inheritance is just a bad scene, no matter what
fantasai: counterproposal is to ignore ::first-line for run-ins always.
* annevk still likes the idea of dropping run-in :)
TabAtkins: So the sibling's ::first-line never affects the run-in.
The difference is whether the ancestor's ::first-line applies
to the run-in or not.
dbaron: I think it's more consistent to say the run-in always ignores
::first-line.
<Bert> [Fantasai copies bz's mark-up to the flipover and starts drawing...]
<bz> annevk, can we drop ::first-line too? ;)
<annevk> I wouldn't mind :)
fantasai: Does ::first-line have values for properties that aren't explicitly
set on it?
alex: I've just tried this in several browsers.
<alexmog>
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A%3Cstyle%3E%0D%0Adiv%3Afirst-line%20%7Bcolor%3Agreen%7D%0D%0Ap%3Afirst-line%20%7Btext-decoration%3Aunderline%7D%0D%0Ab%20%7B%20display%3Arun-in%20%7D%0D%0A%3C%2Fstyle%3E%0D%0A%3Cdiv%3E%0D%0A%3Cb%3Erun-in%3C%2Fb%3E%0D%0A%3Cp%3E%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20paragraph%20text%20pa
alex: In IE8, the run-in does inherit from parent first-line, but not
sibling first-line
alex: FF and Opera it doesn't make it a run-in.
* annevk ... the way it works with inheritance and how it may have to
depend on the property is just too hairy
alex: In Safari, the ancestor style is ignored, and the run-in gets the
sibling's ::first-line.
dbaron: Just punt it as undefined and move on?
fantasai: 2 things we can leave undefined.
fantasai: 1 is inheritance for run-ins in general. 2 is inheritance
for run-ins just in ::first-line.
RESOLVED Run-ins inherit from their document parent, not their sibling.
It is explicitly undefined what happens with parent/sibling
::first-lines and run-ins.
<bz> mmm yummy undefined
RESOLVED ADDENDUM: Undefined for CSS2.1, maybe for CSS3 (Box Module may
be able to take care of it.)
* bz looks forward to implementing "the simplest thing that doesn't crash"
<fantasai> :)
* bz has no outstanding run-in issues
<fantasai> yay!
<bz> well, other than the fact that I have to write the code... ;)
<tantek> http://wiki.csswg.org/planning/tpac-2009
* bz is going to sign off, since we seem to be done with run-in
<ChrisL> bz, yes we are on break now
* bz hangs up