通过定位position="fixed"实现网页内容的固定层效果
在网页的顶部或者底部导航栏中经常需要使用到固定层的效果,即紧挨浏览器窗口的顶部或底部而网页其他内容的影响。
一、实现
主要通过设置导航栏元素的位置属性position="fixed"来实现导航栏的固定效果。
学习过bootstrap框架都知道,在为网页设置顶部或底部导航栏时,需要为div或者ul列表设置
class="navbar navbar-fixed-top"或class="navbar navbar-fixed-bottom"的类名,
在这里可以发现都用到了fixed的属性,查看相关的css代码可以发现:

二、定位
定位position有五个属性:relative、absolute、fixed、static、inherit,其中fixed和absolute都为固定定位,
顶部导航或者底部导航的元素都被定位成fixed绝对定位,那么fixed的绝对定位和absolute的绝对定位有何不同呢?
*position:fixed; position:absolute;的异同:
【相同点】
1.完全脱离标准文档流;
2.未设置偏移量时,都定位于父元素的左上角(元素设置定位后,就具有偏移属性和堆叠属性z-index);
2.在没有设置定位形式的时候,它会在页面垂直排列的,在左上角显示;
3.在游览器中显示会有一个默认的margin 和padding值(故在添加导航时需设置body的padding和margin为0)。
【不同点】
1.absolute定位的元素会随滚动条变化而改变位置(其定位相对于页面元素);
2.fixed定位的元素位置固定,不随滚动条变化而改变位置,并且滚动条变化时被其遮盖的元素会从其下方穿过。
三、实现固定层效果要注意的问题
若页面结构如下:

需要设置#top元素为顶部导航,则需要设置对应的样式如下:

【解析】
1.由于body存在默认页面间距,所以首先要设置页面间距为0,否则元素无法撑满整个可视窗口;
2.为顶部元素#top设置fixed定位。
3.由于给top选择器设置fixed固定定位时,(top层已经脱离了标准文档流),其父包裹层body的margin与mainbody的
上margin值发生了重叠,(此时的body与mainbody属于标准文档流)mainbody的上margin值大于body的margin,
选择了mainbody的上margin值20px(标准文档流中上下margin发生重叠时选择margin值大的那个)所以body下移
20px;top层又以body层定位,从而导致了top层与浏览器可视窗口产生了20px的距离。
为了保持top层与浏览器窗口紧挨着,则需对top层的固定定位设置偏移量top:0;
同时为了保证主体内容和导航之间存在一定的间距,为#mainbody设置margin-top:60px .
通过定位position="fixed"实现网页内容的固定层效果的更多相关文章
- 层模型--固定定位(position:fixed)
		
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身. 由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口 ...
 - position:sticky  定位    position:fixed
		
它的表现类似position:relative和position:fixed的合体,当目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像 ...
 - [转]position:fixed; 在IE9下无效果的问题
		
本文转自:http://www.cnblogs.com/xinwang/archive/2013/04/06/3002384.html 平常DIV+CSS布局时,position属性一般用absoul ...
 - css定位position认识
		
1.绝对定位(position: absolute) 2.相对定位(position: relative) 3.固定定位(position: fixed) 绝对定位 设置position:absolu ...
 - 定位 position  透明度 opacity
		
1.position 定位 position:fixed 固定定位 position:relative 相对定位(不指定父级元素的话相对于document) position:absolute 绝对定 ...
 - 盒子布局、标签特性display、浮动、定位position
		
盒子模型布局: 盒子模型:每个标签都是一个盒子 盒子在页面显示在大小是:自身宽度+边框+边距(内边框+外边距) 如果一个盒子设置了边框,则边框需要被加两遍.若果设置了边距则内外边距根据设置情况要被加两 ...
 - 当锚点定位遇上position: fixed
		
<!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...
 - position fixed 相对于父级定位
		
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - 关于苹果手机微信端 position: fixed定位top导航栏问题
		
在移动端,position: fixed定位一般不被识别,或者在ios系统中,获取input焦点时,会导致position: fixed的top失效,下面是我验证过的方法,大家可以试试.<!do ...
 
随机推荐
- 使用X-UA-Compatible来设置IE8/IE9兼容模式
			
文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE ...
 - HDU 4405 期望DP
			
期望DP算是第一题吧...虽然巨水但把思路理理清楚总是好的.. 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点.求走到n ...
 - HTML6 展望
			
HTML5 概述 HTML5 是 HTML 语言最受欢迎的版本之一,它支持音频和视频.离线存储.移动端.和标签属性等等.还提供了<article>, <section>, &l ...
 - [Cocos2d-x For WP8]Transition 场景切换
			
在游戏中通常会打完了一关之后就会从当前的场景转换到另外一关的场景了,在Cocos2d-x中是由CCScene类表示一个场景.那么场景(CCScene)是为游戏中的精灵(CCSprite)提供了舞台,场 ...
 - 基于nginx tomcat redis分布式web应用的session共享配置
			
一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关 ...
 - 网页制作常见的问题(怎样兼容IE6/IE7/火狐浏览器)
			
1.IE6双边距问题? 在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG 例如: <style type="t ...
 - html5:服务器事件推送(server-sent events)Asp.net
			
支持 不支持IE 个人理解说明 个人理解:这种消息推送方式不太推广,原因有以下三点~~~`我怎么老是学这些自己认为不会推广的东西呢~汗 在.net中,framework4.5以上就可以由SignalR ...
 - mongodb 手动分片的命令汇总
			
手动分片的操作 自动分片会带来性能的下降. 所以要合理使用手动分片. 并且配合Tag一起使用. # 对于4个shard的程序, 预先处理的指令1. 加入分片服务器sh.addShard( " ...
 - MySQL 授权远程登录(Ubuntu 环境)
			
环境:Ubuntu 13.10 (GNU/Linux 3.11.0-12-generic i686) 在用 Navicat 连接远程数据库时报错: ERROR (HY000): Host *** is ...
 - Linux改变文件或目录的访问权限命令
			
使用 ll 或 ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...