我正在创建一个演示页面,它即将准备就绪。 这是它的 codepen 链接。 https://codepen.io/kamalpancholi/full/wvGMgEK?editors=1100 但我面临两个问题。
[1] 当我单击导航栏链接时,页面滚动到实际元素下方一点。结果一些实际内容位于标题下方。我正在使用 sticky
header 。
[2] 我不明白为什么我需要在 CSS 媒体查询中使用这么多 !important
?我在媒体查询中做错了什么吗?媒体查询中提供的值从未更新,直到我使用 !important
。
下面是代码
@import url('https://fonts.googleapis.com/css2?family=Oswald&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
* {margin: 0; padding: 0;}
body{ font-family: 'oswald', sans-serif}
.text-center { text-align: center; }
.text-left { text-align: center; }
.block { display: block; }
.inline { display: inline; }
.bold { font-weight: bold; }
.no-decor-link {
text-decoration: none;
color: black;
}
.no-bullets { list-style-type: none; }
.orangered { color: orangered; }
.ubuntu { font-family: 'Ubuntu', sans-serif }
.oswald { font-family: 'Oswald', sans-serif }
#header {
background-color: #FFDEAD;
position: sticky;
top: 0;
z-index: 2;
}
#logoNtitle {
display: inline-block;
}
#header-img {
width: 80px;
height: auto;
margin: 1em auto 0.7em 10vw;
}
#header-text{
position: relative;
top: -14px;
font-size: 2em;
margin-left: 0.8em;
}
#nav-bar {
float: right;
position: relative;
top: 2.3em;
right: 2em;
font-family: 'Ubuntu', sans-serif;
}
#nav-bar a{
padding: 1em 0.5em 1em 0.5em;
}
#main {
width: 1020px;
margin: auto;
background-color: #e6e6e6;
padding: 0.05px; /* to avoid margin collapsing */
}
#main p {
margin: 1em;
}
@media(max-width: 1020px) {
#main { width: 800px; }
#video {
width: 500px !important;
height: 281.25px !important;
}
#demo {
margin: 1em auto 3em !important;
}
}
@media(max-width: 800px) {
#main { width: 100%; }
#features-1 .ico { display: none !important; }
#features-1 { width: 80% !important; }
#nav-bar {
float: none;
position: initial;
text-align: center;
padding-bottom: 1em;
}
#logoNtitle {
display: block;
width: 320px;
margin: auto;
}
#header-img {
margin-left: auto;
}
#demo {
margin-top: 1em !important;
margin-bottom: 1em !important;
}
#pricing { margin-bottom: 1.2em; }
#pricing-content {
display: initial !important;
padding: 0.05px;
margin: 1em auto !important;
}
.card {
width: 300px;
margin: 1em auto 0.5em;
}
}
@media(max-width: 550px) {
#video {
width: 90vw !important;
height: 50.625vw !important;
}
}
#email {
display: block;
margin: 1em auto 1em auto;
border-radius: 3px;
border: 2px solid black;
padding: 0.3em 7px 0.3em 7px;
color: #1b2b34;
min-width: 15em;
}
#submit {
display: block;
margin: auto auto 1em auto;
background-color: #5fce6a;
border: none;/*1px solid grey;*/
padding: 0.5em 1em;
font-size: 1em;
}
#features-1{
width: 50%;
margin: 3em auto 2em;
}
.flex {
display: flex;
flex-direction: row;
}
#features-1 .ico {
display: flex;
height: 100px;
width: 90px;
justify-content: center;
align-items: center;
color: orangered;
}
#features-1 .content {
display: flex;
flex-direction: column;
justify-content: center;
height: 100px;
width: 75vw;
padding-left: 30px;
padding-right: 10px;
}
#features-2 {
margin: auto;
display: flex;
flex-direction: column;
}
#features-2 ul {
list-style-type: none;
line-height: 2em;
margin: auto;
}
#features-2 .feature-title {
font-size: 1.2em;
margin: 1% auto;
}
#features ul li:before {
content: '\2713';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
#demo {
margin: 2em auto 3em;
}
#video-title {
text-align: center;
padding: 1em;
font-family: 'ubuntu', sans-serif;
}
#video {
display: block;
width: 729px;
height: 410px;
margin: auto;
}
#pricing-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 1.3em;
width: 95%;
margin: 2em auto;
}
.card {
border: 2px solid black;
text-align: center;
}
.card h3 {
background-color: #BDBBBB;
padding: 0.5em 1em;
}
.card h2 {
font-weight: bold;
line-height: 2em;
}
.card ul {
line-height: 2em;
font-family: 'ubuntu';
}
.card button {
padding: 0.5em 2.3em;
margin: 1em auto;
background-color: orangered;
border: none;
font-family: 'ubuntu';
font-weight: bold;
}
.true:before {
content: '\2713';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
.false:before {
content: '\2717';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
footer div {
background-color: #BDBBBB;
font-family: 'ubuntu';
padding: 0.05px;
}
footer ul {
padding-top: 1.3em;
padding-bottom: 0.5em;
}
footer li {
display: inline;
padding-left: 1em;
padding-right: 1em;
}
.footer-content p {
margin-top: 0px !important;
font-size: 13px;
}
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>CodePen - Product page</title>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css'><link rel="stylesheet" href="./style.css">
</head>
<body>
<!-- partial:index.partial.html -->
<header id="header">
<div id="logoNtitle">
<img src="https://www.freepnglogos.com/uploads/eagles-png-logo/eagle-sports-png-logos--0.png" alt="product logo" id="header-img" class="inline">
<span id="header-text">The Lorem Ipsum</span>
</div>
<nav id="nav-bar">
<div id="links">
<a href="#features" class="no-decor-link nav-link"><span>Features</span></a>
<a href="#demo" class="no-decor-link nav-link"><span>Demo</span></a>
<a href="#pricing" class="no-decor-link nav-link"><span>Pricing</span></a>
<a href="#contact" class="no-decor-link nav-link"><span>Contact Us!</span></a>
</div>
</nav>
</header>
<div id="main">
<p class="text-center ubuntu pclass"> Provide your email for more information about product </p>
<form id="form" action="https://www.freecodecamp.com/email-submit">
<label for="email">
<input type="email" id="email" name="email" placeholder="Enter your email address">
</label>
<input type="submit" value="Submit" id="submit">
</form>
<div id="features" class="ubuntu">
<div id="features-1">
<div class="flex">
<div class="ico"><i class="fas fa-air-freshener fa-2x"></i></div>
<div class="content">
<h3>Premium quality material</h3>
<span>Lorem ipsum dolor sit amat, consecite adispicing elit, ipsum dolor sit amat, consecite adispicing elit</span>
</div>
</div>
<div class="flex">
<div class="ico"><i class="fas fa-shipping-fast fa-2x"></i></div>
<div class="content">
<h3>Fast shipping</h3>
<span>Lorem ipsum amat, dolorem ipsum</span>
</div>
</div>
<div class="flex">
<div class="ico"><i class="fas fa-user-clock fa-2x"></i></div>
<div class="content">
<h3>Timely maintenance updates</h3>
<span>Lorem ipsum dolor sit amat, consecite adispicing elit</span>
</div>
</div>
</div>
<div id="features-2">
<p class="bold feature-title">Why to choose us ?</p>
<ul> <!-- use css list-style-type: none; to remove bullets
use list-style-image: url(img.png) to use an image as bullet -->
<li>Lorem ipsum dolor</li>
<li>sit amet, consectetur adipiscing elit</li>
<li>Nunc tempor</li>
<li>dolorem ipsum quia</li>
<li>Lorem ipsum dolor</li>
<li>sit amet, consectetur adipiscing elit</li>
<li>Nunc tempor</li>
<li>dolorem ipsum quia</li>
</ul>
</div>
</div>
<div id="demo">
<h2 id="video-title">Here is how it works !!!</h2>
<div class="video-container">
<iframe width="729" height="410" id="video" src="https://www.youtube.com/embed/CmzKQ3PSrow" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</div>
<div id="pricing">
<div id="pricing-content">
<div class="card">
<h3>Basic Package</h3>
<h2>$500</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="false">Dolor sit, amat</li>
<li class="false">Nunc tempor</li>
<li class="false">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
<div class="card">
<h3>Premium Package</h3>
<h2>$600</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="true">Dolor sit, amat</li>
<li class="false">Nunc tempor</li>
<li class="false">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
<div class="card">
<h3>Pro Package</h3>
<h2>$800</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="true">Dolor sit, amat</li>
<li class="true">Nunc tempor</li>
<li class="true">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
</div>
</div>
<footer id="contact">
<div class="footer-content">
<ul class="no-bullets">
<li><a href="#" class="no-decor-link">Privacy</a></li>
<li><a href="#" class="no-decor-link">Terms</a></li>
<li><a href="#" class="no-decor-link">Contact</a></li>
</ul>
<p>©The Lorem Ipsum</p>
</div>
</footer>
</div>
<!-- partial -->
<script src='https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js'></script>
</body>
</html>
最佳答案
我已将 padding-top: 75px;
和 padding-top: 40px;
添加到页面 anchor ,为其提供您正在寻找的缓冲区。
@import url('https://fonts.googleapis.com/css2?family=Oswald&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Ubuntu&display=swap');
* {
margin: 0;
padding: 0;
}
body {
font-family: 'oswald', sans-serif
}
.text-center,
.text-left {
text-align: center;
}
.block {
display: block;
}
.inline {
display: inline;
}
.bold {
font-weight: bold;
}
.no-decor-link {
text-decoration: none;
color: black;
}
.no-bullets {
list-style-type: none;
}
.orangered {
color: orangered;
}
.ubuntu {
font-family: 'Ubuntu', sans-serif;
}
#features {
padding-top: 40px;
}
#demo {
padding-top: 75px;
}
.oswald {
font-family: 'Oswald', sans-serif
}
#header {
background-color: #FFDEAD;
position: sticky;
top: 0;
z-index: 2;
}
#logoNtitle {
display: inline-block;
}
#header-img {
width: 80px;
height: auto;
margin: 1em auto 0.7em 10vw;
}
#header-text {
position: relative;
top: -14px;
font-size: 2em;
margin-left: 0.8em;
}
#nav-bar {
float: right;
position: relative;
top: 2.3em;
right: 2em;
font-family: 'Ubuntu', sans-serif;
}
#nav-bar a {
padding: 1em 0.5em 1em 0.5em;
}
#main {
width: 1020px;
margin: auto;
background-color: #e6e6e6;
padding: 0.05px;
/* to avoid margin collapsing */
}
#main p {
margin: 1em;
}
@media(max-width: 1020px) {
#main {
width: 800px;
}
#video {
width: 500px !important;
height: 281.25px !important;
}
#demo {
margin: 1em auto 3em !important;
}
}
@media(max-width: 800px) {
#main {
width: 100%;
}
#features-1 .ico {
display: none !important;
}
#features-1 {
width: 80% !important;
}
#nav-bar {
float: none;
position: initial;
text-align: center;
padding-bottom: 1em;
}
#logoNtitle {
display: block;
width: 320px;
margin: auto;
}
#header-img {
margin-left: auto;
}
#demo {
margin-top: 1em !important;
margin-bottom: 1em !important;
}
#pricing {
margin-bottom: 1.2em;
}
#pricing-content {
display: initial !important;
padding: 0.05px;
margin: 1em auto !important;
}
.card {
width: 300px;
margin: 1em auto 0.5em;
}
}
@media(max-width: 550px) {
#video {
width: 90vw !important;
height: 50.625vw !important;
}
}
#email {
display: block;
margin: 1em auto 1em auto;
border-radius: 3px;
border: 2px solid black;
padding: 0.3em 7px 0.3em 7px;
color: #1b2b34;
min-width: 15em;
}
#submit {
display: block;
margin: auto auto 1em auto;
background-color: #5fce6a;
border: none;
/*1px solid grey;*/
padding: 0.5em 1em;
font-size: 1em;
}
#features-1 {
width: 50%;
margin: 3em auto 2em;
}
.flex {
display: flex;
flex-direction: row;
}
#features-1 .ico {
display: flex;
height: 100px;
width: 90px;
justify-content: center;
align-items: center;
color: orangered;
}
#features-1 .content {
display: flex;
flex-direction: column;
justify-content: center;
height: 100px;
width: 75vw;
padding-left: 30px;
padding-right: 10px;
}
#features-2 {
margin: auto;
display: flex;
flex-direction: column;
}
#features-2 ul {
list-style-type: none;
line-height: 2em;
margin: auto;
}
#features-2 .feature-title {
font-size: 1.2em;
margin: 1% auto;
}
#features ul li:before {
content: '\2713';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
#demo {
margin: 2em auto 3em;
padding-top: 75px;
}
#video-title {
text-align: center;
padding: 1em;
font-family: 'ubuntu', sans-serif;
}
#video {
display: block;
width: 729px;
height: 410px;
margin: auto;
}
#pricing-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 1.3em;
width: 95%;
margin: 2em auto;
}
.card {
border: 2px solid black;
text-align: center;
}
.card h3 {
background-color: #BDBBBB;
padding: 0.5em 1em;
}
.card h2 {
font-weight: bold;
line-height: 2em;
}
.card ul {
line-height: 2em;
font-family: 'ubuntu';
}
.card button {
padding: 0.5em 2.3em;
margin: 1em auto;
background-color: orangered;
border: none;
font-family: 'ubuntu';
font-weight: bold;
}
.true:before {
content: '\2713';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
.false:before {
content: '\2717';
display: inline-block;
position: relative;
right: 6px;
font-weight: bold;
}
footer div {
background-color: #BDBBBB;
font-family: 'ubuntu';
padding: 0.05px;
}
footer ul {
padding-top: 1.3em;
padding-bottom: 0.5em;
}
footer li {
display: inline;
padding-left: 1em;
padding-right: 1em;
}
.footer-content p {
margin-top: 0px !important;
font-size: 13px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodePen - Product page</title>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css'>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<!-- partial:index.partial.html -->
<header id="header">
<div id="logoNtitle">
<img src="https://www.freepnglogos.com/uploads/eagles-png-logo/eagle-sports-png-logos--0.png" alt="product logo" id="header-img" class="inline">
<span id="header-text">The Lorem Ipsum</span>
</div>
<nav id="nav-bar">
<div id="links">
<a href="#features" class="no-decor-link nav-link"><span>Features</span></a>
<a href="#demo" class="no-decor-link nav-link"><span>Demo</span></a>
<a href="#pricing" class="no-decor-link nav-link"><span>Pricing</span></a>
<a href="#contact" class="no-decor-link nav-link"><span>Contact Us!</span></a>
</div>
</nav>
</header>
<div id="main">
<p class="text-center ubuntu pclass"> Provide your email for more information about product </p>
<form id="form" action="https://www.freecodecamp.com/email-submit">
<label for="email">
<input type="email" id="email" name="email" placeholder="Enter your email address">
</label>
<input type="submit" value="Submit" id="submit">
</form>
<div id="features" class="ubuntu">
<div id="features-1">
<div class="flex">
<div class="ico"><i class="fas fa-air-freshener fa-2x"></i></div>
<div class="content">
<h3>Premium quality material</h3>
<span>Lorem ipsum dolor sit amat, consecite adispicing elit, ipsum dolor sit amat, consecite adispicing elit</span>
</div>
</div>
<div class="flex">
<div class="ico"><i class="fas fa-shipping-fast fa-2x"></i></div>
<div class="content">
<h3>Fast shipping</h3>
<span>Lorem ipsum amat, dolorem ipsum</span>
</div>
</div>
<div class="flex">
<div class="ico"><i class="fas fa-user-clock fa-2x"></i></div>
<div class="content">
<h3>Timely maintenance updates</h3>
<span>Lorem ipsum dolor sit amat, consecite adispicing elit</span>
</div>
</div>
</div>
<div id="features-2">
<p class="bold feature-title">Why to choose us ?</p>
<ul>
<!-- use css list-style-type: none; to remove bullets
use list-style-image: url(img.png) to use an image as bullet -->
<li>Lorem ipsum dolor</li>
<li>sit amet, consectetur adipiscing elit</li>
<li>Nunc tempor</li>
<li>dolorem ipsum quia</li>
<li>Lorem ipsum dolor</li>
<li>sit amet, consectetur adipiscing elit</li>
<li>Nunc tempor</li>
<li>dolorem ipsum quia</li>
</ul>
</div>
</div>
<div id="demo">
<h2 id="video-title">Here is how it works !!!</h2>
<div class="video-container">
<iframe width="729" height="410" id="video" src="https://www.youtube.com/embed/CmzKQ3PSrow" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</div>
<div id="pricing">
<div id="pricing-content">
<div class="card">
<h3>Basic Package</h3>
<h2>$500</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="false">Dolor sit, amat</li>
<li class="false">Nunc tempor</li>
<li class="false">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
<div class="card">
<h3>Premium Package</h3>
<h2>$600</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="true">Dolor sit, amat</li>
<li class="false">Nunc tempor</li>
<li class="false">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
<div class="card">
<h3>Pro Package</h3>
<h2>$800</h2>
<ul class="no-bullets">
<li class="true">Lorem ipsum</li>
<li class="true">Dolor sit, amat</li>
<li class="true">Nunc tempor</li>
<li class="true">dolorem ipsum quia</li>
</ul>
<button type="button">Select</button>
</div>
</div>
</div>
<footer id="contact">
<div class="footer-content">
<ul class="no-bullets">
<li><a href="#" class="no-decor-link">Privacy</a></li>
<li><a href="#" class="no-decor-link">Terms</a></li>
<li><a href="#" class="no-decor-link">Contact</a></li>
</ul>
<p>©The Lorem Ipsum</p>
</div>
</footer>
</div>
<script src='https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js'></script>
</body>
</html>
关于html - 滚动到实际元素下方一点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63571713/