我正在尝试在表格单元格中显示信息列表,但我无法正确使用css。我已经阅读了有关将div发送到单元格底部的帖子,并尝试了位置相对父级 - >绝对的孩子。我仍然无法破解它 - 你能帮忙吗?
我在这里创造了一个小提琴(https://jsfiddle.net/ngm6uavo/10/),它呈现了一个单行足球装备表(它将是多排)。每个单元格都包含一个团队的夹具数据,这些数据可能在家或远离。如果回家:反对,开球,投球,参考。如果离开:反对。两者都有一个'状态'标签(未经证实/确认),如果是杯赛,可选择显示一个杯子图像。
我想要在从单元格顶部开始的各个后续行上渲染的装置数据,无论是在家还是在外。任何一行的数据都可以包含长文本,例如“裁判:有一个真正长名的人”我希望坐在底部的“状态”标签,每个单元格中的每一个都应该彼此对齐。夹具数据和状态标签都保持对齐。我想要显示的杯子图像如果显示在右下方(与状态标签相同的基线)。
我已经尝试过不同的方法,你可以从小提琴中看到; div,span和一个<br>
s(不好)的单元格。我认为使用div会效果最好,但我非常愿意接受可能更容易解决的建议(例如单元格中的表格/表格)。
你可以看到我已经包含了bootstrap样式表来美化表,我认为它不会干扰。
的CSS:
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
table, thead, tbody, tr, td{
position: relative;
}
.td-fixture{
background-color: #eaeded;
border: 1px solid #ccd1d1 ;
padding: 10px;
position: relative;
}
.date-span{
text-align: center;
}
.date-hdr {
text-align: center;
font-weight: normal;
font-size:20px;
vertical-align:middle !important;
color: #21618C;
background-color: #d6eaf8;
border-top: 3px solid #ccd1d1 !important;
border-left: 3px solid #ccd1d1 !important;
border-bottom: 3px solid #ccd1d1 !important;
}
.fixture-hdr {
text-align: center;
font-weight: normal;
font-size:20px;
color: #21618C;
background-color: #d6eaf8;
padding-bottom: 2px;
border-top: 3px solid #ccd1d1 !important;
border-left: 3px solid #ccd1d1 !important;
border-right: 3px solid #ccd1d1 !important;
border-bottom: none !important;
}
.fixture-subhdr {
text-align: center;
font-size:15px;
font-weight: normal;
color: #21618C;
background-color: #d6eaf8;
padding-top: 2px;
border-top: none !important;
border-left: 3px solid #ccd1d1 !important;
border-right: 3px solid #ccd1d1 !important;
border-bottom: 3px solid #ccd1d1 !important;
}
.textBoxStyle{
text-align:left;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
border:1px outset #9a9;
background: #e5e8e8;
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
}
.fixtureLabel{
font-weight:bold;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
}
.fixtureUnconfirmed{
color: #ff0000;
}
.fixtureConfirmed{
color: #269816 ;
}
.fx-input{
background: #fffdbf;
border-radius: 5px;
}
td.div-container{
position:absolute;
top: 0;
}
td.div-status{
position:absolute;
bottom: 0;
}
td.div-cup{
position:absolute;
bottom: 0;
right:0;
}
HTML:
<h2>Saturday Teams</h2>
<table id="tbl-sat-1">
<thead>
<tr>
<th rowspan="2" class="date-hdr">Date</th>
<th class="fixture-hdr" id="29">U7 Lions</th>
<th class="fixture-hdr" id="33">U9 Tigers</th>
<th class="fixture-hdr" id="41">U10 Bears</th>
<th class="fixture-hdr" id="38">U10 Sharks</th>
</tr>
<tr>
<th class="fixture-subhdr">EBFA A</th>
<th class="fixture-subhdr">EBFA A</th>
<th class="fixture-subhdr">EBFA C</th>
<th class="fixture-subhdr">EBFA A</th>
</tr>
</thead>
<tr class="tr-fixtures">
<td class="td-fixture date-span">
<span>2017-09-16</span>
</td>
<td class="td-fixture">
<div class="div-container">
<span class="fixtureLabel">Reeves Rangers</span><br/>
<span class="fixtureLabel">Kickoff: </span><span>10:00</span><br/>
<span class="fixtureLabel">Pitch: </span><span>11as pitch 2</span><br/>
<span class="fixtureLabel">Referee: </span><span>Appointed</span><br/>
<div class="div-status">
<span class="fixtureUnconfirmed textBoxStyle">Unconfirmed</span>
</div>
<div class="div-cup">
<img id='cup' src='http://nplyouthfootball.co.uk/wp-content/themes/twentytwelve-child/images/gold-cup.png' style='width:28px;height:35px;'/>
</div>
</div>
</td>
<td class="td-fixture">
<div class="div-container">
<div><span class="fixtureLabel">Reeves Rangers</span><br/></div>
<div><span class="fixtureLabel">Kickoff: </span><span>10:00</span></div>
<div><span class="fixtureLabel">Pitch: </span><span>11as pitch 2</span></div>
<div><span class="fixtureLabel">Referee: </span><span>Appointed</span></div>
<div class="div-status">
<span class="fixtureUnconfirmed textBoxStyle">Unconfirmed</span>
<img id='cup' src='http://nplyouthfootball.co.uk/wp-content/themes/twentytwelve-child/images/gold-cup.png' style='width:28px;height:35px;'/>
</div>
</div>
</td>
<td class="td-fixture">
<div class="div-container">
<span class="fixtureLabel">Reeves Rangers</span><br/>
<span class="fixtureLabel">Kickoff: </span><span>10:00</span><br/>
<span class="fixtureLabel">Pitch: </span><span>11as pitch 2</span><br/>
<span class="fixtureLabel">Referee: </span><span>Appointed</span><br/>
</div>
<div class="div-status">
<span class="fixtureUnconfirmed textBoxStyle">Unconfirmed</span>
<img id='cup' src='http://nplyouthfootball.co.uk/wp-content/themes/twentytwelve-child/images/gold-cup.png' style='width:28px;height:35px;'/>
</div>
</td>
<td class="td-fixture">
<div class="div-container">
<span class="fixtureLabel">Reeves Rangers</span><br/>
<div class="div-status">
<span class="fixtureUnconfirmed textBoxStyle">Unconfirmed</span>
<img id='cup' src='http://nplyouthfootball.co.uk/wp-content/themes/twentytwelve-child/images/gold-cup.png' style='width:28px;height:35px;'/>
</div>
</div>
</td>
</tr>
</table>
感谢您的任何建议。
答案 0 :(得分:0)
首先,您忘记加入<tbody>
其次,如果您希望vertical-align工作,则不应包含bootstrap
总而言之,我认为你真的需要提高你的css和html技能,使表格看起来像你想象的那样。这是Pen现成的桌子:
https://codepen.io/anon/pen/QqGMXp?editors=1100
改进清单会很长,最重要的事情 - 块中的定位(因为你已经尝试过div-s)并不复杂,尽量保持代码干燥,因为当你的数据增长时,代码质量也会增长。此外,尝试应用&#34; keep-dry-rule&#34;对于样式,当您以相同的方式设置3个边框时,可以更容易地设置所有边框并从中排除1(例如)。
我将留下您学习以下材料的建议:
https://www.codecademy.com/en/tracks/htmlcss https://www.udemy.com/html-and-css-for-beginners-crash-course-learn-fast-easy/
这些简单的课程涵盖了基础知识,但它们肯定会提高你的技能