问:
elementplus折叠面板组件怎么让箭头在最左侧,且箭头右侧有两个按钮,展开和收缩的过程中右侧的两个按钮位置不会改变仍然和箭头在同一行?
回答:
但由于设计需要,需要将箭头放在最左边,通过f12代码调试发现header是flex布局
,因此修改后的面板部分代码如下:
<el-collapse accordion v-model="activeNames" @change="handleChange">
<el-collapse-item name="1">
<span class="collapse-title" slot="title">一致性 Consistency</span>
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
</el-collapse-item>
<el-collapse-item name="2">
<span class="collapse-title" slot="title">反馈 Feedback</span>
<div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
<div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
</el-collapse-item>
<el-collapse-item name="3">
<span class="collapse-title" slot="title">效率 Efficiency</span>
<div>简化流程:设计简洁直观的操作流程;</div>
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
</el-collapse-item>
<el-collapse-item name="4">
<span class="collapse-title" slot="title">可控 Controllability</span>
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
</el-collapse-item>
</el-collapse>
对标题部分设置为slot自定义,外层包裹一个自定义类collapse-title
,对这个类赋予样式,如下:
<style scoped lang='scss'>
::v-deep .collapse-title {
flex: 1 0 90%;
// 实线箭头在最左侧的核心,设置了order:1就实现了箭头在按钮左侧,否则箭头就在按钮右侧
order: 1;
.el-collapse-item__header {
flex: 1 0 auto;
order: -1;
}
}
</style>
这样我们就实现了箭头在右侧文字的左边或者我们可以将右侧的文字:
el-collapse accordion
el-collapse-item
template v-slot:title
span class= collapse-title
el-form-item
el-buttom @click.stop 查询
el-form-item
el-buttom @click.stop=xxx 新建
这样我们就将右侧的文字替换成了按钮,且这时候我们点击折叠面板的收缩展开箭头右侧的按钮也不会移动位置,还是在箭头的右侧,同时我们添加了@click.stop我们点击按钮也不会事件冒泡到下面的折叠面板。