San*_*nth 5 html javascript css gatsby react-helmet
我遇到了网页右侧和底部出现大空白的问题。测试网页的响应能力时。
我在stackoverflow上发现了类似的问题
两个帖子的解决方案都是一样的
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里添加这个gatsby,我发现了一个与我的问题类似的帖子,关于gatsby 如何设计主体/背景的样式?。似乎不明白这个问题的解决方案是什么!
找到这篇文章How to add adynamic class to body tag in Gatsby.js? 对使用有一些想法react-helmet,我到底可以如何使用它?
谁能解释我如何html body在盖茨比中设置,以避免这个大的空白?
要添加全局样式(例如您正在讨论的样式),您可以采用多种方法。最简单的一种是使用gatsby-browser.js文件。我将根据我的路径为您的用例提供解决方案,根据您的意愿进行调整。
创建一个global.css文件/src/styles/global.css并粘贴您的代码:
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)
在您的gatsby-browser.js文件中,导入全局样式:
import './src/styles/global.css';
Run Code Online (Sandbox Code Playgroud)
基本上,您正在使用 CSS 文件为您的项目添加全局样式。
您的问题非常缺乏细节,但我猜白色部分是网站的页脚。由于页面底部没有任何内容推动页脚,因此它看起来很灵活。
PS:我已经提交了如何将动态类添加到 Gatsby.js 中的 body 标记?的解决方案,因为您不需要添加动态类。为了使页脚始终粘在浏览器底部,您需要进行一些调整。用类似的东西包裹你的<Layout>:
import React from "react"
import Navbar from "./navbar"
import Footer from "./footer"
import Sidebar from "./sidebar"
import '/yourStyles.css'
const Layout = ({ children }) => {
return (
<section className="site-wrapper">
<main>{children}</main>
<Footer />
</section>
)
}
export default Layout
Run Code Online (Sandbox Code Playgroud)
并添加以下 CSS(在您的/yourStyles.css或全局样式中)
.site-wrapper {
display: flex;
min-height: 100vh;
flex-direction: column;
}
main {
flex-grow: 1;
}
Run Code Online (Sandbox Code Playgroud)
基本上,您是在告诉包装器 ( site-wrapper) 展开直到填满视口 ( 100vh)。由于您的main标签(如果需要,将其更改为所需的类)可以自由增长(flex-grow: 1),因此您的页脚将始终位于页面底部,因为它是由 Flexbox 列的其余部分推动的。