Jump to content

CSS Media Rule and Flexbox Dysfunction


iwato

Recommended Posts

BACKGROUND:  I have recently created a new page based on code used on another page that appears to be functioning well.  As the content is different, however, it was necessary that I make several important modifications.  Still, the basic format is the same, and I do not understand why the new content is not responding as it should.  As always, I have tried a variety of experiments before coming to you including resetting the values of the width property of both the media rule and the media rule's content, reordering the script order of both the imported CSS files and their content, as well as the placement of the CSS rules that command the flex-box.   My CSS selectors appear to be appropriate as I am able to generate change.  Unfortunately, the desired change is not the change that I am generating.

QUESTION:  What is the most likely cause of the dysfunction?

ORIGINAL PAGE:  Observe the behavior of the pages navigation bar, main section, right sidebar, and footer as the size of your viewport expands and contracts.  On my devices (iMac, MacBook, and iPhone) the behavior is the desired behavior.  The various section appear to function well no matter the selected browser.

http://www.grammarcaptive.com/overview.html

NEW PAGE:  Although the main content section is empty, the right sidebar does not function as intended under the second media rule -- this, despite its proper functioning under the first and third rules.

http://www.grammarcaptive.com/podcast_dev_copy.html

NOTE:  I'll not place any code as everything is easily viewed online.

Link to comment
Share on other sites

If it would encourage a response, I have since cleaned the file of potential noise that could have been getting in the way.

Link to comment
Share on other sites

Thank you for responding.  I was beginning to think that no one cared.

The result of the second media rule should be the same as the third.  As the viewport contracts the column simply shifts from the right of the main content to below it.  When it moves below it should turn into a row that wraps, as it finally does well all parts of the document are stacked on top of each other.

Link to comment
Share on other sites

3 hours ago, iwato said:

Thank you for responding.  I was beginning to think that no one cared.

The result of the second media rule should be the same as the third.  As the viewport contracts the column simply shifts from the right of the main content to below it.  When it moves below it should turn into a row that wraps, as it finally does well all parts of the document are stacked on top of each other.

But the direction is set as column, so that is why they stack above each other, as a COLUMN.

Link to comment
Share on other sites

Yes, but what could be preventing the column of images from becoming a row, when the right column no longer fits in the viewport and is compelled to align underneath the left an middle panels?  What is more, why would the column switch to a row only when the header, left panel, main content panel, and right panel are aligned vertically, and not before?  After all, the row setting is occurs with the second media rule.

The combined width of the left navigation panel (200 px), main panel (504 px), and horizontal margins (10 px) is 714 px.  The second media rule should kick into effect as soon as the viewport reaches a width of 700 px.  Notwithstanding, no matter the size of the max-width, be it above, below, or exactly 714px, the result is the same.

What is more,  there is no CSS below the rule that obviously affects the size of the viewport or the panels in question.

I simply do not get it.

Roddy

Link to comment
Share on other sites

1st media rule

The child dive elements are still doing what block elements do,  fit to the width available to them, and using column just reiterates this, full width and stacked as column,  no bunching together or wrapping will take effect anyway because it is direction of column and not a row. The Images will just be a 150px width inline element on the left by default of full width parent element div.

2nd onwards produce wrap row version

Note the body element has a default margin of approx 8px, also scrollbars appear just before 1st media rule kicks in, meaning the combined width of left, middle, right etc exceeds 1st media rule width of 980px.

To test when media queries kick-in use identifiable background-color: for body element on each.

 

  • Like 1
Link to comment
Share on other sites

Got it.  Dsonesuk, you are one very knowledgeable individual.

It turns out that the 2nd and 3rd media rules were absolutely useless with regard to the desired flex box effect, and as you wisely suggested the column direction setting is completely unnecessary.

For others, however, you might wish to direct them toward Firefox's Responsive Design Mode.  For in this mode the screen width is counted for you, and you can watch the behavior of the window's contents as the width is being counted.  What is more you can set the width in the same window mode to the precise location that the change needs to be made.  It is a super tool; for it taught not only where the changes were taking place, but also where I needed to place the flex box display property to attain the desired affect.

(Firefox / Tools / Web Developer / Responsive Design Mode)  

Have a great day!

Roddy

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...