Normalising layout between browsers - html

So I've been building a layout and up until now I hadn't tested it on any non-webkit browsers.
But now that i've tested it on ie8 and firefox I've found some issues that I would like to address.
The site:
http://thepelican.me/ablehearing/index2.html
First of all, Internet Explorer 8.
Regardless of any compatibility mode or turning off javascript I am still getting all of these issues.
Elements positioned in the header are completely off.
The text ' For effortless hearing...' and the number should be inline and floated to the right.
The <ul class="head"> just doesn't show at all.
Neither does <ul class="mainmenu">
A few other css styles just do not happen
Firefox
I've built a layout where after scrolling through <div id="maincontentbody"> the header element scrolls out of view and <div id="footerblock"> scrolls into view. But in firefox it just gets stuck when you scroll to 100% of the screen height.
UPDATE
- Another way to solve the firefox issue is via jquery/js, if I could know when the user has scrolled to the end of 100% of the page and then run some kind of function which would switch scrolling from maincontentbody to body but I am pretty confused as how I can do this, I'm having trouble catching the user once they've reached 100%, innerHeight isn't giving me the correct results.
I am absolutely lost as to how to correct these issues and any help would be appreciated.

I'd start off with importing a normalize.css to set all default browser styles to something that is the same across all browsers.

Related

In Safari, hovering over SVG elements causes a scrolled element to reset its scroll position?

I have a website that is exhibiting bizarre behavior that I don’t understand. I’m unable to tell if I’ve run into a bug or what I might be doing wrong.
The page has two elements, nav and main that each have overflow-y: scroll set. This is so they can be scrolled independently of one another. If I scroll the main element, and then hover over the pagination buttons at the bottom, the main element will jump back to the top (lose its scroll position). It also happens if I hover over the Octocat/GitHub symbol in the navigation on the right.
The common thread here is that the pagination buttons and the GitHub symbol on the right both have svg elements. If I get rid of the svg element the bug doesn’t happen. Also if I remove overflow-y: scroll from the main element the bug does not occur.
I’ve also noticed that the issue might be somehow related to having height: 100% set on the <html> tag. When it’s removed the issue no longer occurs, but unfortunately it can’t be removed otherwise the full width/height layout doesn’t work correctly.
Can anyone tell me why this is happening, if it’s a bug in Safari, and/or how to fix it? Thanks!
You can fix this by adding the following to body where your grid rules are defined. Sadly, I have no idea why this solves the issue.
body {
…
grid-auto-rows: 1fr;
}
After spending hours and hours on this, the only way I could figure out how to fix it was to switch from CSS grid to flexbox. 🤷🏼‍♂️
This is the diff that fixed it, if you’re curious.
This is a bug related to safari version 12.1, which is fixed in Safari Technological Preview.
https://bugs.webkit.org/show_bug.cgi?id=197189
However as a workaround in the mean time.
Can you try
overflow-x:hidden, overflow-y: scroll,
height between 50 to 95vh for the specific container depending on your surrounding elements. This is going to have minimal safari jump on hover and probably empty space at the bottom.
Even after Safari bug is fixed, seems that the bug still occurs on some other scenario. I successfully reproduced a similar behavior on Fluent UI dropdown: https://github.com/microsoft/fluentui/issues/23668
The workaround in my case was to change dropdown item height from "auto" to "100%".

Why layout “jumps” when scrollbar is showing on page center using margin auto only on some computers?

Know problem:
Scrollbar is shrinking width of page and elements center using margin:auto are moving.
Tests:
I checked it on few computers and get surprising results. On some of them layout isn't moving.
Regardless of browser(if problem is appearing it affect all browsers if not all browsers are fine).
It doesn't matter if it is ios or windows (the same like with browsers).
Question:
Why only few computers are affected?
PS.
I checked scroll setting they are the same.
jsfiddle:
http://jsfiddle.net/ujDZv/
screenshot:
http://jsfiddle.net/YcmT9/4/

IE8 layout broken - IE7 mode correct

after 3-4 hours of searching with IE's "dev tools", I can't understand why.
This code: https://tinker.io/b2c10 produces the layout correctly in IE7 mode, Chrome, Firefox. In IE8 Standards mode, here's the result when you make the viewport smaller:
And here is how the layout should be / is in all other browsers (IE7 included):
Needless to say I experimented with all including:
reducing the max-width of the img
removing the Who's Who part with the display:inline-block's
removing the image completely from the middle column...
It seems there was a problem in how Sharepoint was converting my source html making it not valid...
In a not so clean way you can start by setting min-width on the divs with that content. That will also help to keep it from overlapping as it scales down. Also I think you might want to switch to spans for the div width. I feel like I am preaching Scaffolding to a lot of people but it really does help keep things scaling nicely.
.ms-WPBody {padding:0;overflow:visible;min-width:190px;}
http://jsfiddle.net/R8LEE/
http://twitter.github.com/bootstrap/scaffolding.html
p wich is block by default, with div using float: right, padding instead of margin....not sure how this is working, you need to improve your css a bit dude. I sugest you review it all.

Page layout acting strangely

If you go on to my website, lookaroundyou.net and click on USA (which is where there are more video's than anywhere else on the site), the websites layout changes completely.
Does anyone have an idea as to why this happens?
I don't want to visit your site if it's crashing Firefox, but if the problem is indeed due to more content causing a scrollbar to show up and thus changing your page width, one easy way to sort that is to always display a scrollbar (it will be disabled if there is not extra content below). In this way, the width of the page will be the same regardless of length.
<style type="text/css">
html { overflow-y: scroll; }
</style>
I'm sure there's some other non-standard setting with IE that will do the same; that's left as an exercise for you.
It's causing a scrollbar because there are more videos.
I'm using chrome and I don't see any difference other than the page shifts when the scrollbar on the right appears.....

Why does Ie7 mysteriously cut off the top border of these notification paragraphs?

I'm having problems in ie7 with notification's that are styled using the p tag. I've used them before and they render fine in IE7, however, in my latest theme, they cut off the top border with no change to the code which is giving me a major headache trying to figure out.
Here's the problematic page, the notifications are at the bottom of the page.
Link
It's annoying because I've used the exact same html and css here in this theme
Link
Can anyone see what the problem with the buggy version is?
You have triggered some bug in IE7, but I'm not sure which one...
The difference between the pages is that you have specified a width for the notification elements in the page that works. If you specify a width for the elements in the other page, they work too.
Forcing layout seems to do the trick. You can read more here:
http://www.satzansatz.de/cssd/onhavinglayout.html
Try adding this:
<style>
.notification { zoom:1; }
</style>