我有一个basic layout。我正在尝试使用CSS网格创建布局。
由于某种原因,我不应该使用滚动条,因为没有足够高的内容可以保证滚动条。
我已经创建了this codepen。
HTML
<div class="l-grid">
<header>
<h1 class="logo"><span class="logo__brand-color">M</span>y Site</h1>
</header>
<main>
<div class="quote">
<img
src="https://www.viva.org.uk/sites/default/files/styles/large/public/Albert%20Einstein_0.jpg?itok=A5nVyyns"
alt="celadet"
class="quote__image"
/>
<p class="quote__body">
A hundred times every day I remind myself that my inner and outer life are based on the labors of other men, living and dead, and that I must exert myself in order to give in the same measure as I have received and am still receiving.
</p>
<h3 class="quote__author">Albert Einstein</h3>
</div>
<div class="search">
<input
type="text"
class="search__field"
placeholder="Search quotes"
/>
</div>
</main>
<footer>
<ul class="footer-nav">
<li class="footer-nav__item">
<a href="#" class="footer-nav__link">About</a>
</li>
<li class="footer-nav__item footer-nav__item--separator">·</li>
<li class="footer-nav__item">
<a href="#" class="footer-nav__link">Help</a>
</li>
<li class="footer-nav__item footer-nav__item--separator">·</li>
<li class="footer-nav__item">
<a href="#" class="footer-nav__link">Contact</a>
</li>
</ul>
</footer>
</div>
CSS
* {
margin: 0;
padding: 0;
text-decoration: none;
list-style: none;
border: none;
box-sizing: border-box;
}
:root {
font-size: 100%;
}
html,
body {
height: 100%;
}
body {
background-color: #292c37;
}
.l-grid {
display: grid;
width: 1100px;
margin: 0 auto;
height: 100%;
grid-template-columns: 1;
grid-template-rows: auto 1fr auto;
align-items: center;
}
.logo {
color: #fff;
font-family: "Satisfy", cursive;
font-weight: 100;
}
.logo__brand-color {
color: hsl(355, 78%, 39%, 80%);
}
.quote {
display: grid;
grid-template-columns: auto 1fr;
grid-template-rows: auto auto;
font-size: 1rem;
grid-gap: 50px;
}
.quote__image {
border-radius: 50%;
width: 140px;
height: 140px;
object-fit: cover;
border: 2px solid hsl(0, 0%, 0%, 60%);
border-style: inset;
}
.quote__body {
font-family: "Lora", serif;
color: hsl(0, 0%, 100%, 85%);
line-height: 1.93em;
font-size: 1.2em;
}
.quote__author {
color: hsl(355, 78%, 39%, 80%);
grid-column: span 2;
text-align: right;
font-size: 1.5em;
}
.search {
background-color: #363a49;
padding: 20px;
border-radius: 3px;
}
.search__field {
background-color: #292c37;
border: none;
border-radius: 3px;
height: 43px;
width: 100%;
color: hsl(0, 0%, 100%, 60%);
font-family: "Lora", serif;
padding: 10px;
}
footer {
font-size: 1rem;
}
.footer-nav {
display: grid;
grid-template-columns: repeat(5, 100px);
justify-content: center;
}
.footer-nav__item {
display: flex;
justify-content: center;
align-items: center;
}
.footer-nav__item,
.footer-nav__link {
color: hsl(0, 0%, 100%, 50%);
text-align: center;
}
.footer-nav__link {
font-size: 1em;
font-family: "Roboto", sans-serif;
}
.footer-nav__item--separator {
font-size: 3em;
line-height: 0.5em;
}
答案 0 :(得分:2)
对此我不是100%肯定。
但是我认为所有这些背后的罪魁祸首是被应用于CSS的
fxMessage()
哪个
<li class="footer-nav__item footer-nav__item--separator">·</li>
默认字体大小:.footer-nav__item--separator {
font-size: 3em;
line-height: 0.5em;
}
现在要知道文本需要多少高度,我们将16px
乘以font-size
(em,rem,px或任何其他单位对行高无关)< / p>
line-height
如您所见,字符比高度大得多,因此它将溢出并导致滚动条出现。
解决方案:
3em * 16px = 48px // Size of the character
48px * .5 = 24px // The height of the text
或line-height
答案 1 :(得分:0)
您需要更新grid-template-rows: auto;
CSS以删除滚动条。
.l-grid {
display: grid;
width: 1100px;
margin: 0 auto;
height: 100%;
grid-template-rows: auto;
align-items: center;
}
答案 2 :(得分:0)
尝试一下:
body{
overflow-y:hidden;
}
这可能对您有帮助!
答案 3 :(得分:-1)
您可以这样做: 从.l-grid CSS移除高度或添加height:auto
.l-grid {
display: grid;
width: 1100px;
height:auto;
margin: 0 auto;
grid-template-columns: 1;
grid-template-rows: auto 1fr auto;
align-items: center;
}