#html #css #responsive-design #media-queries
Вопрос:
Я пытался настроить навигационную панель для мобильных устройств, но панель навигации, похоже, не соответствует предоставленным запросам @media.
.centered-content {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
}
/* END */
* {
box-sizing: border-box;
margin: 0%;
padding: 0%;
/* background-color:#1d1b1b; */
}
body {
background-color: #161A1A;
color: white;
background-repeat: space;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
nav {
width: 100%;
position: static;
display: flex;
height: 4rem;
/* border-radius: 0px 0px 0px 0px; */
/* box-shadow: 100px 100px 200px rgb(248, 213, 11); */
scroll-padding: 1rem 0 0 0;
}
.nav-logo {
font-weight: bold;
align-items: center;
/* justify-content: center; */
padding-left: 1rem;
display: flex;
width: 50%;
height: 100%;
font-family: 'Rock Salt', cursive;
/* background-color: yellow; */
}
.nav-links {
display: inline-flex;
width: 50%;
/* background-color: teal; */
/* justify-content: center; */
height: 100%;
padding-left: 3rem;
}
.nav-links ul {
justify-content: center;
align-items: center;
display: inline-flex;
list-style: none;
height: 100%;
width: 80%;
/* background-color: tan; */
}
.nav-links ul li {
width: 10%;
position: relative;
overflow: hidden;
display: flexbox;
flex-direction: row;
font-weight: bold;
height: 100%;
width: 100%;
/* background-color:firebrick ; */
}
.nav-links ul li a {
position: relative;
display: flexbox;
flex-direction: column;
/* justify-content: space-evenly; */
align-items: center;
text-decoration: none;
margin: 0 .5em 4em 0;
/* background-color: darkgrey; */
color: white;
}
.nav-links ul li a::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 1.2px;
transform: scaleX(0);
transform-origin: left;
transition: transform 0.2s ease-in-out;
transition-delay: 0s;
}
.nav-links ul li a:hover::before {
transform: scaleX(1);
transform-origin: right;
transition: transform 0.2s ease-in-out;
transition-delay: 0.3s;
}
.nav-links ul li a:hover {
color: #f2aa4cff;
}
.nav-links ul li a span {
/* box-shadow: 6vw 2vw salmon; */
display: flex;
width: 100%;
height: 100%;
position: relative;
transition: 0.5s;
justify-content: center;
text-align-last: center;
transition: 0.5s;
flex-direction: column;
}
.nav-links ul li a:hover span:nth-child(1) {
transform: translateY(-100%);
}
.nav-links ul li a:hover span:nth-child(2) {
transform: translateY(-100%);
animation: glow .87s ease-in-out infinite alternate;
}
@-webkit-keyframes glow {
from {
text-shadow: 0 0 30px #fff, 0 0 30px #fff, 0 0 30px #e60073, 0 0 30px #eb632e, 0 0 30px #6ff16f, 0 0 20px #bce600, 0 0 20px #300ef1;
}
to {
text-shadow: 0 0 30px rgb(0, 0, 0), 0 0 30px #ca1c1c, 0 0 30px #f80505, 0 0 30px #ff9a02, 0 0 30px #eafa0f, 0 0 2 0px #eb117e, 0 0 20px #04ff9f;
}
}
.intro-container {
display: flexbox;
padding: .2% .3% 0 3%;
}
.intro-container p {
width: 50%;
letter-spacing: .5px;
}
/* Below is my Responsive-CSS: */
@media all and (max-width:500px) {
nav {
position: fixed;
display: flex;
height: 4rem;
background-color: red;
font-size: .6rem;
}
.nav-logo {
font-weight: bold;
align-items: center;
/* justify-content: center; */
padding-left: 1rem;
display: flex;
width: 30%;
height: 100%;
font-family: 'Rock Salt', cursive;
background-color: yellow;
padding-left: 1rem;
}
.nav-links {
display: inline-flex;
width: 70%;
background-color: teal;
/* justify-content: center; */
height: 100%;
padding-left: 3rem;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Protfolio</title>
<link rel="">
</head>
<body>
<nav>
<div class="nav-logo">
<!-- <div class="nav-logo"> -->
Redacted
</div>
<div class="nav-links">
<ul>
<li>
<a href="">
<span>.whoAmI()</span>
<span class="fas fa-user-circle fa-2x" aria-hidden="true">
</span>
</a>
</li>
<li>
<a href="">
<span>.Contact()</span>
<span class="fa fa-address-card fa-2x" aria-hidden="true"></span>
</a>
</li>
<li>
<a href="">
<span>.Blog()</span>
<span class="fa fa-bookmark fa-2x" aria-hidden="true"></span>
</a>
</li>
<li>
<a href="">
<span>.Projects()</span>
<span class="fa fa-code fa-2x" aria-hidden="true" style="font-weight: bolder;"></span>
</a>
</li>
<!-- <li>
<a href="">
<span>Tools</span>
<span>Tools</span>
</a>
</li> -->
</ul>
</div>
</nav>
<div class="intro-container">
<h2>function Greetings()</h2>
<h2>{</h2>
<p><i>var Greeting = "Hello There!!"<br>
var name_ = "Redacted"<br>
var name_alias = "<font color="mediumblue;">Redacted</font>"<br>
var Profession = "Redacted"
</i>
</p>
<h2>}</h2>
</div>
<script src="https://unpkg.com/scrollreveal"></script>
</body>
</html>
Я пытался сделать секцию red-div шириной 30%, а секцию teal-div шириной 70%, когда ширина устройства достигает менее 500 пикселей . Но это, похоже, не работает для меня, так как ширина по-прежнему делится на 50% бирюзового и 50% красного, даже при ширине устройства менее 500 пикселей.
Спасибо вам за ваше время и усилия.
Комментарии:
1. Вместо использования ширины попробуйте использовать гибкую основу, как в flex-basis: 30% и flex-basis: 70% соответственно
2. код работает на меня. Я не могу воспроизвести ошибку, которую вы описали, с помощью предоставленного кода.
Ответ №1:
Не очень хорошая практика определять ширину в сочетании с flex-box
. Проблема в том, что он борется со способностью flex box управлять пространством.
Вместо этого вы должны использовать flex-basis
или flex
(сгибание, сгибание, сгибание) стенографию для определения размеров.
Поэтому в вашем случае используйте
.nav-logo {
font-weight: bold;
align-items: center;
padding-left: 1rem;
display: flex;
flex-basis: 50%;
/* height: 100%; don't add a height flex containers already fill height */
font-family: 'Rock Salt', cursive;
}
.nav-links {
/* display: inline-flex; -- this has no function as its a flex element */
width: 50%;
padding-left: 3rem;
}
/* try to only specify changes in media queries instead of replicating values */
@media all and (max-width:500px) {
nav {
position: fixed;
/* display: flex; -- already defined */
/* height: 4rem; -- already defined */
background-color: red;
font-size: .6rem;
}
.nav-logo {
/* font-weight: bold; -- already defined */
/* align-items: center; -- already defined */
/* padding-left: 1rem; -- already defined */
/* display: flex; -- already defined */
flex-basis: 30%;
/* font-family: 'Rock Salt', cursive; */
background-color: yellow;
/* padding-left: 1rem; -- already defined in this block and above */
}
.nav-links {
flex-basis: 70%;
background-color: teal;
}
}
Если вам нужна дополнительная помощь в определении размеров flexbox, это хороший ресурс.