1

SharePointサイトで別のルックアンドフィールを作成しようとしています。SharePoint Designerのフォームタグの下で、メインコンテンツの幅を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 onload="if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();">

mainContentが爆発します。ヘッダーの何かが全幅に広がり、下部の一部のパネルは960pxのままです。

4

1 に答える 1

1

あなたは私に興味を持ったので、あなたの問題を再現しました。デフォルトでは、JavaScript は計算に基づいて幅をインライン化しようとします。ただし、必要なのは、ラッピング コンテナーにクラス s4-notsetwidth を設定することです。
これがあなたの問題を修正するために私がしたことです
これを頭に追加してください

<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>

次に、s4-workspace を見つけます (これは #s4-bodyContainer の直接の親であり、クラス s4-nosetwidth を追加します。これでうまくいくはずです。これら 2 つの参照を使用して、目的を正確に達成します (リボンを揃えるかどうかは不明です)。 、Randy Drisgill の投稿、およびTom Wilson の投稿

于 2012-08-08T18:06:16.533 に答える