CSS浮动+定位


参考:实现左边div固定宽度,右边div自适应撑满剩下的宽度的布局方式:https://www.cnblogs.com/yzhihao/p/6513022.html
下面使用的关键就是使用overflow:hidden开启右侧内容区的BFC,使得左边的浮动元素无法盖住右侧内容区,并且可以使得它们在同一行。而且当左边浮动元素宽度减小时,右侧内容区宽度将会自动撑大剩余宽度。
还有的话,就是高度需要层层设置成父元素高度的100%,不然高度就不能撑满了。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>.clearfix::before,.clearfix::after {content: "";display: table;clear: both;}/** STYLE 5*/#style-5::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);background-color: #F5F5F5;}#style-5::-webkit-scrollbar {width: 10px;background-color: #F5F5F5;}#style-5::-webkit-scrollbar-thumb {background-color: #0ae;background-image: -webkit-gradient(linear, 0 0, 0 100%,color-stop(.5, rgba(255, 255, 255, .2)),color-stop(.5, transparent), to(transparent));}#style-6::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0, 0,0, 0.3);background-color: #F5F5F5;}#style-6::-webkit-scrollbar {width: 10px;background-color: #F5F5F5;}#style-6::-webkit-scrollbar-thumb {background-color: #F90;background-image: -webkit-linear-gradient(45deg,rgba(255, 255, 255, .2) 25%,transparent 25%,transparent 50%,rgba(255, 255, 255, .2) 50%,rgba(255, 255, 255, .2) 75%,transparent 75%,transparent)}html,body,.container {height: 100%;}body {margin: 0;}.left {float: left;width: 200px;height: 500px;height: 100%;background-color: pink;transition: all 0.5s;margin-right: 20px;overflow: auto;}.left:hover {width: 50px;}.left-menu {height: 1200px;background-color: cyan;}.menu-item {height: 50px;background-color: rgb(78, 191, 101);margin: 10px;}.content-outer {overflow: hidden;background-color: #bfa;height: 100%;overflow: auto;}.content-wrapper {padding: 20px;}.content1 {height: 500px;background-color: rgb(177, 228, 119);margin-bottom: 10px;}</style>
</head><body><div class="container"><div class="left" id="style-5"><div class="left-menu clearfix"><div class="menu-item">1</div><div class="menu-item">2</div><div class="menu-item">3</div><div class="menu-item">4</div><div class="menu-item">5</div><div class="menu-item">6</div><div class="menu-item">7</div><div class="menu-item">8</div><div class="menu-item">9</div><div class="menu-item">10</div><div class="menu-item">11</div><div class="menu-item">12</div><div class="menu-item">13</div><div class="menu-item">14</div><div class="menu-item">15</div><div class="menu-item">16</div><div class="menu-item">17</div><div class="menu-item">18</div></div></div><div class="content-outer" id="style-6"><div class="content-wrapper"><div class="content1">123aaavvv</div><div class="content1">123aaavvv</div></div></div><!-- </div> -->
</body></html>

