我是front-end-development
的新手。现在,这里有下表,
<div className="table-responsive">
<table className="table table-hover" id="job-table">
<thead>
<tr className="text-center">
<th scope="col">Sr.No.</th>
<th scope="col">Company Name</th>
<th scope="col">Technology</th>
<th scope="col">Total Resumes</th>
<th scope="col">Job Title</th>
<th scope="col">Total Score</th>
<th scope="col">Average Score</th>
</tr>
</thead>
<tbody className="text-center">
{this.props.list && this.props.list.content && this.props.list.content.length > 0 && this.props.list.content.map((item, key) => {
return (
<tr key={key}>
<td className="font-weight-bold">1</td>
<td className="font-weight-bold">ABCDED</td>
<td>Software Developer</td>
<td className="font-weight-bold">17</td>
<td>5 years experience</td>
<td className="font-weight-bold">30</td>
<td className="font-weight-bold">30</td>
</tr>
)
})}
</tbody>
</table>
</div>
现在,在此我使用了table-responsive class
。
现在,我尝试使用
使该表可滚动tbody { height: 400px; overflow-y: scroll }
但这不起作用。
关于td
的内容的另一件事是,如果其他行较大,则会受到影响。因此,如何避免这种情况?
感谢您的帮助。
答案 0 :(得分:3)
可以使用position: sticky
设置固定标题。
检查sample code。
在此设置主容器的高度。
.table-responsive{height:400px;overflow:scroll;}
将位置设置为tr-> th。
thead tr:nth-child(1) th{background: white; position: sticky;top: 0;z-index: 10;}
答案 1 :(得分:1)
将display:block
添加到表中以解决此问题
tbody{height: 400px; overflow-y: scroll;display:block;}
th { position: sticky; top: 0; }
答案 2 :(得分:1)
尝试使用flex,它应该与table-responsive
兼容:
table {
display: flex;
flex-flow: column;
width: 100%;
}
thead {
flex: 0 0 auto;
}
tbody {
flex: 1 1 auto;
display: block;
overflow-y: auto;
overflow-x: hidden;
}
tr {
width: 100%;
display: table;
table-layout: fixed;
}
希望这会有所帮助
答案 3 :(得分:0)
使用位置:粘在 和顶部:0
th {
background: white;
position: sticky;
top: 0; /* Don't forget this, required for the stickiness */
}
完整的示例可以在这里找到: https://css-tricks.com/position-sticky-and-table-headers/