gpt4 book ai didi

html - Vue-如何改变不同组件中相同元素的样式

转载 作者:行者123 更新时间:2023-11-28 11:21:32 26 4
gpt4 key购买 nike

我正在尝试将特定 div 的样式从一个组件更改为另一个组件。每个组件都附加到 App 组件中的模板并替换 <router-view></router-view>标签。 div #app 需要在 Hello.vue 中填充 172px组件,其余组件上为 0px。这可能吗,我该如何实现?

App.vue

<template>
<div id="app">
<div>
<img src="./assets/logo.png" align="center">
</div>
<router-view></router-view>
</div>
</template>

<script>
export default {
name: 'app'
}
</script>

<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
background-color: hsla(275, 97%, 50%, 0.57);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 0px;
height: inherit;
}

body{
height: inherit;
}

html{
height: 100%;
}
</style>

Hello.vue

<template>
<div class="hello">
<h1>{{ msg }}</h1>
<ul>
<li><h2><router-link to="/app/login">Login</router-link></h2></li>
<li><h2><router-link to="/app/about">About Us</router-link></h2></li>
</ul>
</div>
</template>

<script>
export default {
name: 'hello',
data () {
return {
msg: 'Welcome to Vue'
}
}
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

#app{
padding-top: 172px; /*This does not work*/
}

h1, h2 {
font-weight: normal;
}

ul {
list-style-type: none;
padding: 0;
}

li {
display: inline-block;
margin: 0 10px;
}

a {
color: #000000;
}
</style>

最佳答案

通过检查路由路径,有一种快速的方法(不确定这是否是最佳实践);假设 Hello.vue 是通过路径 /hello 呈现的:

<div id="app" :style="{ padding: $route.path === '/hello' ? '172px' : '0px' }">
...
</div>

关于html - Vue-如何改变不同组件中相同元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com