2013-05-07 62 views
0

图像显示了我正在尝试完成的操作。所有3个div都包含在800px的包装中。但第二个div的背景延伸了整个身体的宽度。你可以这样做保持div的宽度与包装相同,但是使背景全宽

enter image description here

+0

为了得到像你想要的效果可能需要一些额外的元素(伪元素),那会好吗? – 2013-05-07 01:52:19

+0

@MarcAudet Hi Marc,在发布这个问题后,我多了一些想法,想出了一种使用额外div的方法,所以如果你的方式使用额外的div,那对我来说没问题。基本上我的方法是删除单独的外包装,并用单独的包装(在这种情况下,因为我需要打破特殊的div之前的东西,特殊的div后面的东西和特殊的div本身)的独立包装。我很想看到你的代码,请发帖。 – sameold 2013-05-07 01:57:22

+0

您的方法与我以前用于类似问题的方法类似。我正在尝试一些绝对的元素。如果我得到一些体面的东西,我会发布它。感谢您的反馈。 – 2013-05-07 02:00:43

回答

1

我有近identitical到一个由patkay的解决方案。

我的HTML:

<div class="outer-wrapper"> 
    <div class="inner-wrapper"> 
     <div class="content">Content 1...</div> 
    </div> 
    <div class="inner-wrapper noted"> 
     <div class="content">Content 2...</div> 
    </div> 
    <div class="inner-wrapper"> 
     <div class="content">Content 3...</div> 
    </div> 
</div> 

我的CSS:

.outer-wrapper { 
    width: 100%; 
    outline: 1px dotted blue; 
} 
.inner-wrapper { 
    width: inherit; 
} 
.inner-wrapper.noted { 
    background-color: gray; 
} 
.content { 
    width: 600px; 
    margin: 10px auto; 
    outline: 1px dotted red; 
} 

小提琴参考:http://jsfiddle.net/audetwebdesign/Nbu7G/

从本质上讲,我用的是.outer-wrapper设置控制整体宽度,然后继承宽度为.inner-wrapper,用于通过额外的类呼叫.noted设置背景色。

最内侧的容器.content具有固定的宽度(例如600px)。

额外的标记可以使用HTML5标记在语义上进行清理,但是此模式为您提供了很多使用背景图像的钩子等。

1

一种方法是有三个独立的div的那都是中心对齐在里面,有全宽背景和堆叠在彼此的顶部。

<div class="top"> 
    <div class="wrap"> 
     <p>Some content</p> 
    </div> 
</div> 

<div class="mid"> 
    <div class="wrap"> 
     <p>Some content</p> 
    </div> 
</div> 

<div class="bottom"> 
    <div class="wrap"> 
     <p>Some content</p> 
    </div> 
</div> 

的CSS是:

body { 
    text-align: center; 
} 

.top, .bottom { 
    background: #aaa; 
    width: 100%; 
} 

.mid { 
    background: #616161; 
    width: 100%; 
} 

.wrap { 
    width: 800px; 
    margin: 0 auto; 
    padding: 5px; 
} 
+0

我不会用文本对齐:在身体标记的中心,不需要,否则解决方案是相当不错的。 – 2013-05-07 02:23:01