scoped是一個vue的指令,用來控制組件的樣式生效區域,加上scoped,樣式只在當前組件內生效,不加scoped,這個節點下的樣式會全局生效。
需要注意的是:一個組件的樣式肯定是用來美化自己組件結構的,不應該影響到其他的組件。
建議:只要定義的是單文件組件,一定要給style標簽加上scoped指令,從而防止組件之間的樣式沖突。
在vue文件中的style標簽上,有一個特殊的屬性:scoped。當一個style標簽擁有scoped屬性時,它的CSS樣式就只能作用於當前的組件,也就是說,該樣式只能適用於當前組件元素。通過該屬性,可以使得組件之間的樣式不互相污染。如果一個項目中的所有style標簽全部加上了scoped,相當於實現了樣式的模塊化。
現象:點發貨管理菜單時,左側菜單欄樣式就會發生變化:點擊發貨管理后,所有二級菜單緊靠左邊顯示。
原因分析:如果不加scoped屬性,則子組件會影響父組件的樣式,而父組件樣式變化后擠占了左側菜單的空間,導致所有菜單左移。
加上了scoped屬性之后:點擊發貨管理后,四個字居中顯示