扫码关注官方订阅号
无论浏览器宽度怎么改变,都保证左边这个p宽度固定为300px,右边宽度随浏览器宽度自适应,且两个p的高度和浏览器当前高度一致
走同样的路,发现不同的人生
#left { position: fixed; left: 0; top: 0; height: 100vh; width: 300px; /* background: blue; *//* 解开此处注释来查看效果 */ } #right { position: fixed; left: 300px; top: 0; height: 100vh; width: calc(100vw - 300px); /* 如果浏览器不支持CSS3 calc方法,可以使用js计算宽度 */ /* background: red; *//* 解开此处注释来查看效果 */ }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> body{ margin:0; padding:0; height:100%; } .left{ width:300px; height:100%; background-color:red; float: left; } .right{ height:100%; float: left; background-color:yellow; } .box{ position: absolute; height:100%; width:100% } </style> <body> <p class="box"> <p class="left">111</p> <p class="right">11111</p> </p> </body> </html>
这样的话右边宽度会随内容填充来适应,如果可以的话可以考虑用Js控制下
看了以上几种方法似乎都解决不了啊,或者说是纯CSS方法不行,在有的浏览器下calc(100vw-300px)没有用。我只能用js来替换这一条了,right.style .width = (document.document.clientWidth - 300)+ "px";希望对你有用!
calc(100vw-300px)
right.style .width = (document.document.clientWidth - 300)+ "px"
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo</title> <style type="text/css"> * { margin: 0; padding: 0; } html, body { height: 100%; } .layout { height: 100%; } .layout:before, .layout:after { content: ' '; display: table; } .layout:after { clear: both; } .layout .left { width: 300px; height: 100%; float: left; background-color: #000; } .layout .right { height: 100%; overflow: hidden; background-color: #ff0000; } </style> </head> <body> <p class="layout"> <p class="left"></p> <p class="right"></p> </p> </body> </html>
利用了BFC
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这样的话右边宽度会随内容填充来适应,如果可以的话可以考虑用Js控制下
看了以上几种方法似乎都解决不了啊,或者说是纯CSS方法不行,在有的浏览器下
calc(100vw-300px)没有用。我只能用js来替换这一条了,right.style .width = (document.document.clientWidth - 300)+ "px";希望对你有用!
利用了BFC