【发布时间】:2018-07-04 03:01:40
【问题描述】:
我的Angular应用的css结构是
-顶级应用程序有一个 3 行的 CSS 网格 -nav 组件占据第一行 -content-component 占据第二行 -footer 占据第三行
.css-grid-container{
height:100vh; /*height of the container is same ahs height of the view port.*/
display: grid;
grid-gap:20px;
grid-template-columns: 1fr; /* 1 columns*/
grid-template-rows: auto 15fr 1fr; /* 3 rows. Auto takes height of navigation, remaining is divided into 2 rows, middle row is 15 times larger than the 3rd row.*/
}
app-nav-component {
grid-column: 1 / -1;
grid-row: 1 / 2;
}
app-content-component{
grid-column: 1 / -1;
grid-row: 2 / 3;
}
app-footer-component{
grid-column: 1 / -1;
grid-row: 3 / -1;
}
HTML 是
<div class="body__div--background" >
<app-nav-component></app-nav-component>
<app-content-component></app-content-component>
<app-footer-component></app-footer-component>
</div>
中间的内容组件是我要放置新组件的位置。 ContentComponent的html代码是
<div id="content-div">
<router-outlet></router-outlet>
</div>
css是
#content-div{
height:100%;
display:grid;
grid-template-columns: 1fr; /* 1 columns*/
grid-template-rows: 1fr; /*1 row*/
}
上述组件被假设为其他组件的容器(导航和页脚始终保持不变)。现在我有了另一个组件,HomeComponent。我希望将HomeComponent 放置在中心的ContentComponent 内。我为此写的html 和css 是
<div class="homepage-component-css-grid-container" id="home-page-component">
<app-practice-component></app-practice-component>
<app-create-component></app-create-component>
</div>
css是
.homepage-component-css-grid-container{
display: grid;
grid-gap:20px;
grid-template-columns: 1fr 1fr; /* 2 columns*/
}
#home-page-component{
align-self:center; /*center of the content component*/
grid-column: 1 / -1;
grid-row: 1 / -1;
}
app-practice-component{
grid-column: 1 / 2;
align-self: center;
justify-self:end;
}
app-create-component{
grid-column: 2 / 3;
align-self: center;
justify-self:start;
}
我的问题是HomeComponent 没有显示在中心。见下图。有趣的是,我注意到如果通过浏览器的调试工具,我在reboot.scss 中手动添加align-self:center,那么HomeComponent 会移动到中心。但是reboot.scss 不是我的文件。我如何将HomeComponent 与center 对齐
图 1 - 我正在观察的行为。 HomeComponent不在中心
Pic2 - 如果我在 reboot.scss 中添加 align-self:center
【问题讨论】:
-
你想要的居中并不完全清楚(至少对我来说)。你有没有经历过这些选择? stackoverflow.com/q/45536537/3597276
-
非常感谢。我会读一读。如果您看到上面的两张图片,在第一张(这是应用程序现在的样子)中,2 个白框(大的,不是带有黑色边框的)更靠近底部(页脚)。我想要的是第二张图片,即页面中心附近的两个框。在浏览器的调试面板中,我可以通过在
reboot.scss中手动添加align-items:center来将框移动到中心。但我无法center代码中的框。在#content-div中添加align-items:center或在#home-page-component中添加align-self:center似乎没有任何影响。 -
你在
#content-div中尝试过align-content: center吗? -
不幸的是没有工作
-
我能够确定这个问题。这与我们一直在讨论的内容不同,但您提供的链接非常有帮助