Media queries Not working on phones, but responsiveness works on desktop - responsive-design

I'm building a site with materialize css.
The default mobile nav menu on materialize breaks on mobile devices for longer entries. Basically, the words will wrap to the next line and overlap the words below it displaying encrypt-o-jumble.
I went and added specific media queries generally formatted like this.
#media screen and (max-width: 870px) {
.xp-1 {
min-height: 100px;
}
}
I tested these in the chrome browser and they are perfectly responsive.
When I view the same site on any kind of phone, or the chrome browsers phone views the media queries activate as if they were on a smaller screen. Tablets are generally big enough not to trigger the media queries.
For example: at 375px on desktop a line will wrap to the line below. With the media queries this the element will expand, pushing the element below down and creating enough space for the whole link.
When viewed on a 375px iPhone x the element will expand, but the text will get smaller leaving blank space.
I have tried adding a few different meta tags:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
Here's some screenshots of the menu:
On the iPhone X Chome view (375px):
Regular Chrome browser view at 375px:
Heres a link to the live site:
https://onesourcebenefits.com/
How can I make this display the same on mobile as it does in the browser?
I've read through a ton of info on this site so far, and am continuing to look into this. Any help would be appreciated. :)

In this case materialize was enforcing fixed heights on nested tags within li tags as in the example for their mobile nav menu. I removed the nested ul's and li's and replaced them with divs with padding and hover properties. Now the site is responsive.

Related

How to make static html page shrink or stretch to fit mobile screens?

Hello am using simple HTML (no responsive framework - very new to web development) and CSS. I want to make a page for mobile only screens. I am aware that there are responsive layouts and frameworks available, but at this point I do not want to use it.
Is there a way to "scale" (not re-arrange like in responsive design and flex box design) the HTML page to fit 100% of the screen. (no scroll, just 100% fits in the screen - more like an mobile app).
If you:
avoid explicitly setting the width of elements on the page, eg the width of an image or a div
and you don't have a viewport meta tag in the head of your doc, eg <meta name="viewport" content="width=device-width, initial-scale=1.0">
and you don't have media queries in your CSS, eg #media (max-width: 480px) {... }
then smartphones will typically scale the page to fit the screen.
Good luck, hope this helps!

Website is not responsive on actual cell phones, but responsive when viewed in inspector tools

This website...
http://www.collegefundingremedies.com
is responsive on my computer, and displays correctly when I Inspect Elements through Google Chrome and click on the mobile the different mobile views, but when I open the website on an actual mobile phone, everything is unaligned and badly formatted. What am I missing here?
I have the...
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1">
in the index and media queries set up, so I'm not sure what's going on at all. Please help.

How to force xs layout in Bootstrap 3

I'm making a small web project with Bootstrap 3.
At the top I've put this as it was suggested in most documents:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
It works fine on desktop but layout seems to be small on my smartphone (Galaxy Note). Because this web app will mostly be used on a smartphone I wanted to force small screen by adding this to head section of html:
<meta name="viewport" content="width=320">
It didn't work, I've got same layout as of screen resolution greater than 768px.
What I want to achieve is Bootstrap to act in xs layout in small-factor screen size, independent of screen resolution.
Thanks
UPDATE:
Here is the fiddle: Fiddle Link
Display Metrics of my phone are: density=2.0 Dpi=320 heightPixels=800
scaledDensity=2.0 widthPixels=1280
EDIT:
Here are two screenshots. (I'll do a fiddle later) First is from phone, second from desktop. Desktop screenshot is what I want to get on a smartphone even if its resolution is on par with desktop.
Desktop:
UPDATE 2:
I've added this meta tag, but it didn't change anything on Android default browser or Chrome mobile:
<meta name="MobileOptimized" content="320">
What you are trying to achieve is overriding the basic premise of Bootstrap. Bootstrap uses the following scaling classes...
lg - For extra large displays
md - For standard sized displays such as desktops and laptops
sm - For tablet devices and devices with screens around the 7-11 inch range
xs - For mobile phones and devices with such small screens
The point of Bootstrap is to create a website style which will adjust itself based on the screen size automatically. You can use the md scaling class and if a smaller device is used then the elements will be collapsed and stacked on top of one another.

Bootstrap hidden-phone assets still load on phone

I'm building an app for mobile and desktop. There are some assets that I don't want to show or to load when on the mobile device. Using the Bootstrap's responsive design there is a tag called hidden-phone which is used to hide assets when on the phone. However, they appear to still be loading in the background and using bandwidth. Is there a way to prevent this?
I've come across the same issue with Bootstrap Responsive Utilities. The problem is that browsers will load all the HTML images first, then apply the CSS rule that Bootstrap uses which is display:none for the particular element that you've told it to hide.
One possible solution is to avoid using these utilities and instead, display the images using the CSS background-image property. Then, you can choose the same screen breakpoints that Bootstrap uses with their Responsive Utilities or make your own. Below is a simplified example that I've used in the past (set of images for mobile, and a set of images for everything else).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<style>
#image {
background-image: url(largeimage.jpg);
}
#media only screen and (max-width: 480px) {
#image {
background-image: url(mobileimage.jpg);
}
}
</style>
</head>
<body>
<div id="image"></div>
</body>
</html>
You can find more info about Bootstrap breakpoints here: http://getbootstrap.com/css/#grid-media-queries
Are you including the viewport tag in your header?
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
If not, you are probably rendering to 1024px wide, which will affect the output. Also, the sizing is based on screen resolution, not the type of device in use.
If you want to interrogate the browser more, this needs to be done with JS. I do this in a few places, and inject classes into the HTML element for use with device/browser specific targets in a limited fashion. You may want to look at Modernizr as well.
Given the comments below, and that you are targeting an iframe you do not want loaded for mobile browsers, I would suggest using JavaScript to test for a non-mobile platform, and inject your iframe via JS, rather than using Bootstrap to "hide" the content.

why doesn't this website scale properly on a smarthpone?

I'm busy developing a portfolio website. This website should behave responsively, ie: the website should be fully displayed when browsing on smaller screens.
I have added the meta viewport tag, but it does not seem to work. At the moment you need to scroll horizontally to view the full content. I want it to be initially scaled to the width of the viewport
<meta name="viewport" content="width=device-width, initial-scale=1">
I guess I am missing something, but no clue what..
I was having all kinds of problems with viewport. Finally I just removed all traces of that stupid thing, and everything seems to scale correctly now. It might be that current mobile browsers are smart enough to scale without use of viewport. Of course I am using media queries too.

Resources