- From: Bert Bos <bert@w3.org>
- Date: Thu, 10 Sep 2009 21:48:28 +0200
- To: www-style@w3.org
(The CSS WG wanted me to prepare next week's discussion on 'run-in'. After I submitted the questions below for the agenda, somebody thought the message was a useful summary on its own. So here it is.) ---------- Forwarded Message ---------- Boris Zbarsky raised an issue about the exact rendering of 'display: run-in'. That issue has several aspects: 1) When does the element run in and when does it fall back to being a block? STATUS: The old text expressed a clear intention, but wasn't precise enough. There is a proposal for concrete text for CSS 2.1 section 9.2.3 that seems to both remove the ambiguities and express what people want to happen: http://lists.w3.org/Archives/Public/www-style/2009Aug/0607.html with the definition replaced by http://lists.w3.org/Archives/Public/www-style/2009Sep/0013.html SUGGESTED ACTION: Accept this text. 2) The definition above doesn't explicitly call out replaced elements, because for the purposes of this definition they behave like any other empty element... except that it is possible to interpret section 3.1 in such a way that replaced elements need *not* be empty. The spec says literally that the content of replaced elements is "outside the scope." The intention is that the content is outside the document tree. That intention could be made explicit. STATUS: There is a proposed addition to section 3.1: http://lists.w3.org/Archives/Public/www-style/2009Sep/0064.html Both Boris and I think it is adequate. SUGGESTED ACTION: Accept this text. 3) What is the containing block of the run-in and its children? Following the definition in 10.1, the containing block is found purely by following parent links in the document tree. Which implies that the paragraph that a header runs into is never the containing block for the run-in or its children, because it isn't an ancestor. But visually it "contains" the run-in, so that may be unexpected for authors. STATUS: There seems to be no preferred solution yet: follow the document tree, the same way property inheritance works; or follow the visual, the same way line box construction works. It seems IE does the latter currently and Gecko could do it easily. No other data is available yet about ease of implementation or users' expectations. SUGGESTED ACTION: We need to decide. 4) I said above that 10.1 defines a behavior, but Boris thinks it is actually ambiguous. It uses the phrase "ancestor box," which I take to mean the "ancestor's box" but Boris thinks it can mean the box that is an ancestor in the "formatting structure." (Chapter 2 says that the structure of the "formatting structure" is not defined and that it need not be a tree, but if you believe that it *is* a tree, you can easily read "parent box" and "ancestor box" as being distinct from "parent's box" and "ancestor's box.") STATUS: It's not yet clear how serious this ambiguity is. There are no proposals for removing it. SUGGESTED ACTION: Decide if we want to review the occurrences of "ancestor box" and similar terms and suggest rewrites. 5) What properties apply to a run-in that is also a ':first-line'? That the first-line pseudo-elements of the heading's ancestors are taken into account for the style of the run-in seems clear, but what about the fist-line pseudo-element of the sibling paragraph? We could even define that some properties apply but others not... (It may be that Webkit indeed inherits different properties differently, but given that there is already different behavior in different implementations of first-line even without run-in, it is hard to say.) STATUS: Three options, A, B and C, are defined (but without concrete text) in: http://lists.w3.org/Archives/Public/www-style/2009Sep/0043.html and Boris suggests that Webkit might be implementing a fourth option, called B': http://lists.w3.org/Archives/Public/www-style/2009Sep/0049.html in which the run-in heading also inherits from the paragraph, but only if the paragraph has a first-line pseudo-element. It is difficult to get any intuition for what *should* happen, because you typically only use one or the other. Tab thought there might be a way to avoid taking a decision, viz., by designing an alternative way to style the run-in. If, e.g., there were a '::run-in' pseudo-element (in CSS3), then ':first-line' need not apply to the run-in part, because designers can decide by themselves if the run-in gets the style of the first-line or not. SUGGESTED ACTION: Discuss... ------------------------------------------------------- Bert -- Bert Bos ( W 3 C ) http://www.w3.org/ http://www.w3.org/people/bos W3C/ERCIM bert@w3.org 2004 Rt des Lucioles / BP 93 +33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Thursday, 10 September 2009 19:49:14 UTC