<div class="ul-form-table">
<table class="ul-form-table__table">
<tbody>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">输入</td>
<td class="ul-form-table__control">
<input type="text" name="input-1" placeholder="请输入" class="ul-input">
</td>
<td class="ul-form-table__label">选择框</td>
<td class="ul-form-table__control">
<select name="city" class="ul-select" required>
<option value="">请选择</option>
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
<option value="4">杭州</option>
</select>
</td>
<td class="ul-form-table__label">复选框</td>
<td class="ul-form-table__control">
<label class="ul-checkbox">
<input type="checkbox" name="like[write]">
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">写作</span>
</label>
<label class="ul-checkbox">
<input type="checkbox" name="like[read]" checked>
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">阅读</span>
</label>
<label class="ul-checkbox">
<input type="checkbox" name="like[dai]">
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">发呆</span>
</label>
</td>
</tr>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">单选框</td>
<td class="ul-form-table__control" colspan="5">
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">国产</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">日韩</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">欧洲</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">美国</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="女" checked>
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">俄罗斯</span>
</label>
</td>
</tr>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">文本域</td>
<td class="ul-form-table__control" colspan="5"><textarea
name=""
class="ul-textarea"
rows="3"
placeholder="请输入内容"
></textarea></td>
</tr>
</tbody>
</table>
</div>
// 表格表单组件样式
// --------------------------------------------------
.ul-form-table {
width: 100%;
&__table {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
text-align: center;
background-color: $color-white;
border: 1px solid $color-border;
border-radius: $radius-base;
overflow: hidden;
}
&__row {
border-bottom: 1px solid $color-border;
&:last-child {
border-bottom: none;
}
}
&__label {
padding: $space-md $space-sm;
background-color: $color-bg;
color: $color-text-secondary;
font-weight: $font-weight-medium;
text-align: center;
white-space: nowrap;
border-right: 1px solid $color-border;
width: 80px;
}
&__control {
padding: $space-sm $space-md;
text-align: left;
.ul-input,
.ul-textarea,
.ul-select {
width: 100%;
margin: 0;
}
.ul-checkbox,
.ul-radio {
margin-right: $space-lg;
margin-bottom: $space-sm;
vertical-align: middle; // 确保垂直对齐
&:last-child {
margin-right: 0;
}
}
}
// 响应式设计
@include media-breakpoint-down(md) {
&__table {
border: none;
border-radius: 0;
}
&__row {
display: block;
border-bottom: 1px solid $color-border;
padding: $space-md 0;
}
&__label {
display: block;
width: 100%;
text-align: left;
border-right: none;
border-bottom: 1px solid $color-border;
margin-bottom: $space-sm;
padding: $space-sm;
}
&__control {
display: block;
padding: $space-sm;
.ul-checkbox,
.ul-radio {
display: block;
margin-right: 0;
margin-bottom: $space-sm;
}
}
}
}
.ul-form-table {
width: 100%;
}
.ul-form-table__table {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
text-align: center;
background-color: var(--ul-color-white);
border: 1px solid var(--ul-color-border);
border-radius: 4px;
overflow: hidden;
}
.ul-form-table__row {
border-bottom: 1px solid var(--ul-color-border);
}
.ul-form-table__row:last-child {
border-bottom: none;
}
.ul-form-table__label {
padding: 16px 8px;
background-color: var(--ul-color-bg);
color: var(--ul-color-text-secondary);
font-weight: 500;
text-align: center;
white-space: nowrap;
border-right: 1px solid var(--ul-color-border);
width: 80px;
}
.ul-form-table__control {
padding: 8px 16px;
text-align: left;
}
.ul-form-table__control .ul-input, .ul-form-table__control .ul-textarea, .ul-form-table__control .ul-select {
width: 100%;
margin: 0;
}
.ul-form-table__control .ul-checkbox, .ul-form-table__control .ul-radio {
margin-right: 24px;
margin-bottom: 8px;
vertical-align: middle;
}
.ul-form-table__control .ul-checkbox:last-child, .ul-form-table__control .ul-radio:last-child {
margin-right: 0;
}
@media (max-width: 767.98px) {
.ul-form-table__table {
border: none;
border-radius: 0;
}
.ul-form-table__row {
display: block;
border-bottom: 1px solid var(--ul-color-border);
padding: 16px 0;
}
.ul-form-table__label {
display: block;
width: 100%;
text-align: left;
border-right: none;
border-bottom: 1px solid var(--ul-color-border);
margin-bottom: 8px;
padding: 8px;
}
.ul-form-table__control {
display: block;
padding: 8px;
}
.ul-form-table__control .ul-checkbox, .ul-form-table__control .ul-radio {
display: block;
margin-right: 0;
margin-bottom: 8px;
}
}
<view class="ul-form-table">
<table class="ul-form-table__table">
<tbody>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">输入</td>
<td class="ul-form-table__control">
<input type="text" name="input-1" placeholder="请输入" class="ul-input">
</td>
<td class="ul-form-table__label">选择框</td>
<td class="ul-form-table__control">
<select name="city" class="ul-select" required>
<option value="">请选择</option>
<option value="0">北京</option>
<option value="1">上海</option>
<option value="2">广州</option>
<option value="3">深圳</option>
<option value="4">杭州</option>
</select>
</td>
<td class="ul-form-table__label">复选框</td>
<td class="ul-form-table__control">
<label class="ul-checkbox">
<input type="checkbox" name="like[write]">
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">写作</span>
</label>
<label class="ul-checkbox">
<input type="checkbox" name="like[read]" checked>
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">阅读</span>
</label>
<label class="ul-checkbox">
<input type="checkbox" name="like[dai]">
<span class="ul-checkbox__indicator"></span>
<span class="ul-checkbox__label">发呆</span>
</label>
</td>
</tr>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">单选框</td>
<td class="ul-form-table__control" colspan="5">
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">国产</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">日韩</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">欧洲</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="男">
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">美国</span>
</label>
<label class="ul-radio">
<input type="radio" name="sex" value="女" checked>
<span class="ul-radio__indicator"></span>
<span class="ul-radio__label">俄罗斯</span>
</label>
</td>
</tr>
<tr class="ul-form-table__row">
<td class="ul-form-table__label">文本域</td>
<td class="ul-form-table__control" colspan="5"><textarea
name=""
class="ul-textarea"
rows="3"
placeholder="请输入内容"
></textarea></td>
</tr>
</tbody>
</table>
</view>