赞
踩
这个效果,其实和一侧固定,一侧自适应是一样的原理
以下代码分别用到了 position、float、display: flex / grid、calc
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .box { border: 1px solid #000; } .box1 { background-color: #f00; } .box2 { background-color: #aee; } .box3 { background-color: #ccc; } /** 第一种 定位 */ .absolute { position: relative; } .absolute .box1 { width: 200px; height: 300px; position: absolute; left: 0; top: 0; } .absolute .box2 { height: 200px; margin-left: 200px; margin-right: 200px; } .absolute .box3 { width: 200px; height: 300px; position: absolute; right: 0; top: 0; } /** 第二种 实现中间的宽度是随着文字的增加而变宽 而不是占满全部剩余空间 */ .float .box1 { width: 200px; height: 300px; float: left; } .float .box2 { height: 100px; /* 加这个是为了防止文字过多将左右盒子顶下来 */ max-width: calc(100% - 400px); display: inline-block; } .float .box3 { width: 200px; height: 300px; float: right; } /* 第三种 使用左右浮动 前两个必须是浮动的 第三个自适应 */ .float1 .box1 { width: 200px; height: 300px; float: left; } .float1 .box2 { width: 200px; height: 300px; float: right; } .float1 .box3 { height: 100px; } /** 第四种 flex */ .calc-flex { display: flex; } .calc-flex .box1 { width: 200px; height: 200px; } .calc-flex .box2 { width: calc(100% - 400px); } .calc-flex .box3 { width: 200px; height: 200px; } /** 第五种 grid */ .grid { display: grid; grid-template-columns: 200px calc(100% - 400px) 200px; grid-template-rows: 300px; } </style> </head> <body> <div class="box grid"> <div class="box1"></div> <div class="box2">222222sssssssssssssssssssssss</div> <div class="box3"></div> </div> </body> </html>
将对应类名,依次加到box上就能看到效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。