2014-02-10 51 views
1

所以我必須更改.aspx頁面的佈局,並且我不想爲它創建單獨的母版頁,所以我重寫了css在必要時使用!important作爲aspx佈局的母版頁。用「!important」覆蓋SharePoint 2010母版頁的css屬性

一切正常,除了一個屬性... #s4-bodyContainer有屬性min-width在母版頁中設置爲1550px !important,我需要將其更改爲1300px !important

如果我在我的頁面開頭放置了我的覆蓋CSS樣式,它不會覆蓋母版頁的樣式,因爲在母版頁中也有!important,並且在我寫入CSS後呈現。如果我把我的CSS放在頁面的末尾,它會覆蓋母版頁的樣式,但是隻有在頁面加載後纔會這樣做,所以每次進入該頁面或刷新它時,我都會在加載時看到一些小故障。

那麼,有沒有機會解決我的問題,而無需掌握母版頁或創建另一個?只需在.aspx頁面上使用css?

在此先感謝!

回答

1

!important總會產生問題,例如您現在正在經歷的問題。

覆蓋!important的唯一可能性是比原始聲明具有更高的CSS特異性。

那麼,什麼意思特殊性?內聯元素樣式是您可以獲得的最具體的樣式,因此在頁面佈局中,您可以使用所需的樣式將內聯樣式(醜陋!)添加到#s4-bodyContainer中。您可能需要爲這些事件添加!important,但您可以確定它們比母版頁樣式表中的樣式更具體。

如果您正在使用<SharePoint:CSSRegistration ...>可以使用酒店CssRegistration.After,讓你的CSS來特定CSS文件後加載的。因此,如果corev4.css中的寬度設置爲1550px !important,則可以在之後加載CSS文件,並使用!important

總而言之:解決方案非常難看。您不應在主頁面中使用!important,尤其是對於像min-width這樣的常規內容。