假设我有一个 980px 居中的内容区域,但有一个背景元素从屏幕左侧一直扩展到内容区域的 80%。在没有 JavaScript 干预或在 body 上使用背景图像的情况下,你如何做到这一点?
编辑:
这是一个视觉概念的指导:http: //i.imgur.com/36tCm.jpg。黄色标题扩展到窗口左侧,位于内容框区域之外。
假设我有一个 980px 居中的内容区域,但有一个背景元素从屏幕左侧一直扩展到内容区域的 80%。在没有 JavaScript 干预或在 body 上使用背景图像的情况下,你如何做到这一点?
编辑:
这是一个视觉概念的指导:http: //i.imgur.com/36tCm.jpg。黄色标题扩展到窗口左侧,位于内容框区域之外。
你用 css 处理这个问题
#inner{
background:#fff;
width:80%;
position:absolute;
left:0;
top:0;
}
你应该为它的父母设置这种风格
#parent{
position:relative;
}
例如 :
<div id="parent">
<div id="inner"></div>
</div>
#pageheader
您可以通过一些视觉技巧来实现这一点——即,通过使用两个黄色 div 来创建元素的视觉效果。
这是一个说明效果的 JSFiddle。
这是一些示例 HTML:
<body>
<div id="yellowBar">
<div id="content">
<div id="pageHeader">
<!--the rest of your HTML...-->
然后,你的 CSS:
#yellowBar {
height: (set appropriate height here);
background: yellow (set appropriate hex code here);
position: absolute;
top: (set appropriate top value so the #yellowBar nudges up against the #pageHeader visually);
width: 50%;
left: 0px;
}
#pageHeader {
height: (same height as #yellowBar);
background: (same color as yellowBar);
width: 80%;
/*any other CSS rules*/
}
您可以在 980px 容器之前使用 div 元素获得悬垂效果,并提供与标题元素所在位置相匹配的位置
在屏幕截图中,左侧有橙色悬垂,右侧有黑色悬垂,因此这是 HTML 结构(或者,您可以使用单个 div 和 css 渐变来创建悬垂,以创建高达 50% 的橙色,然后将另一个变为黑色50%)
<div class="container-outer">
<div class="header-overhang header-left"></div>
<div class="header-overhang header-right"></div>
<div class="container">
<div class="sidebar">
sidebar area
</div>
<div class="header">
PAGE HEADER
</div>
<div class="content">
content text
</div>
</div>
</div>
CSS:
.container-outer {background-color:#BDC7D2;border-top:60px solid #050912;}
.header-overhang {height:72px;width:50%;position:absolute;top:60px;}
.header-left {left:0;background-color:#FDC103;}
.header-right {right:0;background-color:#050912;}
.container {width:980px;margin:0 auto;position:relative;}
.sidebar {float:right;width:20%;height:220px;line-height:220px;text-align:center;border-top:5px solid #d7e0e9;border-bottom:3px solid #d7e0e9;background-color:#fff;}
.header {height:72px;line-height:72px;padding-left:40px;width:80%;background-color:#FDC103;}
.content {padding:50px 40px 120px 120px;background:#050912;color:#fff;}