Options:
- # Session Start: Fri Nov 13 00:00:00 2009
- # Session Ident: #css
- # [01:10] * Disconnected
- # [01:11] * Attempting to rejoin channel #css
- # [01:11] * Rejoined channel #css
- # [01:11] * Topic is 'CSS Working Group Discussion'
- # [01:11] * Set by TabAtkins on Sat Nov 07 05:18:53
- # [01:20] * Quits: TabAtkins (chatzilla@70.139.15.246) (Ping timeout)
- # [01:29] <dbaron> you can download http://www.w3.org/2009/11/02-CSS-irc.txt and then run scribe.pl on it
- # [01:53] * Quits: jdaggett (jdaggett@114.48.64.17) (Ping timeout)
- # [02:28] * Joins: jdaggett (jdaggett@202.221.217.78)
- # [02:39] * Joins: TabAtkins (chatzilla@70.139.15.246)
- # [03:23] * Quits: anne (annevk@83.85.115.44) (Ping timeout)
- # [03:31] * Curt`away is now known as Curt`
- # [03:44] * Quits: dbaron (dbaron@63.245.220.240) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [04:06] * Joins: dbaron (dbaron@98.234.51.190)
- # [04:31] * Quits: Curt` (curt@76.241.65.125) (Quit: Sleep)
- # [06:20] * Quits: TabAtkins (chatzilla@70.139.15.246) (Ping timeout)
- # [08:01] * Quits: jdaggett (jdaggett@202.221.217.78) (Quit: jdaggett)
- # [08:25] * Quits: dbaron (dbaron@98.234.51.190) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [10:39] * Quits: shepazu (schepers@128.30.52.169) (Ping timeout)
- # [11:27] * Quits: Lachy (Lachlan@85.196.122.246) (Quit: This computer has gone to sleep)
- # [11:44] * Joins: Lachy (Lachlan@213.236.208.22)
- # [11:44] * Quits: Lachy (Lachlan@213.236.208.22) (Client exited)
- # [11:44] * Joins: Lachy (Lachlan@213.236.208.22)
- # [12:31] * Joins: shepazu (schepers@128.30.52.169)
- # [12:45] * Quits: timeless_mbp (timeless@88.115.8.36) (Quit: timeless_mbp)
- # [13:27] * Joins: timeless_mbp (timeless@192.100.124.156)
- # [13:38] * Quits: timeless_mbp (timeless@192.100.124.156) (Ping timeout)
- # [13:40] * Joins: timeless_mbp (timeless@88.115.13.172)
- # [14:02] * Joins: timeless_mbp_ (timeless@192.100.124.156)
- # [14:05] * Quits: timeless_mbp (timeless@88.115.13.172) (Ping timeout)
- # [14:05] * timeless_mbp_ is now known as timeless_mbp
- # [14:27] * Quits: timeless_mbp (timeless@192.100.124.156) (Quit: timeless_mbp)
- # [15:01] * Joins: TabAtkins (chatzilla@70.139.15.246)
- # [15:57] * Joins: annevk (opera@77.241.230.241)
- # [16:16] * Joins: myakura (myakura@114.165.33.197)
- # [16:27] * Quits: annevk (opera@77.241.230.241) (Quit: annevk)
- # [18:07] * Joins: dbaron (dbaron@98.234.51.190)
- # [18:07] * Quits: myakura (myakura@114.165.33.197) (Quit: Leaving...)
- # [19:36] <fantasai> TabAtkins: I haven't been working on it because there've been other, higher-priority things like selectors and css3-background
- # [19:36] <fantasai> TabAtkins: CSS3 Text has a lot of i18n implications
- # [19:36] <TabAtkins> Indeed, and I'm interested in learning about that.
- # [19:37] <fantasai> TabAtkins: How about working on CSS2.1 Issue 56 first? :) http://wiki.csswg.org/spec/css2.1#issue-56
- # [19:37] <TabAtkins> Though having to go through the process of learning, and bugging people about it, may be a sufficient reason to not take it up.
- # [19:37] <fantasai> TabAtkins: We need that resolved for CSS3 Text too
- # [19:38] <TabAtkins> Ah, interesting.
- # [19:38] <fantasai> Ties in with the recent discussion on text-decoration as well
- # [19:39] <fantasai> I can't remember what was wrong with my proposal
- # [19:39] <fantasai> but there were cases it didn't handle
- # [19:39] <fantasai> don't know if those were captured in the issue or not
- # [19:39] <fantasai> I just remember realizing it was insufficient
- # [19:39] * Quits: Lachy (Lachlan@213.236.208.22) (Quit: This computer has gone to sleep)
- # [19:39] <TabAtkins> Yeah, reading through your's and Arron's proposal it seems like ensuring it caught everything is the issue at hand.
- # [19:40] <TabAtkins> Looks like I'd need to make a table of possible interactions and find a minimal description of the boundary.
- # [19:40] <fantasai> heh
- # [19:42] <TabAtkins> It's not under question that text-decoration doesn't propagate from a non-table parent into a table child, right?
- # [19:42] <TabAtkins> It looks like your proposal keeps that.
- # [19:42] <TabAtkins> It's just a matter of finding a sane way to describe decoration propagation from table elements to their descendants, right?
- # [19:43] <fantasai> There was a WG resolution about what should happen, I forget
- # [19:43] <TabAtkins> Minuted?
- # [19:43] <fantasai> yes
- # [19:43] <TabAtkins> k, i'll find it.
- # [19:43] <TabAtkins> I have archives back that far.
- # [19:43] <fantasai> easiest thing might be to search the blog
- # [19:43] <fantasai> since that's mostly resolutions :)
- # [19:43] <TabAtkins> What's the blog address?
- # [19:43] <fantasai> w3.org/blog/CSS
- # [19:46] <TabAtkins> Okay, I see "Resolved: Text decoration should propagate through table elements."
- # [19:46] <TabAtkins> Does that mean <div style="text-decoration:underline;"><table>foo</table></div> underlines foo?
- # [19:46] <TabAtkins> Or is that meaning internal table elements?
- # [19:47] <fantasai> It probably means what it says
- # [19:47] <fantasai> but you can check the minutes
- # [19:47] * TabAtkins will actually go read the minutes.
- # [19:51] <TabAtkins> Okay, the resolution was just "no objections to what you and Arron drew up".
- # [19:51] <TabAtkins> so propagation through internal table elements.
- # [19:51] <fantasai> I think it already propagates through table elements
- # [19:51] <TabAtkins> nm, full propagation
- # [19:51] <fantasai> beacuse they're block-level
- # [19:52] <TabAtkins> Yeah, I keep reading the "inline-table" exception and generalizing.
- # [19:53] * Joins: Lachy (Lachlan@85.196.122.246)
- # [19:54] <TabAtkins> Grar, I would very much like to understand every single part of every CSS spec.
- # [19:58] <fantasai> heh
- # [19:58] <fantasai> I don't think anyone does
- # [19:59] <TabAtkins> fantasai: Do inline-block and inline-table count as inline? Specifically for the purpose of the text-decoration sentence about propagation.
- # [20:00] <TabAtkins> Eh, nm. That's not relevant, plus they're specifically excluded.
- # [20:00] <TabAtkins> Nm, still relevant.
- # [20:01] * fantasai breaks it down for you
- # [20:01] <TabAtkins> Does an inline-block trigger the "inline" or "otherwise" clause?
- # [20:01] <fantasai> "When specified on an inline element, it affects all the boxes generated by that element"
- # [20:01] <fantasai> That means that if the element is inline
- # [20:01] <fantasai> it affects all boxes of that element
- # [20:01] <fantasai> an inline element can have multiple boxes
- # [20:01] <fantasai> due to bidi
- # [20:01] <fantasai> or line breaking
- # [20:02] <TabAtkins> And is the definition of inline specifically 'display:inline'?
- # [20:02] <fantasai> this part is not saying anything about descendants
- # [20:02] <fantasai> I think it's general
- # [20:02] <TabAtkins> So inline-block and inline-table are included?
- # [20:02] <fantasai> yes
- # [20:02] <fantasai> so if it's specified on an inline-block
- # [20:02] <TabAtkins> Then the note in your proposal is wrong.
- # [20:03] <TabAtkins> The direct contents of an inline-block *are* underlined in that case.
- # [20:03] <fantasai> which note?
- # [20:03] <TabAtkins> "The opposite problem applies to 'inline-table' and 'inline-block':"
- # [20:03] <TabAtkins> and the following paragraph
- # [20:04] <TabAtkins> http://lists.w3.org/Archives/Public/www-style/2008Jul/0450.html
- # [20:04] <TabAtkins> if you need it
- # [20:04] <fantasai> hmm
- # [20:05] <fantasai> I guess it doesn't apply
- # [20:05] <fantasai> I guess the term "inline-level element" would be what's needed to include inline-table and inline-block
- # [20:06] <TabAtkins> Yeah.
- # [20:06] <TabAtkins> But perhaps it should?
- # [20:06] <fantasai> no, we want the "for all other elements" clause to trigger
- # [20:06] <TabAtkins> Well not necessarily.
- # [20:06] <TabAtkins> Yeah.
- # [20:07] <TabAtkins> And still, the inline children of the block should get wrapped in an anonymous inline that has the text-decoration propagated to it.
- # [20:08] <fantasai> right
- # [20:08] <TabAtkins> Bare text nodes count as children, right?
- # [20:08] <fantasai> yes; there's no such thing in CSS
- # [20:08] <fantasai> they get wrapped in anonymous boxes
- # [20:09] * fantasai thinks we should replace "floating and absolutely-positioned" with "out-of-flow"
- # [20:09] <TabAtkins> I think I've convinced myself that there isn't a problem to be solved in the first place.
- # [20:09] <TabAtkins> Yes, agreed.
- # [20:09] <TabAtkins> In your proposal's example, the three text-decorations would propagate to the <td>, and would then propagate to an anonymous inline wrapping the text of cell1.
- # [20:10] <TabAtkins> Unless! Is the issue that the <td> isn't a 'block level descendant'?
- # [20:10] <fantasai> right
- # [20:10] <fantasai> <td> is not block-level
- # [20:11] <TabAtkins> Oh, bleh. I see then.
- # [20:11] <TabAtkins> So we're currently addressing inline children, and block-level descendants, but not inline children of non-block level descendants.
- # [20:12] <TabAtkins> And calling out 'internal table elements' may work for now, but there may still be combinations we're missing.
- # [20:12] <TabAtkins> We just need to run down the list, then, of non-block-level, non-inline display types and see which ones we need to address.
- # [20:13] <fantasai> oh
- # [20:13] <fantasai> I think I know the problem
- # [20:13] <fantasai> <div style="text-decoration: underline"><p><inline-block><block>TEXT</block></inline-block></p></div>
- # [20:14] <fantasai> The spec currently says that TEXT is underlined
- # [20:14] <fantasai> but it should not be
- # [20:14] <fantasai> <block> is a block-level descendant of <div>
- # [20:14] <fantasai> but it's going through an <inline-block>, which should break the propagation
- # [20:14] <fantasai> See?
- # [20:15] <TabAtkins> Oh, was *that* the problem?
- # [20:15] * TabAtkins doesn't seem to read that from the proposal.
- # [20:16] <TabAtkins> It might be more sensical to just define propagation as affecting children, and noting that propagation cascades down the tree.
- # [20:16] * TabAtkins now reads it from the proposal.
- # [20:18] <TabAtkins> Essentially, an element has its parent's text-decoration propagated to it if the parent is not an inline-block or inline-table.
- # [20:18] <TabAtkins> All other parents cause the child to force propagation.
- # [20:19] <TabAtkins> Modulo some technical wording about how inline children respond to that.
- # [20:19] <TabAtkins> And they will propagate decorations set directly on the parent, or propagated to the parent.
- # [20:21] <fantasai> inline elements, if the text-decoration is propagated to them, will paint the decoration o all their text
- # [20:22] <fantasai> they don't propagate to their own inline children
- # [20:23] <TabAtkins> It paints, but doesn't propagate?
- # [20:23] <fantasai> right
- # [20:23] <fantasai> but it propagates through to any block-level descendants
- # [20:23] <fantasai> ...
- # [20:23] <TabAtkins> But that's contrary to what you just said was a problem.
- # [20:24] <fantasai> ...
- # [20:24] <TabAtkins> ^_^
- # [20:24] <fantasai> if I'm an inline element, I paint my own text decoration, and I propagate any from my ancestors'. But I don't paint any text decoration from my ancestors unless it's my immediate parent and it's not an inline itself
- # [20:25] <fantasai> maybe?
- # [20:25] <fantasai> all other elements just propagate
- # [20:25] <fantasai> oh
- # [20:25] <fantasai> except out-of-flows
- # [20:25] <TabAtkins> At first blush, that may answer it.
- # [20:26] <TabAtkins> was there a special reason inline-blocks and inline-tables were called out?
- # [20:26] <fantasai> yeah, text-decoration should not propagate through them
- # [20:26] <fantasai> they break propagation
- # [20:26] <fantasai> so do out-of-flows
- # [20:26] <fantasai> so all elements propagate, except those
- # [20:26] <TabAtkins> <div text-decoration:underline><div>test</div></div>
- # [20:27] <TabAtkins> That would propagate from its grandparent, but your rule would make it not paint.
- # [20:27] <fantasai> the only boxes that paint are inline boxes, and they only paint propagated decoration if their immediate ancestor is not an inline
- # [20:27] <TabAtkins> Is that okay? Do blocks paint themselves already?
- # [20:27] <fantasai> no
- # [20:27] <TabAtkins> kk.
- # [20:27] <TabAtkins> Didn't think so.
- # [20:27] <fantasai> their root anonymous inline paints
- # [20:27] <TabAtkins> Yeah.
- # [20:28] <TabAtkins> Oh! Okay.
- # [20:29] <TabAtkins> So in my example, the grandparent div would pass its decoration to its root inline, which would paint. This would further propagate to the parent div, which would pass it to its own root inline, which would also paint.
- # [20:29] <TabAtkins> The text, gaining decoration from the root inline, would not paint since the root inline is its parent.
- # [20:30] <TabAtkins> Or, no. The second root inline wouldn't paint, because the decoration isn't *from* it's parent, it's merely being propagated from its parent.
- # [20:32] <fantasai> there's no root inline for the grandparent
- # [20:32] <fantasai> because it doesn't have any inline children, only block ones
- # [20:32] <TabAtkins> Because it doesn't have any inline children.
- # [20:33] <TabAtkins> Then... the root inline for the parent would paint? Or not?
- # [20:33] <TabAtkins> Obviously we want *something* in there to paint.
- # [20:33] <fantasai> let's pretend you had <div> <p> Some <em>text <block>here</block> </em></p></div>
- # [20:33] <TabAtkins> k
- # [20:33] <fantasai> The div would propagate to the P
- # [20:33] <TabAtkins> Yes.
- # [20:33] <fantasai> which propagates to its root inline
- # [20:33] <fantasai> which paints for Some text
- # [20:33] <fantasai> and also propagates to em
- # [20:34] <fantasai> em doesn't paint since its parent is an inline
- # [20:34] <TabAtkins> The root inline?
- # [20:34] <fantasai> but it propagates to block
- # [20:34] <fantasai> which propgates to its root inline
- # [20:34] <fantasai> which paints for here
- # [20:34] <fantasai> right
- # [20:34] <fantasai> the root inline isn't well-defiend in CSS2.1
- # [20:34] <fantasai> it would have solved a lot of problems
- # [20:34] <TabAtkins> Yeah, it's a very unknown concept.
- # [20:35] <fantasai> but there was resistance in the WG when hixie and dbaron were trying to add it to clarify various bits of inline layout
- # [20:35] <TabAtkins> I see it every once in a while, but not as a reified concept.
- # [20:35] <fantasai> so it never made it into the spec
- # [20:35] <fantasai> officially
- # [20:35] <TabAtkins> Ah, Hixie was talking to me about the inline model issues and the pushback he got when he tried to make it more consistent.
- # [20:35] <fantasai> hixie slipped it into this section because it made explaining everything much more straightforward
- # [20:36] <fantasai> it should have also appeared in other sections
- # [20:36] <fantasai> would have got rid of the "struts" idea
- # [20:36] <fantasai> which is very unCSS-like
- # [20:36] <TabAtkins> I still don't know what struts are supposed to be.
- # [20:36] <fantasai> imagine them as an empty inline element with the properties of the root
- # [20:36] <fantasai> they appear at the beginning of every line box
- # [20:37] * fantasai thinks we should fix this for CSS2.1 Second Edition
- # [20:37] <fantasai> :)
- # [20:37] <TabAtkins> Ah, k.
- # [20:37] <TabAtkins> CSS 2.2!
- # [20:37] <fantasai> no, CSS2.1.1 :)
- # [20:37] <fantasai> No new features, just stability fixes ;)
- # [20:38] <TabAtkins> 2.1b
- # [20:39] <fantasai> That's a good joke. The current spec is 2.1 Beta, in the Web 2.0 sense of Beta :)
- # [20:39] <TabAtkins> beta = we'll just let you figure out what we need to fix.
- # [20:40] <TabAtkins> With the concept of a root inline in hand, this is *way* simpler.
- # [20:41] <TabAtkins> So, only inline elements paint their text-decoration. They paint anything specified on them, and anything propagated from their parent *iff* their parent isn't inline.
- # [20:41] <fantasai> yeah!
- # [20:41] <fantasai> I think that should work
- # [20:42] <fantasai> hopefully :)
- # [20:42] <TabAtkins> All element, including inlines, excluding inline-tables and inline-blocks, propagate values from their parents to their children.
- # [20:42] <fantasai> and excluding out-of-flows
- # [20:42] <TabAtkins> Yes.
- # [20:42] <fantasai> but yeah
- # [20:43] * Joins: smfr (smfr@17.246.16.152)
- # [20:43] <TabAtkins> Okay, so, defining root inline. Does every element have a root inline, wrapping its entire contents? Or does it only wrap inline children? Or does it only appear when the element has pure-text children?
- # [20:44] <TabAtkins> s/every element/every non-inline element/
- # [20:48] <fantasai> Read http://www.w3.org/TR/CSS21/visuren.html#inline-boxes
- # [20:49] <fantasai> the root inline box just means that instead of wrapping individual bits of unwrapped text, you wrap the entire inline contents of a block-like container
- # [20:49] <TabAtkins> Breaking appropriately when there is a block-level child?
- # [20:49] <fantasai> just like a non-anonymous inline, eys
- # [20:50] <TabAtkins> All right, that's what I needed to know.
- # [20:50] <TabAtkins> That should work, then. Should I write it up as a proposed resolution?
- # [20:51] <fantasai> Write up a proposal, yes. Explain what you're solving and give the proposed text
- # [20:51] <fantasai> send it to www-style, preferably in reply to my message
- # [20:51] <fantasai> add it to the CSS2.1 wiki, and propose it for discussion at the next telecon :)
- # [20:58] <TabAtkins> Sanity check: "Inline elements draw any text-decoration declared on them or propagated from an ancestor, and propagate all text-decorations to their in-flow inline children who are not inline-table or inline-block. Block-level elements propagate all text-decorations to their in-flow non-inline children, and to an anonymous inline box that wraps all of their inline content."
- # [20:58] <TabAtkins> s/inline/inline-level/
- # [20:58] <TabAtkins> When appropriate.
- # [20:58] <fantasai> s/declared/specified
- # [20:59] <TabAtkins> s/propagated from an ancestor/propagated from a non-inline-level ancestor/
- # [20:59] <TabAtkins> s/ancestor/parent/
- # [20:59] <fantasai> And no, you want to leave it as inline, not inline-level
- # [20:59] <fantasai> s/in-flow inline/in-flow/
- # [21:00] <TabAtkins> We don't propagate to inline-table and inline-block, though.
- # [21:00] <fantasai> right
- # [21:00] <fantasai> inline-table and inline-blocks don't paint ext decoration
- # [21:00] <TabAtkins> Right, but they also don't *receive* decoration from their parents.
- # [21:01] <TabAtkins> And, d'oh. s/Block-level elements/Non-inline-level elements/
- # [21:01] <TabAtkins> Gotta keep catching myself from excluding table elements.
- # [21:01] * Quits: dbaron (dbaron@98.234.51.190) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [21:03] <TabAtkins> "Inline elements draw any text-decoration specified on them or propagated from a non-inline parent, and propagate all text-decorations to their in-flow children who are not inline-table or inline-block. Non-inline-level elements propagate all text-decorations to their in-flow non-inline children, and to anonymous inline box that wraps all of their inline content."
- # [21:04] <TabAtkins> Inline elements *never* have non-inline-level children, correct? They always split around them?
- # [21:04] * Quits: smfr (smfr@17.246.16.152) (Quit: smfr)
- # [21:05] <fantasai> s/propagate all/and further propagate these/
- # [21:05] <fantasai> The boxes split, but they're the blocks are still children of the inline element
- # [21:05] <fantasai> they inherit from the inline and everything
- # [21:06] <fantasai> s/non-inline-level/All other/
- # [21:06] <TabAtkins> Okay, then that's why you made the correction. Gotcha.
- # [21:06] <TabAtkins> I like these corrections. Much clearer.
- # [21:07] <fantasai> s/all//
- # [21:07] <fantasai> (for the second all
- # [21:07] <fantasai> )
- # [21:08] <fantasai> the end is awkward..
- # [21:08] <fantasai> I want to just cut it off and say "to all their in-flow children"
- # [21:08] <TabAtkins> "Inline elements draw any text-decoration specified on them or propagated from a non-inline parent, and further propagate these text-decorations to their in-flow children who are not inline-table or inline-block. All other elements propagate all text-decorations to their in-flow non-inline children, and to an anonymous inline box that wraps their inline content.
- # [21:08] <TabAtkins> Yeah, but we don't have a concept of root inline.
- # [21:09] <fantasai> I know
- # [21:09] <fantasai> *thinks*
- # [21:09] <TabAtkins> It would make the <em> paint in your example.
- # [21:09] <fantasai> end the sentence there, and then say
- # [21:09] <fantasai> "Non-inline elements with inline children are considered to have an anonymous inline box that wraps their inline content."
- # [21:11] <fantasai> So what do we have now?
- # [21:14] <TabAtkins> Ok.
The end :)