/irc-logs / w3c / #css / 2009-11-13 / end

Options:

  1. # Session Start: Fri Nov 13 00:00:00 2009
  2. # Session Ident: #css
  3. # [01:10] * Disconnected
  4. # [01:11] * Attempting to rejoin channel #css
  5. # [01:11] * Rejoined channel #css
  6. # [01:11] * Topic is 'CSS Working Group Discussion'
  7. # [01:11] * Set by TabAtkins on Sat Nov 07 05:18:53
  8. # [01:20] * Quits: TabAtkins (chatzilla@70.139.15.246) (Ping timeout)
  9. # [01:29] <dbaron> you can download http://www.w3.org/2009/11/02-CSS-irc.txt and then run scribe.pl on it
  10. # [01:53] * Quits: jdaggett (jdaggett@114.48.64.17) (Ping timeout)
  11. # [02:28] * Joins: jdaggett (jdaggett@202.221.217.78)
  12. # [02:39] * Joins: TabAtkins (chatzilla@70.139.15.246)
  13. # [03:23] * Quits: anne (annevk@83.85.115.44) (Ping timeout)
  14. # [03:31] * Curt`away is now known as Curt`
  15. # [03:44] * Quits: dbaron (dbaron@63.245.220.240) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  16. # [04:06] * Joins: dbaron (dbaron@98.234.51.190)
  17. # [04:31] * Quits: Curt` (curt@76.241.65.125) (Quit: Sleep)
  18. # [06:20] * Quits: TabAtkins (chatzilla@70.139.15.246) (Ping timeout)
  19. # [08:01] * Quits: jdaggett (jdaggett@202.221.217.78) (Quit: jdaggett)
  20. # [08:25] * Quits: dbaron (dbaron@98.234.51.190) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  21. # [10:39] * Quits: shepazu (schepers@128.30.52.169) (Ping timeout)
  22. # [11:27] * Quits: Lachy (Lachlan@85.196.122.246) (Quit: This computer has gone to sleep)
  23. # [11:44] * Joins: Lachy (Lachlan@213.236.208.22)
  24. # [11:44] * Quits: Lachy (Lachlan@213.236.208.22) (Client exited)
  25. # [11:44] * Joins: Lachy (Lachlan@213.236.208.22)
  26. # [12:31] * Joins: shepazu (schepers@128.30.52.169)
  27. # [12:45] * Quits: timeless_mbp (timeless@88.115.8.36) (Quit: timeless_mbp)
  28. # [13:27] * Joins: timeless_mbp (timeless@192.100.124.156)
  29. # [13:38] * Quits: timeless_mbp (timeless@192.100.124.156) (Ping timeout)
  30. # [13:40] * Joins: timeless_mbp (timeless@88.115.13.172)
  31. # [14:02] * Joins: timeless_mbp_ (timeless@192.100.124.156)
  32. # [14:05] * Quits: timeless_mbp (timeless@88.115.13.172) (Ping timeout)
  33. # [14:05] * timeless_mbp_ is now known as timeless_mbp
  34. # [14:27] * Quits: timeless_mbp (timeless@192.100.124.156) (Quit: timeless_mbp)
  35. # [15:01] * Joins: TabAtkins (chatzilla@70.139.15.246)
  36. # [15:57] * Joins: annevk (opera@77.241.230.241)
  37. # [16:16] * Joins: myakura (myakura@114.165.33.197)
  38. # [16:27] * Quits: annevk (opera@77.241.230.241) (Quit: annevk)
  39. # [18:07] * Joins: dbaron (dbaron@98.234.51.190)
  40. # [18:07] * Quits: myakura (myakura@114.165.33.197) (Quit: Leaving...)
  41. # [19:36] <fantasai> TabAtkins: I haven't been working on it because there've been other, higher-priority things like selectors and css3-background
  42. # [19:36] <fantasai> TabAtkins: CSS3 Text has a lot of i18n implications
  43. # [19:36] <TabAtkins> Indeed, and I'm interested in learning about that.
  44. # [19:37] <fantasai> TabAtkins: How about working on CSS2.1 Issue 56 first? :) http://wiki.csswg.org/spec/css2.1#issue-56
  45. # [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.
  46. # [19:37] <fantasai> TabAtkins: We need that resolved for CSS3 Text too
  47. # [19:38] <TabAtkins> Ah, interesting.
  48. # [19:38] <fantasai> Ties in with the recent discussion on text-decoration as well
  49. # [19:39] <fantasai> I can't remember what was wrong with my proposal
  50. # [19:39] <fantasai> but there were cases it didn't handle
  51. # [19:39] <fantasai> don't know if those were captured in the issue or not
  52. # [19:39] <fantasai> I just remember realizing it was insufficient
  53. # [19:39] * Quits: Lachy (Lachlan@213.236.208.22) (Quit: This computer has gone to sleep)
  54. # [19:39] <TabAtkins> Yeah, reading through your's and Arron's proposal it seems like ensuring it caught everything is the issue at hand.
  55. # [19:40] <TabAtkins> Looks like I'd need to make a table of possible interactions and find a minimal description of the boundary.
  56. # [19:40] <fantasai> heh
  57. # [19:42] <TabAtkins> It's not under question that text-decoration doesn't propagate from a non-table parent into a table child, right?
  58. # [19:42] <TabAtkins> It looks like your proposal keeps that.
  59. # [19:42] <TabAtkins> It's just a matter of finding a sane way to describe decoration propagation from table elements to their descendants, right?
  60. # [19:43] <fantasai> There was a WG resolution about what should happen, I forget
  61. # [19:43] <TabAtkins> Minuted?
  62. # [19:43] <fantasai> yes
  63. # [19:43] <TabAtkins> k, i'll find it.
  64. # [19:43] <TabAtkins> I have archives back that far.
  65. # [19:43] <fantasai> easiest thing might be to search the blog
  66. # [19:43] <fantasai> since that's mostly resolutions :)
  67. # [19:43] <TabAtkins> What's the blog address?
  68. # [19:43] <fantasai> w3.org/blog/CSS
  69. # [19:46] <TabAtkins> Okay, I see "Resolved: Text decoration should propagate through table elements."
  70. # [19:46] <TabAtkins> Does that mean <div style="text-decoration:underline;"><table>foo</table></div> underlines foo?
  71. # [19:46] <TabAtkins> Or is that meaning internal table elements?
  72. # [19:47] <fantasai> It probably means what it says
  73. # [19:47] <fantasai> but you can check the minutes
  74. # [19:47] * TabAtkins will actually go read the minutes.
  75. # [19:51] <TabAtkins> Okay, the resolution was just "no objections to what you and Arron drew up".
  76. # [19:51] <TabAtkins> so propagation through internal table elements.
  77. # [19:51] <fantasai> I think it already propagates through table elements
  78. # [19:51] <TabAtkins> nm, full propagation
  79. # [19:51] <fantasai> beacuse they're block-level
  80. # [19:52] <TabAtkins> Yeah, I keep reading the "inline-table" exception and generalizing.
  81. # [19:53] * Joins: Lachy (Lachlan@85.196.122.246)
  82. # [19:54] <TabAtkins> Grar, I would very much like to understand every single part of every CSS spec.
  83. # [19:58] <fantasai> heh
  84. # [19:58] <fantasai> I don't think anyone does
  85. # [19:59] <TabAtkins> fantasai: Do inline-block and inline-table count as inline? Specifically for the purpose of the text-decoration sentence about propagation.
  86. # [20:00] <TabAtkins> Eh, nm. That's not relevant, plus they're specifically excluded.
  87. # [20:00] <TabAtkins> Nm, still relevant.
  88. # [20:01] * fantasai breaks it down for you
  89. # [20:01] <TabAtkins> Does an inline-block trigger the "inline" or "otherwise" clause?
  90. # [20:01] <fantasai> "When specified on an inline element, it affects all the boxes generated by that element"
  91. # [20:01] <fantasai> That means that if the element is inline
  92. # [20:01] <fantasai> it affects all boxes of that element
  93. # [20:01] <fantasai> an inline element can have multiple boxes
  94. # [20:01] <fantasai> due to bidi
  95. # [20:01] <fantasai> or line breaking
  96. # [20:02] <TabAtkins> And is the definition of inline specifically 'display:inline'?
  97. # [20:02] <fantasai> this part is not saying anything about descendants
  98. # [20:02] <fantasai> I think it's general
  99. # [20:02] <TabAtkins> So inline-block and inline-table are included?
  100. # [20:02] <fantasai> yes
  101. # [20:02] <fantasai> so if it's specified on an inline-block
  102. # [20:02] <TabAtkins> Then the note in your proposal is wrong.
  103. # [20:03] <TabAtkins> The direct contents of an inline-block *are* underlined in that case.
  104. # [20:03] <fantasai> which note?
  105. # [20:03] <TabAtkins> "The opposite problem applies to 'inline-table' and 'inline-block':"
  106. # [20:03] <TabAtkins> and the following paragraph
  107. # [20:04] <TabAtkins> http://lists.w3.org/Archives/Public/www-style/2008Jul/0450.html
  108. # [20:04] <TabAtkins> if you need it
  109. # [20:04] <fantasai> hmm
  110. # [20:05] <fantasai> I guess it doesn't apply
  111. # [20:05] <fantasai> I guess the term "inline-level element" would be what's needed to include inline-table and inline-block
  112. # [20:06] <TabAtkins> Yeah.
  113. # [20:06] <TabAtkins> But perhaps it should?
  114. # [20:06] <fantasai> no, we want the "for all other elements" clause to trigger
  115. # [20:06] <TabAtkins> Well not necessarily.
  116. # [20:06] <TabAtkins> Yeah.
  117. # [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.
  118. # [20:08] <fantasai> right
  119. # [20:08] <TabAtkins> Bare text nodes count as children, right?
  120. # [20:08] <fantasai> yes; there's no such thing in CSS
  121. # [20:08] <fantasai> they get wrapped in anonymous boxes
  122. # [20:09] * fantasai thinks we should replace "floating and absolutely-positioned" with "out-of-flow"
  123. # [20:09] <TabAtkins> I think I've convinced myself that there isn't a problem to be solved in the first place.
  124. # [20:09] <TabAtkins> Yes, agreed.
  125. # [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.
  126. # [20:10] <TabAtkins> Unless! Is the issue that the <td> isn't a 'block level descendant'?
  127. # [20:10] <fantasai> right
  128. # [20:10] <fantasai> <td> is not block-level
  129. # [20:11] <TabAtkins> Oh, bleh. I see then.
  130. # [20:11] <TabAtkins> So we're currently addressing inline children, and block-level descendants, but not inline children of non-block level descendants.
  131. # [20:12] <TabAtkins> And calling out 'internal table elements' may work for now, but there may still be combinations we're missing.
  132. # [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.
  133. # [20:13] <fantasai> oh
  134. # [20:13] <fantasai> I think I know the problem
  135. # [20:13] <fantasai> <div style="text-decoration: underline"><p><inline-block><block>TEXT</block></inline-block></p></div>
  136. # [20:14] <fantasai> The spec currently says that TEXT is underlined
  137. # [20:14] <fantasai> but it should not be
  138. # [20:14] <fantasai> <block> is a block-level descendant of <div>
  139. # [20:14] <fantasai> but it's going through an <inline-block>, which should break the propagation
  140. # [20:14] <fantasai> See?
  141. # [20:15] <TabAtkins> Oh, was *that* the problem?
  142. # [20:15] * TabAtkins doesn't seem to read that from the proposal.
  143. # [20:16] <TabAtkins> It might be more sensical to just define propagation as affecting children, and noting that propagation cascades down the tree.
  144. # [20:16] * TabAtkins now reads it from the proposal.
  145. # [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.
  146. # [20:18] <TabAtkins> All other parents cause the child to force propagation.
  147. # [20:19] <TabAtkins> Modulo some technical wording about how inline children respond to that.
  148. # [20:19] <TabAtkins> And they will propagate decorations set directly on the parent, or propagated to the parent.
  149. # [20:21] <fantasai> inline elements, if the text-decoration is propagated to them, will paint the decoration o all their text
  150. # [20:22] <fantasai> they don't propagate to their own inline children
  151. # [20:23] <TabAtkins> It paints, but doesn't propagate?
  152. # [20:23] <fantasai> right
  153. # [20:23] <fantasai> but it propagates through to any block-level descendants
  154. # [20:23] <fantasai> ...
  155. # [20:23] <TabAtkins> But that's contrary to what you just said was a problem.
  156. # [20:24] <fantasai> ...
  157. # [20:24] <TabAtkins> ^_^
  158. # [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
  159. # [20:25] <fantasai> maybe?
  160. # [20:25] <fantasai> all other elements just propagate
  161. # [20:25] <fantasai> oh
  162. # [20:25] <fantasai> except out-of-flows
  163. # [20:25] <TabAtkins> At first blush, that may answer it.
  164. # [20:26] <TabAtkins> was there a special reason inline-blocks and inline-tables were called out?
  165. # [20:26] <fantasai> yeah, text-decoration should not propagate through them
  166. # [20:26] <fantasai> they break propagation
  167. # [20:26] <fantasai> so do out-of-flows
  168. # [20:26] <fantasai> so all elements propagate, except those
  169. # [20:26] <TabAtkins> <div text-decoration:underline><div>test</div></div>
  170. # [20:27] <TabAtkins> That would propagate from its grandparent, but your rule would make it not paint.
  171. # [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
  172. # [20:27] <TabAtkins> Is that okay? Do blocks paint themselves already?
  173. # [20:27] <fantasai> no
  174. # [20:27] <TabAtkins> kk.
  175. # [20:27] <TabAtkins> Didn't think so.
  176. # [20:27] <fantasai> their root anonymous inline paints
  177. # [20:27] <TabAtkins> Yeah.
  178. # [20:28] <TabAtkins> Oh! Okay.
  179. # [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.
  180. # [20:29] <TabAtkins> The text, gaining decoration from the root inline, would not paint since the root inline is its parent.
  181. # [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.
  182. # [20:32] <fantasai> there's no root inline for the grandparent
  183. # [20:32] <fantasai> because it doesn't have any inline children, only block ones
  184. # [20:32] <TabAtkins> Because it doesn't have any inline children.
  185. # [20:33] <TabAtkins> Then... the root inline for the parent would paint? Or not?
  186. # [20:33] <TabAtkins> Obviously we want *something* in there to paint.
  187. # [20:33] <fantasai> let's pretend you had <div> <p> Some <em>text <block>here</block> </em></p></div>
  188. # [20:33] <TabAtkins> k
  189. # [20:33] <fantasai> The div would propagate to the P
  190. # [20:33] <TabAtkins> Yes.
  191. # [20:33] <fantasai> which propagates to its root inline
  192. # [20:33] <fantasai> which paints for Some text
  193. # [20:33] <fantasai> and also propagates to em
  194. # [20:34] <fantasai> em doesn't paint since its parent is an inline
  195. # [20:34] <TabAtkins> The root inline?
  196. # [20:34] <fantasai> but it propagates to block
  197. # [20:34] <fantasai> which propgates to its root inline
  198. # [20:34] <fantasai> which paints for here
  199. # [20:34] <fantasai> right
  200. # [20:34] <fantasai> the root inline isn't well-defiend in CSS2.1
  201. # [20:34] <fantasai> it would have solved a lot of problems
  202. # [20:34] <TabAtkins> Yeah, it's a very unknown concept.
  203. # [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
  204. # [20:35] <TabAtkins> I see it every once in a while, but not as a reified concept.
  205. # [20:35] <fantasai> so it never made it into the spec
  206. # [20:35] <fantasai> officially
  207. # [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.
  208. # [20:35] <fantasai> hixie slipped it into this section because it made explaining everything much more straightforward
  209. # [20:36] <fantasai> it should have also appeared in other sections
  210. # [20:36] <fantasai> would have got rid of the "struts" idea
  211. # [20:36] <fantasai> which is very unCSS-like
  212. # [20:36] <TabAtkins> I still don't know what struts are supposed to be.
  213. # [20:36] <fantasai> imagine them as an empty inline element with the properties of the root
  214. # [20:36] <fantasai> they appear at the beginning of every line box
  215. # [20:37] * fantasai thinks we should fix this for CSS2.1 Second Edition
  216. # [20:37] <fantasai> :)
  217. # [20:37] <TabAtkins> Ah, k.
  218. # [20:37] <TabAtkins> CSS 2.2!
  219. # [20:37] <fantasai> no, CSS2.1.1 :)
  220. # [20:37] <fantasai> No new features, just stability fixes ;)
  221. # [20:38] <TabAtkins> 2.1b
  222. # [20:39] <fantasai> That's a good joke. The current spec is 2.1 Beta, in the Web 2.0 sense of Beta :)
  223. # [20:39] <TabAtkins> beta = we'll just let you figure out what we need to fix.
  224. # [20:40] <TabAtkins> With the concept of a root inline in hand, this is *way* simpler.
  225. # [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.
  226. # [20:41] <fantasai> yeah!
  227. # [20:41] <fantasai> I think that should work
  228. # [20:42] <fantasai> hopefully :)
  229. # [20:42] <TabAtkins> All element, including inlines, excluding inline-tables and inline-blocks, propagate values from their parents to their children.
  230. # [20:42] <fantasai> and excluding out-of-flows
  231. # [20:42] <TabAtkins> Yes.
  232. # [20:42] <fantasai> but yeah
  233. # [20:43] * Joins: smfr (smfr@17.246.16.152)
  234. # [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?
  235. # [20:44] <TabAtkins> s/every element/every non-inline element/
  236. # [20:48] <fantasai> Read http://www.w3.org/TR/CSS21/visuren.html#inline-boxes
  237. # [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
  238. # [20:49] <TabAtkins> Breaking appropriately when there is a block-level child?
  239. # [20:49] <fantasai> just like a non-anonymous inline, eys
  240. # [20:50] <TabAtkins> All right, that's what I needed to know.
  241. # [20:50] <TabAtkins> That should work, then. Should I write it up as a proposed resolution?
  242. # [20:51] <fantasai> Write up a proposal, yes. Explain what you're solving and give the proposed text
  243. # [20:51] <fantasai> send it to www-style, preferably in reply to my message
  244. # [20:51] <fantasai> add it to the CSS2.1 wiki, and propose it for discussion at the next telecon :)
  245. # [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."
  246. # [20:58] <TabAtkins> s/inline/inline-level/
  247. # [20:58] <TabAtkins> When appropriate.
  248. # [20:58] <fantasai> s/declared/specified
  249. # [20:59] <TabAtkins> s/propagated from an ancestor/propagated from a non-inline-level ancestor/
  250. # [20:59] <TabAtkins> s/ancestor/parent/
  251. # [20:59] <fantasai> And no, you want to leave it as inline, not inline-level
  252. # [20:59] <fantasai> s/in-flow inline/in-flow/
  253. # [21:00] <TabAtkins> We don't propagate to inline-table and inline-block, though.
  254. # [21:00] <fantasai> right
  255. # [21:00] <fantasai> inline-table and inline-blocks don't paint ext decoration
  256. # [21:00] <TabAtkins> Right, but they also don't *receive* decoration from their parents.
  257. # [21:01] <TabAtkins> And, d'oh. s/Block-level elements/Non-inline-level elements/
  258. # [21:01] <TabAtkins> Gotta keep catching myself from excluding table elements.
  259. # [21:01] * Quits: dbaron (dbaron@98.234.51.190) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  260. # [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."
  261. # [21:04] <TabAtkins> Inline elements *never* have non-inline-level children, correct? They always split around them?
  262. # [21:04] * Quits: smfr (smfr@17.246.16.152) (Quit: smfr)
  263. # [21:05] <fantasai> s/propagate all/and further propagate these/
  264. # [21:05] <fantasai> The boxes split, but they're the blocks are still children of the inline element
  265. # [21:05] <fantasai> they inherit from the inline and everything
  266. # [21:06] <fantasai> s/non-inline-level/All other/
  267. # [21:06] <TabAtkins> Okay, then that's why you made the correction. Gotcha.
  268. # [21:06] <TabAtkins> I like these corrections. Much clearer.
  269. # [21:07] <fantasai> s/all//
  270. # [21:07] <fantasai> (for the second all
  271. # [21:07] <fantasai> )
  272. # [21:08] <fantasai> the end is awkward..
  273. # [21:08] <fantasai> I want to just cut it off and say "to all their in-flow children"
  274. # [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.
  275. # [21:08] <TabAtkins> Yeah, but we don't have a concept of root inline.
  276. # [21:09] <fantasai> I know
  277. # [21:09] <fantasai> *thinks*
  278. # [21:09] <TabAtkins> It would make the <em> paint in your example.
  279. # [21:09] <fantasai> end the sentence there, and then say
  280. # [21:09] <fantasai> "Non-inline elements with inline children are considered to have an anonymous inline box that wraps their inline content."
  281. # [21:11] <fantasai> So what do we have now?
  282. # [21:14] <TabAtkins> Ok.

The end :)