布局叠加 完整代码 最外层的Container设置为relative,内部的几个box设置为absolute
< template>
< div class = "container" >
< div class = "box box1" > Box 1 < / div>
< div class = "box box2" > Box 2 < / div>
< div class = "box box3" > Box 3 < / div>
< / div>
< / template>
< script>
export default {
} ;
< / script>
< style scoped>
. container {
position : relative;
width : 300px;
height : 300px;
background : #888888 ;
}
. box {
position : absolute;
width : 100px;
height : 100px;
text- align: center;
line- height: 100px;
}
. box1 {
background- color: red;
top : 50px;
left : 50px;
}
. box2 {
background- color: blue;
top : 100px;
left : 100px;
}
. box3 {
background- color: green;
top : 150px;
left : 150px;
}
< / style>
如果Container不设置relative则,内部的box则会相对整个页面进行布局 使用绝对布局,一个居中,一个居右。 其中box1,左上距离父布局50%,然后自身偏移50%,使其居中
. box1 {
background- color: red;
top : 50 % ;
left : 50 % ;
transform : translate ( - 50 % , - 50 % ) ;
}
< template>
< div class = "container" >
< div class = "box box1" > Box 1 < / div>
< div class = "box box3" > Box 3 < / div>
< / div>
< / template>
< script>
export default {
} ;
< / script>
< style scoped>
. container {
position : relative;
width : 300px;
height : 300px;
background : #888888 ;
}
. box {
position : absolute;
width : 100px;
height : 100px;
text- align: center;
line- height: 100px;
}
. box1 {
background- color: red;
top : 50 % ;
left : 50 % ;
transform : translate ( - 50 % , - 50 % ) ;
}
. box3 {
background- color: green;
top : 50 % ;
right : 0 ;
transform : translateY ( - 50 % ) ;
}
< / style>
水平方向线性布局 设置父布局 display: flex; flex-direction: row;子布局取消position: absolute;即可
. container {
display : flex;
flex- direction: row;
width : 300px;
height : 300px;
background : #888888 ;
}
. box {
width : 100px;
height : 100px;
text- align: center;
line- height: 100px;
}