我正在嘗試在表格單元格上方放置一個按鈕,這就是我所取得的成就:

這是代碼:
body {
margin: 100px;
}
td {
border: 1px solid black;
padding: 20px;
text-align: center;
vertical-align: middle;
}
td span {
text-align: center;
}
table {
border-collapse: collapse;
}
#btn {
display: block;
margin-left: auto;
margin-right: auto;
position: relative;
height: 20px;
top: -30px;
}
<table>
<tr>
<td>
<button id='btn'>test</button>
<span>Alfreds Futterkiste</span>
</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
</table>
看起來不錯,我已將按鈕放在表格單元格上方。但是有一件事情困擾著我:第一個表格單元格中的文本沒有垂直對齊。為什么?我用過vertical-align,但它不起作用。如何使它作業
uj5u.com熱心網友回復:
將 btn 從 DOM 流中分離出來,position: absolute這樣它就不會像這樣在測量中計算;
body {
margin: 100px;
}
td {
border: 1px solid black;
padding: 20px;
text-align: center;
vertical-align: middle;
}
td span {
text-align: center;
}
table {
border-collapse: collapse;
}
#btn {
height: 20px;
position: absolute;
top: -10px;
left: 50%;
transform: translateX(-50%);
}
.pos-relative {
position: relative;
}
<table>
<tr>
<td class="pos-relative">
<button id='btn'>test</button>
<span>Alfreds Futterkiste</span>
</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
</table>
uj5u.com熱心網友回復:
在按鈕中使用絕對位置,在父 td 中使用相對位置。
body {
margin: 100px;
}
td {
border: 1px solid black;
padding: 20px;
text-align: center;
vertical-align: middle;
}
td span {
text-align: center;
}
table {
border-collapse: collapse;
}
#btn {
display: block;
margin-left: auto;
margin-right: auto;
position: absolute;
height: 20px;
top: -10px;
left: 100px;
}
<table>
<tr>
<td style="position: relative">
<button id='btn'>test</button>
<span>Alfreds Futterkiste</span>
</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
</table>
uj5u.com熱心網友回復:
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
display: grid;
place-items: center;
}
table {
width: calc(60vw - 2rem);
height: calc(60vh - 3rem);
margin: 2rem 1rem 1rem 1rem;
border-collapse: collapse;
border: 1px solid #000;
}
td {
padding-top: 0;
vertical-align: top;
border: 1px solid #000;
width: 20vw;
height: 20vh;
}
.over-top {
position: relative;
margin-top: -1.2rem;
text-align: center;
}
.over-left {
position: relative;
margin-left: -2.5rem;
text-align: left;
}
.over-right {
position: relative;
margin-right: -2.5rem;
text-align: right;
}
button {
height: 2rem;
width: 5rem;
}
<table>
<tr>
<td>
<div class="over-top">
<div class="over-left">
<button>X</button>
</div>
</div>
</td>
<td>
<div class="over-top">
<button>X</button>
</div>
</td>
<td>
<div class="over-top">
<div class="over-right">
<button>X</button>
</div>
</div>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
網格示例:
body{
display: grid;
grid-template-columns: repeat(9, 1fr);
grid-template-rows: 1rem 1rem repeat(3, 1fr);
gap: .1rem;
min-height: 100vh;
}
.cell { border: 1px solid #000; }
.row-1{ grid-row: 2 / 4; }
.row-2{ grid-row: 4 / 5; }
.row-3{ grid-row: 5 / 6; }
.col-1{ grid-column: 1 / 4; }
.col-2{ grid-column: 4 / 7; }
.col-3{ grid-column: 7 / 10; }
button { grid-row: 1 / 3; grid-column: 2 / 3; }
<div class="cell row-1 col-1"></div>
<div class="cell row-1 col-2"></div>
<div class="cell row-1 col-3"></div>
<div class="cell row-2 col-1"></div>
<div class="cell row-2 col-2"></div>
<div class="cell row-2 col-3"></div>
<div class="cell row-3 col-1"></div>
<div class="cell row-3 col-2"></div>
<div class="cell row-3 col-3"></div>
<button>X</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490219.html
上一篇:用于聊天對話的跳點
