Tijdens het spelen met XML verbaasde ik mij over het browser-resultaat van het volgende stukje code.
In zowel Firefox als Opera als Konqueror wordt de tekst van het bar-element geel weergegeven. Is het niet opmerkelijk dat dit stukje CSS ook buiten de XHTML-namespace wordt toegepast? Als de XHTML-namespace-declaratie wordt verwijderd wordt er niets gestijld, dus het lijkt een XHTML-iets te zijn. Internet Explorer geeft natuurlijk gewoon de DOM-tree weer, daar IE lte 7 de XHTML-namespace niet ondersteunt.
Als je een algemene XML-stylesheet (CSS) koppelt aan bovenstaand XML heeft de ingebedde stijldeclaratie zoals verwacht voorrang (tenzij je in de XML-stylesheet specifiekere selectors of !important gebruikt).
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?xml version="1.0" encoding="utf-8"?> <foo> <bar>Hellow</bar> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Yeah</title> <style type="text/css"> bar { color: yellow } </style> </head> <body> <h1>Yeah</h1> </body> </html> </foo> |
In zowel Firefox als Opera als Konqueror wordt de tekst van het bar-element geel weergegeven. Is het niet opmerkelijk dat dit stukje CSS ook buiten de XHTML-namespace wordt toegepast? Als de XHTML-namespace-declaratie wordt verwijderd wordt er niets gestijld, dus het lijkt een XHTML-iets te zijn. Internet Explorer geeft natuurlijk gewoon de DOM-tree weer, daar IE lte 7 de XHTML-namespace niet ondersteunt.
Als je een algemene XML-stylesheet (CSS) koppelt aan bovenstaand XML heeft de ingebedde stijldeclaratie zoals verwacht voorrang (tenzij je in de XML-stylesheet specifiekere selectors of !important gebruikt).