【发布时间】:2018-07-02 01:07:32
【问题描述】:
我有一个工作代码(在 HTML/CSS 网格中),它由 3 行 2 列的 css-grid 组成。第一行是导航(跨越所有列),中间是内容(没有跨越所有列),最后是页脚(跨越所有列)。
.body__div--background {
background: linear-gradient(45deg,#33b1f8 37%,#6e90f6 100%); /*syntax linear-gradient(direction, color1 limit, color2 limit)*/
color:#555555;
font-family: Verdana;
line-height:1.5;
font-size: 11px;
letter-spacing: 0.25px;
}
.css-grid-container{
height:100vh; /*???*/
display: grid;
grid-gap:20px;
grid-template-columns: 1fr 1fr; /* 2columns*/
grid-template-rows: auto 15fr 1fr; /* 3 rows. Auto takes height of navigation, remaining is divided into 2 rows, middle row (content) is 15 times larger than the 3rd row (footer).*/
}
css 将元素放在网格中的适当位置是
.css-grid-item__nav{
grid-column: 1 / -1; //nav takes 1st row, all columns
grid-row: 1 / 2;
}
.css-grid-item__practice-div{
grid-column: 1 / 2; //middle has two divs. This should go in row2, column1
grid-row: 2 / 3;
align-self: center;
justify-self:end;
}
.css-grid-item__create-div{
grid-column: 2 / 3; //middle has two divs. This should go in row2, column2
grid-row: 2 / 3;
align-self: center;
justify-self:start;
}
.css-grid-item__footer{
grid-column: 1 / -1; //footer goes in row 3, all columns
grid-row: 3 / -1;
background-color: white;
color:black;
}
HTML 如下所示:
<body class="body__div--background" >
<div class="css-grid-container">
<nav class="navbar navbar-expand-lg navbar-light bg-light css-grid-item__nav">
...
</nav>
<div class="css-grid-container__practice-div">
...
</div>
<div class="css-grid-item__create-div">
...
</div>
<div class="css-grid-item__footer">
...
</div>
</div>
</body>
后来我决定使用 Angular。我创建了 3 个 Angular 组件,导航组件、内容组件和页脚组件。我将css 和html 复制到了Angular 的css/html 文件中。
所以,导航组件的html文件有以下内容
<nav class="navbar navbar-expand-lg navbar-light bg-light css-grid-item__nav"> ... </nav>
其css内容如下
.css-grid-item__nav{
grid-column: 1 / -1;
grid-row: 1 / 2;
}
应用组件的 HTML 如下所示:
<div class="body__div--background" >
<div class="css-grid-container">
<app-nav-component></app-nav-component>
<app-content-component></app-content-component>
<app-footer-component></app-footer-component>
</div>
</div>
但是,nav-component 和 footer-component 只占用 1 列,而不是所有列。内容组件的两个 div 在第 2 列中,而不是在每个网格中的 1 列中。
我怎样才能让我的代码工作?
【问题讨论】: