Media-queries not working on Sass project
I am working on a Sass project and everything worked properly, but media queries are not working. I tried adding them at the bottom of the document, adding in the chain of labels, having more specificity than the normal chain and nothing is working. Do you know what the problem could it be?
Here is what I did:
Breakpoints:
$mobile-breakpoint: 600px;
$laptop-breakpoint: 922px;
In this case is applying the media query even when the width is less than 922px:
img{
height: 5vw;
margin: 3vh 4vh 4.6vh 3vh;
@media(min-width: $laptop-breakpoint){
height: 4vw;
}
}
The code after being coverted to CSS:
.main-header .header-logo-search a img {
height: 5vw;
margin: 3vh 4vh 4.6vh 3vh;
}
@media (min-width: 922px) {
.main-header .header-logo-search a img {
height: 4vw;
}
}
In this case, it does not apply the media query:
input{
@include search();
width: 30vw;
box-sizing: border-box;
padding: 0 1.5vw;
font-size: 1.2rem;
background-color: $snow;
border-radius: 5px 0 0 5px;
@media(max-width: 600px){
display: none;
}
The code after being coverted to CSS:
.main-header .header-logo-search form input {
height: 3.5rem;
line-height: 3.5rem;
border: none;
margin: auto 0;
width: 30vw;
box-sizing: border-box;
padding: 0 1.5vw;
font-size: 1.2rem;
background-color: #FFF9FB;
border-radius: 5px 0 0 5px;
}
@media (max-width: 600px) {
.main-header .header-logo-search form input {
display: none;
}
}
Thanks in advance
1 answer
-
answered 2022-05-06 17:36
Anurag Das
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Without a viewport meta tag, your site will be rendered into the device's default virtual viewport.
do you know?
how many words do you know
See also questions close to this topic
-
Creating Sticky Navbar with Drop Down Menu HTML
I am creating a HTML web page which contains a sticky navbar with drop down menu. However, when I created one, the dropdown menu does not works in the sticky navbar and so goes vise versa. below is the screenshot of both the result of the two codes.
*image with dropdown menu but without sticky navbar
*image with sticky navbar but without dropdown menu
below is the code for "image with dropdown menu but without sticky navbar"
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font- awesome/4.7.0/css/font-awesome.min.css"> <style> body {margin:0;font-family:Arial} .topnav { overflow: hidden; background-color: #333; } .topnav a { list-style-type: none; float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; position: sticky; } .active { background-color: #04AA6D; color: white; } .topnav .icon { display: none; } .dropdown { float: left; overflow: hidden; } .dropdown .dropbtn { font-size: 17px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font-family: inherit; margin: 0; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .dropdown-content a { float: none; color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } .topnav a:hover, .dropdown:hover .dropbtn { background-color: #555; color: white; } .dropdown-content a:hover { background-color: #ddd; color: black; } .dropdown:hover .dropdown-content { display: block; } @media screen and (max-width: 600px) { .topnav a:not(:first-child), .dropdown .dropbtn { display: none; } .topnav a.icon { float: right; display: block; } } @media screen and (max-width: 600px) { .topnav.responsive {position: relative;} .topnav.responsive .icon { position: absolute; right: 0; top: 0; } .topnav.responsive a { float: none; display: block; text-align: left; } .topnav.responsive .dropdown {float: none;} .topnav.responsive .dropdown-content {position: relative;} .topnav.responsive .dropdown .dropbtn { display: block; width: 100%; text-align: left; } } </style> </head> <body> <div class="header"> <h2>Scroll Down</h2> <p>Scroll down to see the sticky effect.</p> </div> <div class="topnav" id="myTopnav"> <a href="#home" class="active">Home</a> <a href="#news">News</a> <a href="#contact">Contact</a> <div class="dropdown"> <button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div> <a href="#about">About</a> <a href="javascript:void(0);" style="font-size:15px;" class="icon" onclick="myFunction()">☰</a> </div> <div style="padding-left:16px"> <h2>Responsive Topnav with Dropdown</h2> <p>Resize the browser window to see how it works.</p> <p>Hover over the dropdown button to open the dropdown menu.</p> </div> <h3>Sticky Navigation Bar Example</h3> <p>The navbar will <strong>stick</strong> to the top when you reach its scroll position.</p> <p><strong>Note:</strong> Internet Explorer do not support sticky positioning and Safari requires a -webkit- prefix.</p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <script> function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "topnav") { x.className += " responsive"; } else { x.className = "topnav"; } } </script> </body> </html>
below is the code for "image with sticky navbar but without dropdown menu"
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font- awesome/4.7.0/css/font-awesome.min.css"> <style> body { font-size: 20px; } body {margin:0;} ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; position: -webkit-sticky; /* Safari */ position: sticky; top: 0; } li { float: left; } li a { display: block; color: white; text-align: center; padding: 16px 20px; text-decoration: none; } li a:hover { background-color: #111; } /*======================================================================*/ body { background-color:white; } ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #38444d; } li { float: left; } li a, .dropbtn { display: inline-block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover, .dropdown:hover .dropbtn { background-color: red; } li.dropdown { display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } .dropdown-content a:hover {background-color: #f1f1f1;} .dropdown:hover .dropdown-content { display: block; } footer { text-align: center; padding: 3px; background-color: DarkSalmon; color: white; } </style> </head> <body> <div class="header"> <h2>Scroll Down</h2> <p>Scroll down to see the sticky effect.</p> </div> <ul> <li><a href="#home">Home</a></li> <li><a href="#news">News</a></li> <li class="dropdown"> <a href="javascript:void(1)" class="dropbtn">Dropdown</a> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </li> </ul> <h3>Sticky Navigation Bar Example</h3> <p>The navbar will <strong>stick</strong> to the top when you reach its scroll position.</p> <p><strong>Note:</strong> Internet Explorer do not support sticky positioning and Safari requires a -webkit- prefix.</p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <p>Some text to enable scrolling. </p> <footer> <p>Author: Hege Refsnes<br> <a href="mailto:hege@example.com">hege@example.com</a></p> </footer> </body> </html>
Please i need some help with this as i am new to html and css.
-
Javascript: Change element class if button has a certain value
<div class="main-div main-div2"> <!-- IF up to date, main-div3 --> <button id="update-btn" class="btn update-btn"> Up to date </button> </div>
I want to make it so if update-btn has a value of "Up to date", change the div class from "main-div main-div2" to "main-div main-div3". Otherwise, if it's any other value, change it to "main-div main-div2"
What kind of loop would be good for this Javascript function too if I want it to be checking constantly?
Thank you.
-
Boostrap vertical sizing with different style width and height
I am trying to set verticaly icon on profile photo card inside div to be in the middle in white box(div), but dont know why it doesnt works. When I use
style="width: 300px; height: 300px;
for div square I can center it on horizontaly, but not verticaly :/ Can someone explain me what I am doing wrong?Anyway is there any way how to resize bootstrap icons except display-1???
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <div class="container-sm offset-md"> <h1 class="p-4 m-4">Nastavení profilu</h1> <div class="row"> <div class="col"> <div class="card p-4 m-4"> Osobní údaje <input type="text" name="name" class="form-control" placeholder="Jméno"> <input type="text" name="surname" class="form-control" placeholder="Příjmení"> <input type="email" name="email" class="form-control" placeholder="E-Mail"> <input type="date" name="name" class="form-control"> </div> </div> <div class="col-4"> <div class="card p-4 m-4 bg-light"> Profilová fotografie <div class=" square text-center border display-1 m-3 bg-white mx-auto"> <i class="bi bi-person-fill align-middle justify-content-center text-secondary"></i> </div> <input type="file" id="customFile" name="file" hidden=""> <div class="text-center"> <button class="btn btn-success" for="customFile">Nahrát</button> <button type="button" class="btn btn-danger">Smazat</button> <p class="text-muted mt-3 mb-0">Poznámka: Minimální velikost 300px x 300px</p> </div> </div> </div> </div> <div class="row"> <div class="col"> <div class="card p-4 m-4"> Změna hesla </div> </div> <div class="col"> <div class="card p-4 m-4"> Zobrazit/skrýt podrobnosti </div> </div> </div> </div>
-
I would like the header logo and main visual to be aligned vertically
Prerequisites
The header logo and main visual are side by side.
Expected value
I want the header logo and main visual to be aligned vertically.I would like to do something like this URL.
Reproduction procedure
Run the code below.
body { height: 1295.83px;; width: 1263px; display: flex; justify-content: center; } .header__container { height: 17.83px; width: 1000px; font-size: 14px; font-family: Meiryo; margin: 60px 0px 0px; .header__logo { height: 17.83px; width: 160px; } } .container__main { height: 1295.83px; width: 1263px; main { height: 1118px; width: 1000px; .main__mainvisual { height: 400px; width: 1000px; } } }
<!DOCTYPE html> <html lang="ja"> <body> <header class="header__container"> <img class="header__logo" src="image/logo.svg" alt="PHOTO BOOK"> </header> <div class="container__main"> <main> <img class="main__mainvisual" src="image/mainvisual.jpg" alt="メインビジュアル"> </main> </div> </body> </html>
-
MUI/Icon makes everything dissapear
When I try to import and use a mui icon in react, it makes the whole div dissapear, and just the background image remain, i have installed: emotion/react, emotion/styled, mui/icons-material, mui/material, styled-components, mui/styled-engine-sc
<div className="login"> <h1>Login</h1> <div className="form"> <EmailIcon className='icon'/> <input type="text" placeholder="Email"></input> <input type="password" placeholder='Password'></input> </div> <div className="buttons"> <button id='login'>Login</button> <button id='register'>Register</button> </div> </div> )
-
Display NavBar on top of each other in smaller screens
for @media (mobile, tablets) only.
-Only when the Size of the Page gets smaller, on smaller screens besides PC!
I want to display my Logo on Top Middle, (when the screen gets smaller)
The NavBar under the Logo as a full Row,
And the Subscribe button on the Top-Right of the NavBar and Logo
(between them on the right side) but I can't seem to do it right!I set up correctly everything on the PC Displays, but when it comes to "@media screen" I don't know what I'm doing wrong
Please help. Below is my code!
Note: I don't know if I should change the whole DIV or only the Nav for the effect to take place!@media screen and (max-width: 500px) { .hero { display: inline-block; } }
<div class="hero"> <nav> <h2 class="logo"> Be <span>Smart</span> <br /> <span class="span1">Technologies</span> </h2> <ul> <li><a href="index.html" id="active">Home</a></li> <li><a href="portfolio.html">Portfolio</a></li> <li><a href="about.html">About</a></li> <li><a href="contact.html">Contact</a></li> </ul> <button type="button" class="button1"> <a href="#" class="button1">Subscribe</a> </button> </nav> </div>
-
Is there a way to force a specific media query breakpoint?
Lets say I have css with the styles
@media screen and (min-width: 640px) { ...styles go here }
And I want to force the page to adhere to that specific breakpoint's styles, as in, I want to make it so "the width is always > 640px" regardless of the actual window size. Is there a way to do that in the html, css, or via javascript?
I can't alter the original stylesheet, although I can load in an additional stylesheet or run custom code, but I'd rather not have to essentially copy and past all the styles for this breakpoint if I can avoid that
-
Responsive Media Query for a Submenu
I'm learning Responsive Media Query, I would like to do two things:
- Remove arrow icon
- Adapt the submenu, I guess I just have to decrease the font size?
Here is an illustration below:
How to remove this icon, please?
HTML
<ul class="nav-links"> <li *ngFor="let menu of menus; let i = index" [class.active]="menu.active"> <ng-container> <a class="item" (click)="selectMenu(menu)"> <i [class]="menu.iconClass"></i> <span class="links_name">{{ menu.name }}</span> <i class="fa fa-chevron-down"></i> </a> <ul class="submenu" #submenu [ngStyle]="{ 'height': menu.active ? submenu.scrollHeight + 'px' : 0 + 'px' } " > <li *ngFor="let submenu of menu.submenu"> <a routerLink="{{ submenu.url }} " ><span class="links_subname">{{ submenu.name }}</span> </a> </li> </ul> </ng-container> </li> </ul>
CSS
/* Responsive Media Query */ @media (max-width: 400px) { .sidebar { width: 0; } .sidebar.active { width: 60px; } .home-section { width: 100%; left: 0; } .sidebar.active~.home-section { left: 60px; width: calc(100% - 60px); } .home-section nav { width: 100%; left: 0; } .sidebar .logo-details .logo_name img { height: 30px; width: 65px; margin: 0 auto; } .sidebar.active~.home-section nav { left: 60px; width: calc(100% - 60px); } .sidebar .nav-links .submenu .links_subname { color: #fff; font-size: 14px; margin: 0 auto; } }
Here is a reproduction here.
Thank you for your help and comments.