Closed GoogleCodeExporter closed 9 years ago
Original comment by bobbyvandersluis
on 5 Mar 2008 at 9:02
Again, thanks for the test page, great to test/debug this issue!
Interesting case. When I test the page I can see a consistent 'space' with the
height of 4px in diverse browsers:
Firefox, Safari and Opera.
I think that this is an authoring issue. When you add a container element like
a DIV around your to be replaced
content (which will be replaced by the OBJECT element), and set a fixed height
on it the issue disappears. So
obviously the OBJECT element needs to inherit its correct height from its
container element.
When we look at the specs the OBJECT element should be able to be used as both
an inline and a block level
HTML element. However, as I noticed earlier on for static publishing, the
validation tools don't digg it if you
use the OBJECT element directly within the BODY element. I'm pretty sure that
this has something to do with
it, although I'm not exactly sure what the interpretation rules should be.
I'll digg deeper into this. Maybe this means we have to adjust the samples for
dynamic publishing, and add a
DIV element around them by default.
Original comment by bobbyvandersluis
on 5 Mar 2008 at 10:22
Here is what I found out so far:
http://www.w3.org/TR/html401/sgml/dtd.html#block
- The OBJECT element is of a type "flow" which means it is either a "block"
level element or an "inline" level
element
- Quote: "OBJECT is used to embed objects as part of HTML pages PARAM elements
should precede other
content. SGML mixed content model technicality precludes specifying this
formally ...", uhm, ok.
When validating the OBJECT element, nested directly inside the BODY element,
with XHTML1.0 strict, the W3C
validator shows the following error message:
'document type does not allow element "object" here; missing one of "p", "h1",
"h2", "h3", "h4", "h5", "h6",
"div", "address", "fieldset", "ins", "del" start-tag.'
Furthermore is says:
'The mentioned element is not allowed to appear in the context in which you've
placed it; the other mentioned
elements are the only ones that are both allowed there and can contain the
element mentioned. This might
mean that you need a containing element, or possibly that you've forgotten to
close a previous element. One
possible cause for this message is that you have attempted to put a block-level
element (such as "<p>" or
"<table>") inside an inline element (such as "<a>", "<span>", or "<font>").'
Using the WDG validator (http://htmlhelp.com/tools/validator/) we get a similar
error:
"Error: element object not allowed here; possible cause is an inline element
containing a block-level element"
Clicking trough it's documentation, there is the following interesting note:
"The OBJECT element is most useful as a BODY element and can be contained
within either inline or block-
level elements. The content of the OBJECT should be elements that can be
contained within OBJECT's parent
element. For example, an A element containing an OBJECT should not have any
block-level elements as the
content of the OBJECT."
Still I don't have the feeling that we do something syntactically incorrect
here, and I don't feel like updating
the examples until proven otherwise.
Original comment by bobbyvandersluis
on 5 Mar 2008 at 12:48
The is issue here is with strict DTD, which creates the same problem with any
images
displayed within strict pages. The solution is rather simple, in your CSS,
declare:
object {
display: block;
}
and the space magically disappears. Thanks bobby for looking into this...
Original comment by goo...@hockeyclubhouse.com
on 5 Mar 2008 at 5:00
Original issue reported on code.google.com by
goo...@hockeyclubhouse.com
on 4 Mar 2008 at 10:11