这可能吗?我有Div2专门定位在Div1内。现在唯一的事情是我希望Div2跨越整个屏幕的宽度,而不是仅仅跨越Div1的宽度。
|----------------------------------------------------------|
| Browser |
| |
| |
| |
| |
| -------------------------------- |
| | Div1 (relative) | |
| | | |
| | | |
|-----------|------------------------------|---------------|
| | Div2 | |
| |(currently absolute & in Div1)| |
|-----------|------------------------------|---------------|
| | | |
| | | |
| | | |
| | | |
| -------------------------------- |
| |
| |
| |
|----------------------------------------------------------|
这是我现在拥有的CSS:
.page{
height: 300px;
width: 400px;}
.Div1{
float:left;
left: 50%;
height:200px;
width:100px;
position:relative;
background-color: red;
}
.Div2{
position:absolute;
top:21px;
width:100%;
height:24px;
background-color: yellow;
}
这是我当前问题的JSFiddle:http://jsfiddle.net/vBqgT/21/ 感谢。
答案 0 :(得分:1)
当然你可以这样做,但div2的位置是相对于div1给出的(因此左边:0可以使它与div1保持对齐)如果你让div2成为div1的子节点。如果您不想将它相对于div1放置,您可以将div2作为div1的兄弟,也可以从div1中删除position: relative;
。另一种方法是在div2上使用固定位置。所有这些都有可能不可取的副作用......
有时需要使用javascript来获得您想要的内容。例如,您想要在一个轴上与div1对齐,在另一个轴上与主体对齐。然后可能需要使用脚本。
答案 1 :(得分:1)
试试这个CSS:
.page{
height: 300px;
width: 100%;
border: 0px solid red;
}
.Div1{
margin: 0 auto;
height:200px;
width:100px;
background-color: red;
}
.Div2{
position:absolute;
top:21px;
width:100%;
height:24px;
background-color: yellow;
left:0;
}
答案 2 :(得分:1)
你真的不需要CSS3来做到这一点。由于div2
位于div1
内,因此宽度受div1
约束。因此,要使div2
宽于div1
:
.Div2{
width:150%;
}
你也可以这样做:
.Div2{
left: -25%;
}
调整div2
左边缘的开始位置。
但是,如果主要目标是让div2
采用正文的属性(在您的情况下为page
),请考虑将div2
的标记放在page
中,但不在div
内。然后调整div2
的顶部位置以在文档中向上或向下移动。