Impossibile rimuovere la sottolineatura dal collegamento del router Vue
Penso di aver provato quasi tutto cercando di rimuovere la sottolineatura da router-link
.
Questo è il mio codice:
<router-link :to="{name: 'Plan'}">
<div>Plan Your Trip</div>
<div class='expander'>
<router-link :to="{name: 'Plan'}">COVID-19</router-link>
<router-link :to="{name: 'Plan'}">Visa</router-link>
<router-link :to="{name: 'Plan'}">Essentials</router-link>
</div>
</router-link>
Sto cercando di rimuovere la sottolineatura solo dai collegamenti secondari .
Cose che ho provato:
Stile in linea
<router-link style="text-decoration: none !important;" :to="{name: 'Plan'}">COVID-19</router-link>
Assegna classe
<router-link class="sub-link" :to="{name: 'Plan'}">COVID-19</router-link>
<style scoped>
.sub-link{text-decoration: none !important;}
</style>
Dichiara tag
<router-link tag="div" :to="{name: 'Plan'}">COVID-19</router-link>
<style scoped>
div{text-decoration: none !important;}
</style>
Assegna un tag separato + Declare class per quel tag
<router-link :to="{name: 'Plan'}">
<div class="sub-link">COVID-19</div>
</router-link>
Questi sono solo alcuni elenchi , ho letteralmente provato tutti i metodi possibili a cui riesco a pensare ... Mi manca qualcosa sulla personalizzazione di Vue router-link
?
Risposte
Utilizza display: inline-block;text-decoration:none;
, il trucco è visualizzare: inline-block; .
Stati delle specifiche CSS
Per i contenitori a blocchi che stabiliscono un contesto di formattazione inline, le decorazioni vengono propagate a un elemento inline anonimo che avvolge tutti gli elementi figlio a livello di flusso inline del contenitore a blocchi. Per tutti gli altri elementi viene propagato a tutti gli elementi secondari in flusso. Si noti che le decorazioni del testo non vengono propagate ai discendenti mobili e posizionati in modo assoluto, né al contenuto dei discendenti atomici a livello di riga come i blocchi inline e le tabelle inline.
Esempio : il collegamento COVID-19
nei tuoi codici rimuoverà la sottolineatura.
<router-link :to="{name: 'Plan'}">
<div>Plan Your Trip</div>
<div class='expander'>
<router-link :to="{name: 'Plan'}" style="display: inline-block;text-decoration:none;">COVID-19</router-link>
<router-link :to="{name: 'Plan'}">Visa</router-link>
<router-link :to="{name: 'Plan'}">Essentials</router-link>
</div>
</router-link>
Di seguito è una demo:
let Layout = {
template: `<div>
<h4>Layout Page </h4>
<router-link to="/contact">
<div>
<p>Links<p>
<router-link to="/contact/add" style="display: inline-block;text-decoration:none;">Add1</router-link>
<router-link to="/addcontact">Add2</router-link>
</div>
</router-link>
<router-view></router-view>
</div>`
};
let Home = {
template: '<div>this is the home page. Go to <router-link to="/contact">contact</router-link> </div>'
};
let ContactList = {
// add <router-view> in order to load children route of path='/contact'
template: '<div>this is contact list, click <router-link to="/contact/add">Add Contact In sub Router-View</router-link> here to add contact<p><router-view></router-view></p> Or Click <router-link to="/addcontact">Add Contact In Current Router-View</router-link></div>'
};
let ContactAdd = {
template: '<div>Contact Add</div>'
}
let router = new VueRouter({
routes: [{
path: '/',
redirect: 'home',
component: Layout,
children: [{
path: 'home',
component: Home
},
{
path: 'contact',
component: ContactList,
children: [{
path: 'add',
component: ContactAdd
}]
},
{
path: 'addcontact', // or move ContactAdd as direct child route of path=`/`
component: ContactAdd,
}
]
}]
});
new Vue({
el: '#app',
components: {
'App': {
template: '<div><router-view></router-view></div>'
},
},
router
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vue-router.js"></script>
<section id="app">
<app></app>
</section>
L'esterno router-link
si applica text-decoration: underline
al suo testo interno e gli interni router-link
si applicano anche text-decoration: underline
al loro testo interno.
In questo momento hai essenzialmente doppie sottolineature applicate al tuo interiore router-links
.
Devi rimuoverlo da entrambi. Se hai bisogno di un altro elemento, text-decoration: underline
impostalo separatamente per quell'elemento.