1

我正在尝试在我的 sharepoint 网站上打造不同的外观和感觉。我尝试在 sharepoitn 设计器的表单标签下将主要内容的宽度缩小到 960px。当我第一次刷新页面时,它会将主要内容渲染到 960 像素,但是当页面钓鱼加载主要内容时,它会自行拉伸到整个屏幕的宽度。

我发现这是因为在 body 标记中运行的 onload 脚本。但我不能删除这个脚本,因为这项工作对页面功能有副作用。

函数是_spBodyOnLoadWrapper()。

有人知道这个功能吗?或者有谁知道如何解决这个问题?

更新#1:

我的css代码如下..我将这个类添加到母版页的主窗体中:

.mainContent
{
width: 960px;
height:100% !important;
min-height:100% !important;
padding-top: 10px;
margin-left: auto;
margin-right: auto;
direction:rtl;
}

更新#2:

我使用 v4.master 模板。我已从表单标签中取出功能区。它直接在body标签之后。因为我想让丝带在顶部伸展。但是当我添加这行代码时

<body onload="if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();">

mainContent 爆炸了。标题处的某些东西在整个宽度上延伸,底部的一些面板保持 960 像素。

4

1 回答 1

1

you got me interested so I recreated your issue. By default, the javascript will try to inline the width based on its calculations. However, what you need is to set the class s4-notsetwidth on a wrapping container.
Here is what i did to fix your issue
Add this to the head

<style type="text/css">
#s4-bodyContainer {
    width: 960px;
    height:100% !important;
    min-height:100% !important;
    padding-top: 10px;
    margin-left: auto;
    margin-right: auto;
}
/* Aligns the Top Bars */
.ms-cui-ribbonTopBars {
width: 960px!important;
margin-left:auto;
margin-right:auto;
}

/* Turns off the border on the bottom of the tabs */
.ms-cui-ribbonTopBars > div {
border-bottom:1px solid transparent !important;
}
</style>

Then locate the s4-workspace (that's the immediate parent of #s4-bodyContainer and add class s4-nosetwidth. That should work for you. Use these two references to achieve exactly what you want (not sure if you want ribbon aligned or not), Randy Drisgill post and Tom Wilson's post.

于 2012-08-08T18:06:16.533 回答