Re: [css3-lists] Alignment of list markers

On Wed, Jun 8, 2011 at 8:36 AM, Brad Kemper <brad.kemper@gmail.com> wrote:
> On Jun 8, 2011, at 12:28 AM, Tab Atkins Jr. wrote:
>> On Tue, Jun 7, 2011 at 11:55 PM, Brad Kemper <brad.kemper@gmail.com> wrote:
>>> Of course, I am assuming 'position: static' unless changed by author in a ::marker rule. I don't know what to think if the marker was created via 'position:marker'. Is it still considered positioned after that, and is it then treated as 'display: block' so that vertical alignment can no longer be set? BTW, does it lose it's marker positioning if I set the 'position' to something else inside the ::marker rule, or is 'position' ignored there? I think that part is unnecessarily confusing. It makes things less clear in situations such as this.
>>
>> I'd like to not do anything magical at all, and just let this work
>> naturally by either positioning the marker itself (if 'inside') or
>> positioning the placeholder (if 'outside').
>
> Which part is magical? I'm trying to understand your concept. The default value for 'display' is 'inline' and the default value of 'position' is 'static'.
>
> You are saying that marker placement is the result of a new value of 'position' that causes it to ignore all other ways of selecting it (in the case of an explicit 'position:marker'), and only be styled by the new pseudo-class only, meanwhile causing it to change from 'display: inline' into 'display: inline-block'. That sounds pretty magical to me already, and we have to still nail down how the magic works. And what happens if I have '::marker { display:block; position:static; }'? I still haven't seen an answer to that one. Does it jump back into an inside position? Does it keep the 'display' value from ::marker, or does it now ignore ::marker and revert to only looking at normal (non-pseudo) selection rules?

Hmm, it looks like there was some major miscommunication here.  Also,
the spec is in a somewhat inconsistent state at the moment, so you
can't look to it for guidance until I correct it (which I'll do
today).

There are two values for list-style-position: 'inside' and 'outside'.
Their primary effect is changing where the ::marker is placed in the
element-tree.  'outside' also tweaks the default value of a few
properties on ::marker, including making it "position:marker".
"position:marker" is just a new positioning scheme based on how
markers are typically positioned.

You can also use "position:marker" on arbitrary elements, which does
the expected thing of just making the element positioned.

My point about avoiding magical behavior is that, given the concept of
"position:marker" (which I like), ::marker should act almost exactly
like an extra ::before that list-items happen to possess (modulo the
few places where 'outside' tweaks default property values).  This
seems elegant and minimally invasive, which hopefully means that it
should be easy to understand too.

~TJ

Received on Thursday, 9 June 2011 16:43:41 UTC