我在SharePoint Online(2013)网站上有一个博客子网站,默认情况下有3个Web部件区域:BlogNavigator,Left和Right(从左到右排序)。
区域的布局令人沮丧,因为考虑到右侧区域右侧的可用空间量,包含场地实际内容的左侧区域相对较窄。
当我将所有Web部件从右侧区域移动到BlogNavigator时,左侧区域保持其大小,即使有向右扩展的空间。
我尝试在SP Designer中手动声明页面文件中的左侧区域ContainerWidth,我尝试将CSS file应用于页面以设置宽度,但似乎没有任何效果。
我甚至删除了页面文件中对Right区域的所有引用,将其完全删除,但Left区域仍保持原始宽度。
我有什么方法可以改变这个区域吗?
答案 0 :(得分:0)
开箱即用的SharePoint页面布局使用特殊的网格框架来布局不同的webpart区域。
此布局在布局css中定义,使用display: table
和display: table-cell
将区域定位在水平布局中。
表布局通常会导致类似于您所描述的奇怪的大小调整问题。
在我最近工作的一个项目中,我需要修复表格布局以使其更加严格,以便没有尺寸问题。我正在处理的网站是一个发布网站,所以我不确定你的博客上的类是否相同,但这里是我用来调整网格框架的CSS。
#DeltaPlaceHolderMain .ms-table {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-left: -15px;
margin-right: -15px;
width: auto; }
#DeltaPlaceHolderMain .ms-table > div[class*="tableCol"] {
-webkit-box-flex: 1;
-ms-flex: 1 0 auto;
flex: 1 0 auto;
padding-left: 15px;
padding-right: 15px;
box-sizing: border-box; }
#DeltaPlaceHolderMain .tableCol-75,
#DeltaPlaceHolderMain .tableCol-33,
#DeltaPlaceHolderMain .tableCol-25,
#DeltaPlaceHolderMain .tableCol-50 {
width: 100%;
display: block;
min-width: 0; }
#contentBox {
padding-left: 15px;
padding-right: 15px; }
#titleAreaRow {
display: table; }
#contentRow {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap; }
#sideNavBox {
margin-right: 5px; }
#contentBox {
min-width: 0;
margin: 0;
-webkit-box-flex: 1;
-ms-flex: 1 0;
flex: 1 0; }
#s4-titlerow,
#contentRow {
max-width: 1450px;
margin: 0 auto; }
@media screen and (min-width: 1020px) {
#DeltaPlaceHolderMain .tableCol-75 {
width: 66.666%; }
#DeltaPlaceHolderMain .tableCol-33 {
width: 33.333%;
}
#DeltaPlaceHolderMain .tableCol-25 {
width: 33.333%; }
#DeltaPlaceHolderMain .tableCol-50 {
width: 50%; } }
@media screen and (min-width: 1340px) {
#DeltaPlaceHolderMain .tableCol-75 {
width: 75%; }
#DeltaPlaceHolderMain .tableCol-25 {
width: 25%; } }
* {
outline: none; }
html {
-webkit-text-size-adjust: 100%; }
/* Sidenav */
#sideNavBox {
min-width: 180px;
max-width: 300px;
width: auto; }