2016-10-12 36 views
0

所以我有一个网站结构...CSS/BOOTSTRAP:使网格内的元素(.container/.row)全(屏)宽

body 
---- main.container 
--------- div.row 
-------------- div.content 

我注入自带一些内容的内容元素中从CMS ..

一切工作正常...但后来有一个模块里面全(屏幕宽度),所以.container外面走了需求 - 右边缘

所以在内容最后看起来像这样:

body 
---- main.container 
--------- div.row 
-------------- div.content 
-------------------- div.col-xs-12.module1 
-------------------- div.col-xs-12.module2 
-------------------- div.full-width.module3 
-------------------- div.col-xs-12.module4 

现在,。全宽类来实现真正全屏我去的位置是:绝对的,像这样的

.full-width{ 
    position: absolute; 
    left: 0; 
    width: 100%; 
} 

的问题是,很明显的位置是:绝对从流中删除元素,然后.module4出现在.module2和.module3之后​​。

现在,什么才是正确实现这一目标的最佳方法?

需要考虑的事情:

  • 全宽模块没有一个固定的高度,可能是什么,并取决于内部
  • 内容我没有确切的利润包装的/填充要素(内容/行)......因为它可以更嵌套,并再没有
    保证模块.row的直接子.....所以切缘阴性是行不通的

任何想法?

+0

[将其拆分成单独的“容器”](http:// stackov erflow.com/a/29073082/3585500)? – ourmandave

+0

你是什么意思?我不能,包装的应用程序已经存在...内容注入与ajax API调用,一切都加载后 –

+0

我不能让我的头你的问题。你希望.full-width也是100%?只需添加一个.col-xs-12类,它也可以像其他的一样宽。通过Bootstrap的工作方式以及您提供的示例,很难确定如何执行此操作。你可以在codepen中删除一个例子吗? – PeterS

回答

1

如果您想要一个全宽度的行,您必须使用bootstrap documentation中指定的.container-fluid类。

所以,你的网站结构应该看:

body 
---- main 
--------- div.container 
-------------- div.row 
------------------- div.col-xs-12.module1 
------------------- div.col-xs-12.module2 
--------- div.container-fluid 
-------------- div.row 
------------------- div.full-width.module3 
--------- div.container 
-------------- div.row 
------------------- div.col-xs-12.module4 

编辑

如果你不能改变你的HTML结构(IE11 +):

.full-width { 
    width: 100vw; 
    margin-left: -50vw; 
    left: 50%; 
} 

演示:http://www.bootply.com/tVkNyWJxA6

+0

如果我可以改变布局,我会...但我不能改变任何上面.content(在我的例子中) –

+0

我编辑了我的答案 – Seb33300

+0

由于某种原因,我的行总是被切成两半:/和前半部分是左在屏幕之外...您的示例虽然在bootply中运行 –