My index.php and single.php are practically identical, apart from minor differences in the "next post", "previous post".
There are no widgets deployed in the theme sidebar, which is called sidebar1; there are no other sidebars. All the elements of the sidebar are coded into sidebar.php, and there are no conditions to check which page is calling the sidebar, so it should (and is) displaying the same content on both the index page, and on individual posts, just in different locations.
Category pages display the sidebar in the correct location too.
I thought that there might be posts with
<br clear="all"> listed on the home page, which were pushing the sidebar down, but the only post which has this content is not on the home page any more, and it displays the sidebar fine.
None of the individual posts contain content which is too wide - they all display fine as individual posts, and even when the content is too wide, it just displays underneath the sidebar, it doesn't push it downwards.
I use a caching plugin, but I have cleared the cache on the server and in my browser.
When I display the site in IE8, I receive an error:
Webpage error details Message: 'ajaxurl' is undefined Line: 1 Char: 102 Code: 0 URI: http://www.superlogical.net/wp-includes/js/wp-lists.js?ver=20110521
but I receive the same error on individual posts and the sidebar displays fine in IE8.
I haven't made any template changes in the last 2-3 days I can think of, and it was displaying fine yesterday.
There is nothing in Google Chrome CSS element inspector indicating any CSS issues that I can see.
Any ideas about what is happening here?