下面是CSS制作可输入内容的table表格的完整攻略。
一、准备工作
在开始制作可输入内容的table表格之前,需要先准备好以下工作:
- HTML文档中已经存在一个table元素;
- 在table元素中已经为每个单元格创建好了input元素。
二、基本样式设置
首先,我们需要对table表格进行基本的样式设置,包括调整边框、字体大小、行高等等。这里我将以一个示例表格来说明:
table {
border-collapse: collapse;
font-size: 14px;
line-height: 1.5;
width: 100%;
}
td, th {
border: 1px solid #ccc;
padding: 8px;
text-align: center;
}
上面的代码将表格设置为100%宽度,边框为1px的实线,单元格内部有8px的间距,并且文字居中显示。
三、通过伪类设置输入框样式
接下来,我们需要通过CSS伪类来设置输入框的样式。这里我将以一个显示姓名、年龄、职业的表格为例:
td:nth-child(1) input[type="text"],
td:nth-child(2) input[type="number"],
td:nth-child(3) select {
width: 100px;
padding: 6px 10px;
font-size: 14px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
td:nth-child(3) select {
width: 120px;
}
上面的代码中,我们使用伪类:nth-child()来选择特定的单元格,然后分别为不同类型的输入框设置不同的样式,如宽度、内边距、字体大小、边框样式等等。这里的select是下拉框,需要额外设置一个width属性。
四、使用JavaScript完成动态添加表格行
最后,我们需要使用JavaScript来实现动态添加表格行的功能。这里我将演示一个简单的示例,为一个带有“添加行”按钮的表格添加行:
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="name"></td>
<td><input type="number" name="age"></td>
<td>
<select name="job">
<option value="">请选择</option>
<option value="programmer">程序员</option>
<option value="designer">设计师</option>
<option value="writer">作家</option>
</select>
</td>
</tr>
</tbody>
</table>
<button id="add-row">添加行</button>
var addRowBtn = document.getElementById('add-row');
addRowBtn.addEventListener('click', function() {
var tbody = document.querySelector('table tbody');
var tr = document.createElement('tr');
tr.innerHTML = '<td><input type="text" name="name"></td><td><input type="number" name="age"></td><td><select name="job"><option value="">请选择</option><option value="programmer">程序员</option><option value="designer">设计师</option><option value="writer">作家</option></select></td>';
tbody.appendChild(tr);
});
上面的代码中,当用户点击“添加行”按钮时,会动态地创建一个tr元素,并将其添加到表格的tbody元素中。注意,在创建tr元素时,我们需要将每个单元格的HTML代码手动设置进去。
五、示例说明
以下是两个示例,一个是仅含一个input元素的表格,另一个是包含多种类型input元素和select元素的表格:
示例一:
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>地址</th>
<th>电话</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="number" name="id"></td>
<td><input type="text" name="name"></td>
<td><input type="text" name="address"></td>
<td><input type="tel" name="phone"></td>
</tr>
</tbody>
</table>
示例二:
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>职业</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="name"></td>
<td><input type="number" name="age"></td>
<td>
<label><input type="radio" name="gender" value="male">男</label>
<label><input type="radio" name="gender" value="female">女</label>
</td>
<td>
<select name="job">
<option value="">请选择</option>
<option value="programmer">程序员</option>
<option value="designer">设计师</option>
<option value="writer">作家</option>
</select>
</td>
</tr>
</tbody>
</table>
以上就是CSS制作可输入内容的table表格的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS制作可输入内容的table表格 - Python技术站