【发布时间】:2018-07-26 13:06:27
【问题描述】:
我正在尝试css-grid,但我在内容占用 100% 父容器时遇到了一些问题。我完全迷路了。我的layouts/index.js 文件中的内容有一个max-width: 1200px。然后我在子组件中调用grid-template-columns: 1fr。子组件background-image 不占用1200px,而是占用423px。图像宽 2600 像素。我认为1fr 会占用最大宽度内容容器的所有空间。我错过了什么?
layouts/index.js
const Wrapper = styled.div`
display: grid;
grid-template-rows: auto 1fr auto;
background: red;
height: 100vh;
overflow-y: auto;
`;
const Content = styled.div`
max-width: 1200px;
background: pink;
padding-top: 2rem;
${media.desktop`padding: 2rem ;`}
${media.tablet`padding: 2.4rem;`}
${media.phone`padding: 1.2rem;`}
margin: 0 auto;
`;
const LayoutWrapper = ({ children }) => (
<Wrapper>
<Helmet
title="Fouts Tax Service"
meta={[
{ name: 'description', content: 'A tax service in Anderson, Indiana run by Jerry Fouts' },
{ name: 'keywords', content: 'tax, anderson, 46011, indiana, service, fouts,' },
]}
/>
<ResponsiveHeader/>
<Content>
{children()}
</Content>
<Footer/>
</Wrapper>
);
pages/index.js
import HeroImg from '../images/taxes.jpg'
const Grid = styled.div`
display: grid;
grid-template-columns: 1fr;
border: 2px solid black;
grid-gap: 10px;
align-content: center;
`;
const Showcase = styled.div`
background-image: url(${HeroImg});
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-color: #a7a7a7;
background-blend-mode: color-burn;
grid-gap: 10px;
padding: 4rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: start;
class IndexPage extends Component {
render() {
return (
<Grid>
<Showcase>
<h1>Fouts Tax Service</h1>
<h3>Year round tax service</h3>
<p>Lorem ipsum dolor sit amet consectetur adipisicing.</p>
</Showcase>
</Grid>
)
}
}
【问题讨论】:
-
如果您的代码可以重现问题,这将很有用。目前,您的代码与您发布的图片不匹配。
-
可能会删除
margin: 0 auto;并使用网格中的对齐属性来对齐项目。您还可以显式设置width: 100%以获取全部可用宽度。 -
好的,我将添加所有代码
-
Kunuknmargin:0 auto 是导致问题的原因。我不敢相信我没有想到这一点。谢谢。
标签: css css-grid styled-components