当前位置: 首页 > Web前端 > HTML

css布局:两边固定,中间自适应

时间:2023-04-02 11:31:45 HTML

.wrap{background:#eee;填充:20px;}p{保证金:0;}.left{宽度:200px;高度:200px;向左飘浮;背景:珊瑚;}.right{宽度:200px;高度:200px;浮动:对;背景:淡蓝色;}.middle{边距:0200px;背景:浅粉色;}四种常用方法及原理解析:浮动、浮动嵌入div、定位、flex。浮动.wrap{background:#eee;填充:20px;}p{保证金:0;}.left{宽度:200px;高度:200px;向左飘浮;背景:珊瑚;}.right{宽度:200px;高度:200px;浮动:对;背景:淡蓝色;}.middle{边距:0200px;背景:浅粉色;}我在左边

我在右边

我排在最后,但是我跑到了中间

原理:浮动元素和非浮动元素不在同一个三维空间。如果浮动不清晰,它下面的元素就会向上浮动。浮动元素的高度为0,浮动框的级别高于块级水平框,低于内联/内联块水平框。浮动内联div.wrap{background:#eee;填充:20px;}p{保证金:0;}.left{宽度:200px;高度:200px;向左飘浮;背景:珊瑚;margin-left:-100%;}.right{width:200px;高度:200px;向左飘浮;背景:淡蓝色;;向左飘浮;背景:浅粉色;}span{显示:内联块;边距:0200px;}我在中间

我在左边

我在右边

原理:三个元素全部浮动,主题元素100%满满一行,并且左右两侧的元素以负边距放置。在主题元素内部放置一个子元素,子元素margin:0200px防止内容被左右浮动元素覆盖。定位.wrap{background:#eee;位置:相对;}p{保证金:0;}.left{宽度:200px;高度:200px;背景:珊瑚;位置:绝对;左:0;顶部:0;}.right{宽度:200px;高度:200px;背景:淡蓝色;位置:绝对;右:0;顶部:0;}.中间{高度:200px;背景:浅粉色;0200px;}我在中间,我用margin来抵消左右定位元素占用的空间

我在左边,我是定位元素

我在右边,我是定位元素

原理:左右元素被定位,可以放在任意位置。中间元素使用margin:0200px防止内容被左右定位元素遮住。flex.wrap{背景:#eee;显示:flex}p{保证金:0;}.left{宽度:200px;高度:200px;背景:珊瑚;}.right{宽度:200px;高度:200px;背景:淡蓝色;}.middle{高度:200px;背景:浅粉色;flex:1;}我在左边

我在中间,flex:1自动占满剩余空间

我在右边

原理:flex布局,子元素默认水平排列。flex:01auto->默认,占用空间不跟随parent放大,跟随变小,原来宽度flex:11auto->auto,占用空间跟随parent放大,跟随缩小同时flex原来的width:00auto->none,占用的空间不跟着parent放大,也不跟着缩小,原来的widthflex:111->auto,占用空间跟随parent放大,同时跟随缩小,自动填充剩余空间