Re: [css3-background] clarify which properties in this module apply to ::first-letter and ::first-line

On 03/28/2012 01:28 AM, Brian Manthos wrote:
> I guess we'll just have to agree to disagree here.
> [...]  What an "interesting" maneuver.

Brian, I think you should tone down the vehemence here. It doesn't help your point,
it makes it harder to read and understand your actual arguments, and more likely
that I'll skim your emails instead of fully paying attention to them.

Anyway. On the topic of this thread, with the exception of 'box-shadow', we have the
fact that it's not specified which properties ::first-letter and ::first-line apply to.

To define this, we should look to 2.1. CSS2.1 includes both border and background
properties on ::first-letter, so it makes sense to apply everything in this module
to ::first-letter.

CSS2.1 includes background but excludes border on ::first-line, though, so for that
we need to do some more analysis.

Now, there are two approaches to categorizing the properties in css3-background
into "applies" and "doesn't apply" buckets for ::first-line

   A) Things considered "background" properties apply, those considered "border"
      properties don't apply. So determine which bucket each property falls into.
      This is somewhat ambiguous for things like border-radius and box-shadow.

   B) Go back to the principles of *why* border was excluded from ::first-line
      and why background was not, and derive the categorizations from that.

You're trying to do A. Brad is trying to do B. This is why you're disagreeing here.

The reason borders are excluded from the ::first-line list is, exactly as Brad noted,
because they affect layout. Likewise margins and padding are excluded. Anything that
affects box layout is excluded, because we don't have a box model for styling line
boxes. Note, however, that backgrounds require knowing where the edges of the
::first-line box are. So that's not a reason to exclude a property.

The editors, I believe, originally tried to do A as well, which is why box-shadow
is excluded: like borders, it delineates the border edges of the box. However, I
think it's *better* for us to do B. It's less arbitrary, and the reasoning there
will scale better to other properties in the future. I'm nonetheless fine with
keeping that restriction in Level 3, since it was clearly excluded in the spec.

Anyway, this thread leaves us with three proposals:

   1) Interpret all 'border-*' properties as "border properties" per 2.1, and
      exclude them all.
   2) Interpret all properties reset by the 'border' shorthand as "border
      properties" per 2.1, and exclude them all. Include 'border-radius'.
   3) Exclude only layout-affecting properties, i.e. only the CSS2.1 "border
      properties". Include 'border-radius' and 'border-image'.

~fantasai

Received on Wednesday, 28 March 2012 19:09:53 UTC