SharePoint 2010 corev4.css更改未反映子网站

时间:2011-01-12 11:21:11

标签: css sharepoint sharepoint-2010 sharepoint-designer

当我们对SharePoint 2010网站根目录中的_themes文件夹中的corev4.css进行更改时,它会显示在根URL上,但不显示在任何子网站上,即使我们选中了“重置所有子网站以继承”复选框系统主页面设置“。

  

http://SiteName/_Layouts/ChangeSiteMasterPage.aspx

物理变化是存在的,所以我们知道MasterPage是继承的,但设计/ css更改不在子网站上.....

为什么?

修改

好的,我设法通过在我的MasterPage的head标签中添加以下代码行来使所有子网站看起来都一样。它有用。

<SharePoint:CssRegistration Name="/_styles/S1.css" runat="server" EnableCssTheming="true" After="true"/>

但是现在当我在我的任何网站中更改主题时,它确实将其更改为正确的主题,但它忽略了我的S1.css中的cnanges

5 个答案:

答案 0 :(得分:4)

如果您要在自己的自定义Css文件中添加对corev4.css样式的覆盖并使用站点设置作为备用css文件引用(与您可以更改母版页的页面相同),那将更干净(并且是最佳实践) )

它会比corev4.css更晚加载,因此它会使用你的样式而不是开箱即用的样式。

修改

将custom.css添加到您的站点(即在样式库中)。然后将站点指向该文件(该设置称为备用css,可以在look&amp; feel - &gt; masterpage下找到)。

在自定义Css中,定义与corev4.css中名称相同的样式。这种覆盖样式因为sharepoint将在引用corev4.css之后引用您的CSS文件。

所以说你想要覆盖搜索区域的某些样式,你可以在你的CSS中定义一个名为.s4-search的样式。通过在此定义规则,corev4.css中同一类中的相同规则将被覆盖

答案 1 :(得分:1)

母版与他们有很大关系继承因为所有内容都由SharePoint:CssLink component located in the master.

管理

在SharePoint 2010中管理CSS和主题非常困难。

我花了几个小时讨论这个话题。

你可以检查一下......

http://mosshowto.blogspot.com/2010/06/sharepoint-2010-registering-css.html

并且还有一个我想到艾蒂安的答案:

http://mosshowto.blogspot.com/2009/12/sharepoint-2010-wiki-styles.html

现在 Bittersweet 主题应用于网站,如果您尝试修改corev4.css文件,您将看不到任何修改,因为CSS现在存储在文件中由SharePoint 2010自动生成并位于具有此类网址的网站文件夹中:

/_themes/20/corev4-8A0ABD2F.css?ctag=21

只有在应用SharePoint网站主题的默认选项(即无主题)时,SharePoint网站才会重复使用corev4.css文件。这意味着通过对themable/corev4.css文件应用修改来修改样式不是一个好主意,因为对于应用SharePoint 2010主题的任何网站,这些修改都不可见。 除了一种情况,如果我们要删除Out of The Box版本 SharePoint 2010 提供的样式,这是值得的。我们稍后将在现实世界的例子中说明这种情况。 这导致寻找一种方法来修改自定义文件中的样式

希望有帮助...

马克

答案 2 :(得分:0)

子网站将拥有自己的_themes文件夹。这就是你可能没有看到子网站发生变化的原因。

2007年,core.css曾经在样式库中,因此这个问题从未发生过。

您可以检查您的样式库是否具有主页引用的CSS吗?这是你理想情况下应该修改的CSS而不是_themes下的一个。

答案 3 :(得分:0)

MasterPage与主题继承关系不大。

为了继承主题,您需要激活各种发布功能(至少是站点作用域,也可能是Web作用域),然后您将获得站点设置=&gt;中的选项。主题页面重置子网站以继承主题。

正如Colin所说,修改corev4.css文件并不是一个理想的选择,因为Microsoft Service Pack会更新它并覆盖您的更改。

答案 4 :(得分:0)

从我的理解它没有存储在样式库中,所以在那种情况下它将存储在14hive中:

不要覆盖sharepoint corev4.css,而是以另一种风格再次使用它,如果你想覆盖相同的id或类,那就好了!在每个项目之后使用!important:例如:

.S4-td
{
   width:100% !important;
}

重要的任何其他css!有After =“corev4.css”也会这样做;)但是如果你想明确地说你只想要那种风格那么我会把这个方法放在上面!

在自定义css中使用以上内容在masterpage中使用它:

<!-- link to our custom css  -->
<SharePoint:CssRegistration ID="CssRegistration1" name="/_layouts/customcss/css/style.css" After="corev4.css" runat="server"/>

<!-- link to our custom css  -->
<SharePoint:CssRegistration ID="CssRegistration1" name="/Style%20Library/style.css" After="corev4.css" runat="server"/>

仅供参考,如果你想在上面做,但想知道v4中的类和id是什么,而不是它在这里:

  

C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server   扩展\ 14个\ TEMPLATE \ LAYOUTS \ 1033 \ STYLES \ corev4.css

在你的情况下同样适用于上述!

<SharePoint:CssRegistration ID="CssRegistration1" Name="/_styles/S1.css" After="corev4.css" runat="server"/>

应该做的伎俩;)

https://sharepoint.stackexchange.com/questions/71591/where-is-corev4-css-located-in-sharepoint-designer-2013