我想实现如下效果,一个listitem,前后各有一个图标,中间的文本居中显示,可是现在始终无法垂直居中,搞了半天了,很困惑。求助。请修改 .business_name这个类的样式。
代码如下:
<template>
<div id="business_item_container">
<div class="start_icon">
<img class="icon_img" src="@/assets/logo.png"/>
</div>
<div class="item_name">
<p class="business_name">align center</p>
</div>
<div class="end_icon">
<img class="icon_img" src="@/assets/logo.png"/>
</div>
</div>
</template>
<script>
export default {
name: "BusinessItem",
props: ['itemName'],
methods: {
onBusinessItemClick() {
window.console.log('clicked!');
}
}
}
</script>
<style scoped>
#business_item_container {
height: 100px;
margin: 10px 4px 4px 4px;
padding: 10px;
border-radius: 4px !important;
box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.3) !important;
text-align: center;
}
.start_icon {
position: relative;
display: inline-block;
height: 100%;
width: 40px;
background-color: red;
}
.item_name {
position: relative;
display: inline-block;
height: 100%;
width: calc(100% - 2 * 40px);
background-color: green;
}
.business_name {
width: 100%;
height: 20px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background-color: yellow;
}
.end_icon {
position: relative;
display: inline-block;
height: 100%;
width: 40px;
background-color: red;
}
.icon_img {
width: 30px;
height: 30px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
</style>
效果图如下:
黄色的段落没有在父容器(绿色区块)中垂直居中。
加上margin:0; 即可