移动端布局body | 头部导航条 | 底部导航栏 | 内容区 | 蒙层使用

body 

/* body默认样式 */
body{
    max-width: 640px;
    margin: 0 auto;
    background: #f8f8f8;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}


关于body的这几个样式,它们的作用是:

max-width: 640px; 设置 body 最宽只能 640px,这是为了在一些超宽的屏幕(如:横屏的ipad)上,页面不至于被撑得太宽,我们这里限定屏幕像素大于 640px 的时候,只显示到 640px 这么宽。
margin: 0 auto; 当屏幕超宽时,保证内容区能水平居中。
background: #f8f8f8; 给页面设置一个浅灰色背景。
overflow-x: hidden; 横轴方向如果出现了超宽的元素,设置为隐藏,这样就能防止在X轴方向上出现滚动条。
-webkit-overflow-scrolling: touch; 在 ios 系统上,可以让滚动元素带有弹性,滚动的更顺滑。注意这条样式只是 webkit 内核提供的,只在基于 webkit 内核的浏览器上有效。

头部导航条

/* 头部导航条 */
.kv-header{
    position: fixed;
    box-sizing: border-box;
    width: 100%;
    max-width: 640px;
    height: 2.3rem;
    top: 0;
    z-index: 200;
    border-bottom: 1px solid #ddd;
}

这里面没有使用“left: 0;”来把标题栏放在窗口最左面,这是因为如果不给它限定水平方向位置,那么它起始的位置就时它脱离文档流之前的位置,也就是现在 body 的起始位置。这样在超宽屏幕下也能保证标题栏也在 body 的左上角,而不是屏幕的左上角。
box-sizing: border-box; 使用了怪异盒模型,是因为使用了border来分隔标题栏和内容区,这样标题栏的高度就是“height: 2.3rem;”所指定的高度了。
max-width: 640px; 和 body 统一,限定了最大宽度就是 640px,不限定的话导航条的宽度就变成了整个屏幕的宽度,在超宽屏幕下会造成错乱。

底部导航栏

/* 底部导航栏 */
.kv-navbar{
    position: fixed;
    box-sizing: border-box;
    bottom: 0;
    width: 100%;
    max-width: 640px;
    height: 2.5rem;
    border-top: 1px solid #ddd;
    z-index: 200;
}

这个文件的布局样式和导航条十分相似,只不过定位的时候使用的是bottom代替了导航条的top,把元素固定在了页面的底部。

内容区

/* 内容区 */
.kv-content{
    box-sizing: border-box;
    position: relative;
    overflow-y: auto;
}
/* 根据header和navbar自动适应内容区高度 */
.kv-header ~ .kv-content{
    padding-top: 2.3rem;
}
.kv-navbar ~ .kv-content{
    padding-bottom: 2.5rem;
}
  • box-sizing: border-box; 使用怪异盒模型,是为了能正确处理后面的padding。
  • position: relative; 内容区设置为相对定位,是为了让子元素在做绝对定位的时候以它为参照物。
  • overflow-y: auto; 内容区高度超出屏幕高度的时候,自动出现滚动条。
  • padding-top: 2.3rem; 内容区上方用内边距让出标题栏的高度,这样内容显示的位置正好在标题栏的下方,不会被标题栏遮住。
  • padding-bottom: 2.5rem; 内容区下方用内边距让出导航栏的高度,滚动条拉到最下面时正好能把内容显示完整。

这样在默认的情况下内容区是没有上下内边距的,当页面有了标题栏的时候,再用兄弟选择器给 tt-content 元素设置上“padding-top: 2.3rem;”。同理,在有导航栏的时候,也用兄弟选择器给内容区设置上“padding-bottom: 2.5rem;”。这样就达到了内容区自适应的需求。

蒙层使用

/* 页面蒙版 */
.kv-mask{
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0,0,0,.5);
    z-index: 300;
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值