我正在制作一个ASP.NET MVC5网络应用程序。默认模板使用bootstrap,几乎适用于所有页面。但是我需要一个页面才能拥有width: 100%
。
我想使用的视图是局部视图,因此它将在.container
(参见下面的代码)以及其他部分视图中呈现。
<div class="container">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
所有这些都很流畅,但我需要这个宽度为100%。这是一种优雅的方式吗?
答案 0 :(得分:2)
在局部视图中,您可以使用jQuery修改容器div的CSS。这会在渲染视图时更改宽度,但不会影响其他页面。
编辑:正如OP指出的那样,Bootstrap的JS将重置窗口大小调整的宽度。所以我们必须这样做:$(document).ready(function(){
setWidthOfContainer();
$(window).resize(setWidthOfContainer);
});
function setWidthOfContainer(){
console.log("Setting width of container to 100%.");
$('div.container').css('width','100%');
}
请参阅此处的小提琴:http://jsfiddle.net/GqRd7/
答案 1 :(得分:0)
我设法通过制作呈现的内容absolute
和left: 0
的位置来解决它,但<footer>
隐藏在它后面,所以我必须单独照顾那个(或完全删除它)。不是我希望的优雅解决方案,但有效。
答案 2 :(得分:0)
我遇到了类似的问题,其中容器在布局中使用并且适用于大多数页面,但我想在容器中使用奇数全宽元素。
从Bootstrap 3开始,您可以使用.container-fluid
类来获得100%宽度的内容。但是,在.container
中使用此功能无效,因为它受.container
宽度的限制。以下是我遇到的一些选项/解决方法:
如果始终在容器内容的开头或结尾使用100%宽度内容,则可以在布局页面中定义部分,并在其中插入100%宽度元素。
<强>布局:强>
<div class="container-fluid">
@RenderSection("containerFluid", required: false)
</div>
<div class="container">
@RenderBody()
</div>
查看:强>
@section containerFluid
{
<div>Full width content.</div>
}
<div>Other content</div>
在您的情况下,如果您在该页面上没有其他内容,则可以将整个页面放在该部分中。
如果它是一个需要全宽的整页,你可以让它使用不同的布局。将partials用于公共代码,并将.container
元素更改为.container-fluid
。
正常布局:
<!DOCTYPE html>
<html lang="en">
@Html.Partial("_LayoutHead")
<body>
@Html.Partial("_Navbar")
<div class="container">
@RenderBody()
</div>
@Html.Partial("Footer")
</body>
</html>
替代布局
<!DOCTYPE html>
<html lang="en">
@Html.Partial("_LayoutHead")
<body>
@Html.Partial("_Navbar")
<div class="container-fluid">
@RenderBody()
</div>
@Html.Partial("Footer")
</body>
</html>
我不会真的推荐这个,因为它非常hacky,并且会显示错误,但它确实可以编译和工作。如果您在内容的某个位置有某个元素,无论出于何种原因您想要全宽,都可以使用此方法。
查看:强>
<div>Some normal content here.</div>
</div> <!--This shows an error for missing a starting tag. The actual starting tag is on the layout page.-->
<div class="container-fluid">
<div>Full width div</div>
</div>
<div class="container"> <!--This shows an error for missing an ending tag. It actually gets closed using the end tag in the layout page-->
<div>Back to normal</div>