Results 1 to 7 of 7
Mar 27, 2008, 14:05 #1
pure space directly inside div ignored, but pure space directly inside span honored
i found that there is a rule regarding "pure space" directly inside a block element or directly inside an inline element. For the following example, in compliance strict mode:
<body> <div> hello world </div> <div> <img src="pic.jpg"> <img src="pic.jpg"> </div> </body>
there are tons of spaces after the first <div>, and they are the newline and space characters. But none is honored. None is rendered. (I think they are stored in the DOM tree, but it is just not rendered on the displayed, because they are directly inside a block element). Also between the two <div></div> ... <div></div> there are tons of spaces in the "..." region, but none is rendered. And the same goes for spaces before the first <img> tag and after the second <img> tag. (i tested using a body width of 300px, with two images of width 150px, and the spaces after the second <img> is not causing any vertical enlargement of div area if i set a visible border on the div. to see both images on the same line in this case, the <img> tags will need to be side by side, without any space or newline in between)
So the rule is, any pure space directly inside a block element is ignored when the browser displays it, it would seem.
Now, when the anonymous inline begins, such as in the case of "hello" and then "world", and in the case of the first <img> and the second one, since it begins an anonymous inline element, any pure space in between will be rendered.
That goes for newline, indentation by tab or space characters, etc.
And that's why we can freely indent the <div> with lots of spaces and newline without any side effect.
This seems like the rule, applicable on IE7, Firefox 2, and Safari 3. This being the general rule it seems, does the spec actually say something about this?
Last edited by winterheat; Mar 28, 2008 at 19:03.
Mar 27, 2008, 14:13 #2
- Join Date
- Sep 2005
- Sydney, NSW, Australia
- 25 Post(s)
- 1 Thread(s)
Mar 27, 2008, 14:38 #3
Mar 28, 2008, 07:11 #4
this being "obvious" to some people, i have yet to find any sentence or sentences in any formal doc saying this is a rule in HTML 4.01. Anybody up for it?
Mar 28, 2008, 09:25 #5
- Join Date
- May 2007
- Countryside, Sweden
- 0 Post(s)
- 0 Thread(s)
Mar 28, 2008, 17:57 #6
Mar 29, 2008, 12:05 #7
actually, i found that the rule in post #1 is not entirely true... i will post the follow up in another thread.