再加一个头部和尾部,内容区可滚动。
主要时用到了calc这个函数和100vh这个可视区高度css如何让页面填满剩余高度与宽度
https://blog.csdn.net/makewithyou/article/details/122710998
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>.clearfix::before,.clearfix::after {content: "";display: table;clear: both;}/** STYLE 5*/#style-5::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);background-color: #F5F5F5;}#style-5::-webkit-scrollbar {width: 10px;background-color: #F5F5F5;}#style-5::-webkit-scrollbar-thumb {background-color: #0ae;background-image: -webkit-gradient(linear, 0, 0, 0 100%)color-stop(.5, rgba(255, 255, 255, .2)),color-stop(.5, transparent), to(transparent);}#style-6::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);background-color: #F5F5F5;}#style-6::-webkit-scrollbar {width: 10px;background-color: #F5F5F5;}#style-6::-webkit-scrollbar-thumb {background-color: #F90;background-image: -webkit-linear-gradient(45deg,rgba(255, 255, 255, .2) 25%,transparent 25%,transparent 50%,rgba(255, 255, 255, .2) 50%,rgba(255, 255, 255, .2) 75%,transparent 75%,transparent)}html,body,.container {height: 100%;}body {margin: 0;}.head {text-align: center;line-height: 50px;}.left {float: left;width: 200px;height: 500px;height: 100%;background-color: pink;transition: all 0.5s;margin-right: 20px;overflow: auto;}.left-menu {height: 1200px;background-color: cyan;}.menu-item {height: 50px;background-color: rgb(78, 191, 101);margin: 10px;}.content-outer {position: relative;overflow: hidden;background-color: #bfa;overflow: hidden;/* height: 100%; */height: calc(100vh - 50px);}.content-wrapper {/* padding: 20px; *//* height: 800px; */overflow-y: scroll;margin-bottom: 10px;/* position: absolute; */width: 100%;height: calc(100vh - 50px - 40px - 10px);/* bottom: 40px; */}.foot {bottom: 0;width: 100%;position: absolute;height: 40px;background-color: pink;text-align: center;line-height: 40px;}.content1 {height: 500px;background-color: rgb(177, 228, 119);margin-bottom: 10px;}.left:hover {width: 50px;}.head {height: 50px;}body {overflow: hidden;}</style>
</head><body><div class="head">我是head</div><div class="container"><div class="left" id="style-5"><div class="left-menu clearfix"><div class="menu-item">1</div><div class="menu-item">2</div><div class="menu-item">3</div><div class="menu-item">4</div><div class="menu-item">5</div><div class="menu-item">6</div><div class="menu-item">7</div><div class="menu-item">8</div><div class="menu-item">9</div><div class="menu-item">10</div><div class="menu-item">11</div><div class="menu-item">12</div><div class="menu-item">13</div><div class="menu-item">14</div><div class="menu-item">15</div><div class="menu-item">16</div><div class="menu-item">17</div><div class="menu-item">18</div></div></div><div class="content-outer" ><div class="content-wrapper" id="style-6"><div class="content1">123aaavvv</div><div class="content1">123aaavvv</div></div><div class="foot">我是foot</div></div></div>
</body></html>
flex布局

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>#style-6::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.0);background-color: #F5F5F5;border-radius: 6px;}#style-6::-webkit-scrollbar {width: 6px;background-color: #F5F5F5;}#style-6::-webkit-scrollbar-thumb {background-color: #F90;border-radius: 6px;background-image: -webkit-linear-gradient(45deg,rgba(255, 255, 255, .2) 25%,transparent 25%,transparent 50%,rgba(255, 255, 255, .2) 50%,rgba(255, 255, 255, .2) 75%,transparent 75%,transparent)}* {margin: 0;padding: 0;list-style: none;}html,body {width: 100%;height: 100%;overflow: hidden;}.wrapper {background-color: pink;width: 100%;height: 100%;display: flex;}.wrapper .left {width: 220px;background-color: rgb(94, 171, 138);height: 100%;overflow-y: scroll;/* margin-right: 10px; */}.menu-item {height: 50px;background-color: cyan;margin: 10px;}.wrapper .right {width: 200px;background-color: rgb(102, 158, 184);height: 100%;flex-grow: 1;display: flex;flex-flow: column nowrap;}.head {min-width: 1000px;height: 75px;background-color: rgb(215, 156, 156);flex-shrink: 0;}.head .head-item {width: 700px;height: 20px;background-color: cyan;}.content-wrapper {margin-top: 10px;margin-left: 10px;padding: 10px;background-color: rgb(163, 199, 141);flex-grow: 1;overflow-y: scroll;overflow-x: hidden;}.content1 {height: 50px;background-color: pink;margin-bottom: 10px;}</style>
</head><body><div class="wrapper"><div class="left" id="style-6"><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div><div class="menu-item"></div></div><div class="right"><div class="head"><div class="head-item"></div></div><div class="content-wrapper" id="style-6"><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div><div class="content1"></div></div></div></div>
</body></html>

















