示例页面:demo1

页面框架构建主要使用css的flex属性

首先要设置HTML和BODY的高度为100%

html, body { height: 100%; margin: 0; }

设置主容器app 高度为100%,

display为flex 开启弹性布局模式

flex-direction: column 定义排列方向。在已开启Flexbox的前提下,此属性指定子元素沿着垂直方向(从上到下)​ 依次排列。

.app { height: 100%; display: flex; flex-direction: column; }

设置头部高56

.header { height: 56px; }

设置度部高40

.footer { height: 40px; }

flex: 1;是一个CSS属性的简写形式,它的核心作用是让一个元素能够自动伸展,尽可能地填满容器中的剩余空间。

.main { flex:1; display:flex; overflow:hidden; position:relative; }

这样就会形成一个上、中、下三行的布局,上面56,下面40,中间自适应。

接下来,再把中间部分,分隔成左右两侧,左侧固定,右侧自适应。

由于main 已经写了display:flex;

所以直接写两个DIV,一个左侧,一个右侧。

左侧样式

.sidebar {width: 240px;background: #212529;color:#adb5bd;overflow-y:auto;transition: width .25s;position:relative;flex-shrink:0;}

右侧样式:

background-color: yellow;flex: 1;overflow:auto;

这样主区域 里面的左右就分开了。

当区域内容超出区域高度时会出现滚动条,但滚动条默认的很宽,占用地方大,还不美观,所以美化一下滚动条。

/* 细窄滚动条,类似 sidebar */

.content .card.flex-grow-1::-webkit-scrollbar {

width: 6px; /* 滚动条宽度 */

}

.content .card.flex-grow-1::-webkit-scrollbar-track {

background: transparent; /* 滚动条轨道 */

}

.content .card.flex-grow-1::-webkit-scrollbar-thumb {

background-color: rgba(0,0,0,0.3); /* 滚动条颜色 */

border-radius: 3px; /* 圆角 */

}

.content .card.flex-grow-1::-webkit-scrollbar-thumb:hover {

background-color: rgba(0,0,0,0.5); /* 悬停变深 */

}

 

至此整体框架结构就创建完成了。