【发布时间】:2021-11-26 14:58:43
【问题描述】:
我正在创建一个主成绩簿应用程序,但我需要 CSS 格式方面的帮助。我遇到了一个不知道如何解决的问题:
-
我希望表格的前两行被“冻结”,前两列也被“冻结”。我已经完成了一半的工作,但正如您在下面看到的,第二列在第一列的顶部滑动。这是什么原因造成的?
-
为什么一年级以下的“X%”(在本例中为 BOTR 问题 11/12)以蓝绿色显示?为什么 CSS 将其检测为
tr th:first-child?
body {
margin: 0;
position: absolute;
top: 65px; left: 0px;
width: 100%;
height: calc(100vh - 65px);
background-color: #FCFCFC;
display: grid;
grid-template-rows: 1fr;
grid-template-areas:
"title"}
.title {grid-area: title}
.master {
grid-area: modules;
overflow-x: scroll;}
table {border-collapse: collapse}
th, td {
max-width: 110px;
border: 1px solid lightgray;}
th {
z-index: 1;
position: sticky;
top: 0; left: 0;
background-color: white;
overflow: hidden;}
tr th:first-child {
z-index: 2;
position: sticky;
top: 0;
background-color: cyan;}
tr td:first-child, tr td:nth-child(2) {
z-index: 1;
position: sticky;
left: 0;
white-space: nowrap;
display: flex;
justify-content: flex-start;
max-width: fit-content !important;
background-color: orange;}
td input {
border: none;
outline: none;
text-align: center;
max-width: 80%;
background-color: pink;
padding: 0px;}
th select {
outline: none;
-webkit-appearance: none;
padding: 8px 12px;
box-sizing: border-box;
border-radius: 8px;
width: 100%;
border: 1px solid lightgray}
.assign {
padding: 6px;
display: flex;
flex-direction: column;
justify-content: space-between;}
.assign .due {
font-size: 11px;
color: darkgray;}
.assign .title {
font-size: 15px;
overflow: hidden;
color: #581F98}
.studentInfo {
display: flex;
align-items: center;
padding: 6px 12px 6px 6px;}
.studentInfo img {
width: 25px;
margin-right: 10px;
clip-path: circle();}
.red {
padding: 10px;
background-color: red;}
.gray {
width: 100%; height: 100%;
background-color: lightgray;}
.score {
display: flex;
justify-content: center;
align-items: center;}
<body>
<div class='master'>
<table>
<tr>
<th colspan='2' rowspan='2'>
<select>
<option>Reading</option>
<option>Social Studies</option>
</select>
<select>
<option>Week 1</option>
<option>Week 2</option>
</select>
</th>
<th>
<div class='assign'>
<span class='due'>10/06 to 10/13</span>
<span class='title'>BOTR Questions 11/12</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>10/06 to 10/08</span>
<span class='title'>TS Flipbook: Cause/Effect</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/28 to 10/01</span>
<span class='title'>BOTR Questions 9/10</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/30 to 10/01</span>
<span class='title'>TS: Compare & Contrast</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/21 to 09/27</span>
<span class='title'>BOTR Questions 7/8</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/15 to 09/20</span>
<span class='title'>TS Flipbook: Sequence</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/13 to 09/17</span>
<span class='title'>TS Flipbook: Description</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/07 to 09/13</span>
<span class='title'>Starving Context Clues</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/08 to 09/13</span>
<span class='title'>BOTR Questions 5/6</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/30 to 09/07</span>
<span class='title'>BOTR Questions 3/4</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>09/02 to 09/03</span>
<span class='title'>Profile: John Smith</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/31 to 09/03</span>
<span class='title'>Susan Constant vs England</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/23 to 08/31</span>
<span class='title'>BOTR Questions 1/2</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/23 to 08/27</span>
<span class='title'>Character Traits</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/19 to 08/24</span>
<span class='title'>Buckle Down PreTest</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/17 to 08/23</span>
<span class='title'>Roanoke Cornell Notes</span>
</div>
</th>
<th>
<div class='assign'>
<span class='due'>08/16 to 08/20</span>
<span class='title'>Roanoke Story Map</span>
</div>
</th>
</tr>
<tr>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
<th>X%</th>
</tr>
<tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/teachers/2.jpg'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/teachers/3.jpg'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/teachers/4.jpg'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score gray'>X</td><td><div class='score gray'>X</td><td><div class='score gray'>X</td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/default.png'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr>
<td>
<div class='studentInfo'>
<img src='../../resources/pics/teachers/1.jpg'>
<span>John Doe</span>
</div>
</td>
<td>X%</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td><td><div class='score gray'>X</td><td><div class='score gray'>X</td><td><div class='score'><input type='text'></div></td><td><div class='score'><input type='text'></div></td></tr> </body>
【问题讨论】:
标签: html css html-table css-grid sticky