css - 如何在 vuetify 中堆叠复选框和图标
问题描述
我想要这样的东西(+ 是复选框,- 是删除图标):
+ |‾‾‾‾‾‾|
- |______|
这是我迄今为止尝试过的:
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-col cols="12" md="6" v-for="(choice, idx) in choices" :key="idx">
<v-text-field v-model="choice.text" outlined clearable type="text">
<template v-slot:prepend>
<v-col>
<v-checkbox v-model="choice.isCorrect" hide-details />
<v-icon color="red" left>remove_circle</v-icon>
</v-col>
</template>
</v-text-field>
</v-col>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
choices: [{
text: "Foo",
isCorrect: true
},
{
text: "Bar",
isCorrect: false
}
]
}
}
})
</script>
</body>
</html>
解决方案
老实说,为此创建一个单独的 div 似乎比使用 prepend 插槽更好,它有一些奇怪的自定义边距,不适合此目的。我已经编辑了您的代码以实现您想要的效果 - https://codepen.io/CodingDeer/pen/LYPbPxr。
我也将代码段放在这里,但由于某种原因,该图标在这里不起作用。
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-col cols="12" md="6" v-for="(choice, idx) in choices" :key="idx">
<v-row>
<div>
<div>
<v-checkbox
class="ma-0"
v-model="choice.isCorrect"
hide-details />
</div>
<v-icon color="red">remove_circle</v-icon>
</div>
<v-text-field v-model="choice.text" outlined clearable type="text">
</v-text-field>
</v-row>
</v-col>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
choices: [{
text: "Foo",
isCorrect: true
},
{
text: "Bar",
isCorrect: false
}
]
}
}
})
</script>
</body>
</html>
推荐阅读
- java - 如何正确使用具有多个值的枚举
- angular - 如何在 flickr Rest API 上使用照片 url 获取照片信息?
- java - RxAndroidBle - 长写和收听通知特性
- json - 多行字符串作为 Json 中的值
- elixir - Phoenix 模块未实现 Ecto Queryable
- python - pytest:如何测试项目相关目录的创建?
- swift - Vapor Swift - 从两个模型中获取数据
- javascript - Firestore 云函数对子集合值求和
- javascript - 用新的元标记覆盖元标记
- python - 使用 MicroPython 时刷新 WinDir