[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]
Check out Janggi (Korean Chess), our featured variant for December, 2024.
Check out Janggi (Korean Chess), our featured variant for December, 2024.
Last night I was expanding the text size in Chrome on my desktop. As I do this, it changes the viewport size that CSS reads even though it doesn't actually change the window size. When the viewport width was at 960, as reported by the Web Developer extension, both sidebar ads showed up above the content. As I understood my CSS, this should not have happened. I had used min-width and max-width to set various ranges, and all ranges seemed to be covered without any gaps. But at 960, which was at a cusp between two ranges, something was wrong. Further investigation showed that it was using the Average font for both body and italics, yet every range was supposed to use Volkhov for both or Average for body and Kurale for italics. So it appeared that only the default CSS was being used without any modifications from @media clauses.
I eventually figured out that this could happen if I misunderstood how min-width and max-width work. I had assumed that min-width returned true for any value that was greater than or equal to the size given and that max-width returned true for any value that was less than or equal to the size given. But it appeared that one of them was returning false when the width was equal to the size given, effectively working as the NOT of the other one. To fix the problem for 960, I adjusted the max-width of one range to 961. This allowed a width of 960 to work with that style, as I originally intended. So, it looks like max-width returns true only when the width is less than the size given, at least on Chrome. Maybe this is an undefined detail that will be different in different browsers.
So, to avoid this problem altogether, I should stick to using only min-width or max-width in my @media entries, and I should design the CSS to work for a default screen size that requires no modification from @media. My options are the smallest screen size and the largest screen size. I think I will go with the smallest screen size for the default CSS and add elements and make changes as the screen size grows. I will also add some CSS to the header to turn off sidebar ads by default, so that they will not show up above the content on pages that do not include the global CSS file.
If I use only one, then any given screen width may fit multiple @media conditions. In that case, I have to arrange them in a way that will apply the correct styles for a given width last, and I will have to take into consideration what has already been changed by earlier @media clauses. I have four choices. I can use either min-width or max-width, and I can go from narrowest to widest or vice versa. If I use min-width and go from narrower to wider, the first one, say min-width: 600, would modify anything with a width of 600 or greater. Let's say the next one is min-width: 960. This would modify anything with a width of 960 or greater. Finally, at some width suitable for widescreen desktop monitors, all previous modifications would have been made, and each would have to be corrected or continued. Since I'll be starting out with the narrowest size as default, it makes sense to me to do it this way. I wrote it out ahead of time to help me be clear about what I will be doing and to inform any interested parties on what kinds of changes I will be making.