Closed
Bug 273719
Opened 21 years ago
Closed 21 years ago
[FIX]CSS generated content cannot be reset with content:normal
Categories
(Core :: CSS Parsing and Computation, defect, P1)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
FIXED
mozilla1.8beta1
People
(Reporter: philip.wills, Assigned: bzbarsky)
References
()
Details
Attachments
(2 files, 1 obsolete file)
|
481 bytes,
text/html
|
Details | |
|
4.78 KB,
patch
|
dbaron
:
review+
dbaron
:
superreview+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Build Identifier: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.8a6) Gecko/20041207
http://terminus.co.uk/tmp/GeneratedTestCase.html contains a pair of divs nested
within an outer div. Both contain the word 'Static'. A style assigned using
the :before selector, such that divs within the outer div have the word
"Generated" inserted into display before them.
The second div within the outer one additionally has a class assigned, which is
styled with content: normal, to indicate that no generated content should be
displayed. I've used some colours as well to highlight the fact that Mozilla is
correctly working out the precedence of the CSS rules.
Opera 7.54 demonstrates the expected behaviour.
Reproducible: Always
Steps to Reproduce:
Actual Results:
Two lines visible:
Generated Static
Generated Static
Expected Results:
Two lines visible:
Generated Static
Static
http://www.w3.org/TR/CSS21/generate.html#propdef-content is the pertinent area
of the CSS2.1 recommendation.
Updated•21 years ago
|
Status: UNCONFIRMED → NEW
Component: Layout → Style System (CSS)
Ever confirmed: true
| Assignee | ||
Comment 1•21 years ago
|
||
Interesting... I thought I'd fixed this in bug 262624. I missed a case. :(
Note that if I simply switch the two divs in the DOM such that the one with
content:normal comes first, the rendering becomes correct. So it's not so much
that content:normal doesn't reset things, but rather that nodes are getting the
wrong style context.
| Assignee | ||
Comment 2•21 years ago
|
||
| Assignee | ||
Comment 3•21 years ago
|
||
I fixed the same bug for counter-reset and counter-increment while I was
here...
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #171014 -
Flags: superreview?(dbaron)
Attachment #171014 -
Flags: review?(dbaron)
| Assignee | ||
Updated•21 years ago
|
OS: Windows NT → All
Priority: -- → P1
Hardware: PC → All
Summary: CSS generated content cannot be reset with content:normal → [FIX]CSS generated content cannot be reset with content:normal
Target Milestone: --- → mozilla1.8beta
Attachment #171014 -
Flags: superreview?(dbaron)
Attachment #171014 -
Flags: superreview+
Attachment #171014 -
Flags: review?(dbaron)
Attachment #171014 -
Flags: review+
Comment on attachment 171014 [details] [diff] [review]
Patch
actually, no this is wrong. This will mean that when you have a more specific
rule that doesn't specify 'content', the less specific rule will stop working.
Attachment #171014 -
Flags: superreview-
Attachment #171014 -
Flags: superreview+
Attachment #171014 -
Flags: review-
Attachment #171014 -
Flags: review+
What should really be happening is explicit handling of Normal and Initial
separate from unspecified.
| Assignee | ||
Comment 6•21 years ago
|
||
> actually, no this is wrong. This will mean that when you have a more specific
> rule that doesn't specify 'content', the less specific rule will stop working.
David, this code is called after all rules have done MapRuleInfoInto(), so the
only way to end up with null here is to have no rules specifying 'content' that
match the node. Testing with a more specific rule that doesn't specify
'content' shows the less specific rule continuing to work. I guess in the
latter case aStartStruct won't have a value for 'content' either, though, so
doing the separate handling is ok. I can do it if you prefer.
The problem will only occur if there's a cached struct, which requires a
previous node that matched only the less specific rule.
The problem will only occur if there's a cached struct, which requires a
previous node that matched only the less specific rule (in a way that was
cacheable in the rule tree).
| Assignee | ||
Comment 9•21 years ago
|
||
So like this?
Attachment #171014 -
Attachment is obsolete: true
Attachment #171055 -
Flags: superreview?(dbaron)
Attachment #171055 -
Flags: review?(dbaron)
Attachment #171055 -
Flags: superreview?(dbaron)
Attachment #171055 -
Flags: superreview+
Attachment #171055 -
Flags: review?(dbaron)
Attachment #171055 -
Flags: review+
| Assignee | ||
Comment 10•21 years ago
|
||
Checked in for 1.8b.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•