CSS实现元素相对于浏览器窗口进行定位

文章简介:CSS实现相对浏览器窗口定位彻底研究.

Web Developer / Designer 经常需要将一个元素“固定”在页面的某个位置。例如弹出窗口、漂浮广告位等……本文将详细介绍简单CSS实现元素相对于浏览器窗口进行定位的方法。

position:fixed生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。

良好支持 W3C 标准的浏览器实例

在 IE9、Firefox、Chrome等良好支持 W3C 标准的浏览器中,如果我们希望将某元素绝对定位于窗口正中间,我们可以给它指派这样的 CSS样式:

width:336px;
height:280px;
left:50%;
top:50%;
margin-left:-168px;
margin-top:-140px;
position:fixed;

这里 margin-left 、margin-top 的值应该修改为您页面主要区域宽度和高度的一半。

修正IE版本<7不支持position:fixed的bug

IE版本<7的浏览器不支持position:fixed属性,所以并未实现期望的效果,这时就要针对IE<7的浏览器写单独的样式。

(1)利用 Javascript 计算出需要的 top 值

在head中插入:

<!--[if IE lt 7]>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<![endif]-->

在style.css样式表中针对目标定位元素样式中写入:

position:absolute;
top:expression(eval(document.body.scrollTop + 50));

防止滚动条滚动时的闪动,需要定义HTMl的属性为:

html {
    background-image: url(about: blank); /*用浏览器空白页面作为背景*/
    background-attachment: fixed; /*确保滚动条滚动时,元素不闪动*/
}

在 IE 中特有的 CSS 运算符 expression中我们可以利用 Javascript 计算出需要的 top 值,这样就达到了与 position: fixed 同样的效果。

(2)利用容器对溢出内容的处理方式来实现

定义body内外边距为0,实现html和浏览器窗口相同大小,使body出现滚动条,元素相对于html相对定位。

body { padding: 0; margin: 0; }
html { overflow: hidden; }
body { height: 100%; overflow: auto; }

针对IE6定义元素属性:

position: absolute;
top: 50% ;
left: 50% ;
margin-top: -140px;
margin-left: -168px;

让元素固定于浏览器

分别让元素定位于浏览器左侧、右侧、顶部、底部综合样式演示:

position:absolute;
bottom:auto;
top:expression(eval(document.documentElement.scrollTop));/* IE6 头部固定 */
position:absolute;
right:auto;
left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft, 10)0)-(parseInt(this.currentStyle.marginRight, 10)0));/* IE6 固定右侧 */
position:absolute;
bottom:auto;
top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop, 10)0)-(parseInt(this.currentStyle.marginBottom, 10)0)));/* IE6 固定底部  */
position:absolute;
right:auto;
left:expression(eval(document.documentElement.scrollLeft));/* IE6 左侧固定 */

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索浏览器
, 定位
, 窗口
, 元素
, margin-top
, 相对
相对窗口
css相对父元素定位、css相对于父元素定位、css相对兄弟元素定位、css 相对某个元素定位、css 同级元素相对定位,以便于您获取更多的相关知识。

时间: 2024-09-30 03:36:13

CSS实现元素相对于浏览器窗口进行定位的相关文章

js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)_javascript技巧

js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动) 复制代码 代码如下: <!doctype html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> *{}{margin:0;padding:0;} html{}{_background:url(about:blank);} /**//*

理解CSS浮动元素建立更好网站

css|浮动 层叠式样表(CSS)正迅速成为网页布局与定位的实际标准.它们易于使用.不需要任何特殊的软件.并可在大多数主要的浏览器上应用.但是,正确使用它们需要全面了解一个特殊布局的功能性目的,保证生成的样式表在逻辑和功能上都能正确使用,并能够与各种浏览器和查看设备兼容. 通常,Web开发者往往无法理解式样表的这个特殊问题,导致要在代码中使用大量的"hack"才能获得预期的结果.为解决这个问题,很值得花一些时间来理解CSS的一些核心驱动程序和概念.开发者需要了解的一个最重要的概念是所谓

学习网页技术CSS高级教程之CSS 伪元素

css|高级|教程|网页 CSS 伪元素被用来将特殊的效果添加到某些选择器. CSS 伪元素 (Pseudo-elements)实例: 制作首字母特效 本例演示如何向文本的首字母添加特效. <html><head><style type="text/css">p:first-letter {color: #ff0000;font-size:xx-large}</style></head><body><p>

javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等_javascript技巧

HTML精确定位属性:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scrollWidth:获取对象的滚动宽度offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度offsetLeft:获取对

在浏览器窗口上添加遮罩层的方法_基础知识

如何在浏览器窗口上添加一个遮罩层 背景 在web2.0中,页面弹窗是一个很常见的交互方式,这样既可以避免不必要的页面跳转,也可以改进界面的布局和可交互性. 但是,浏览器原生的弹窗函数(alert, confirm, prompt)有着很大的局限性,主要是它们的展现UI一来很不美观,二来也不够灵活,因此,我们经常需要自行定义弹窗函数. 当我们要实现一个模式弹窗时(模式弹窗,即是说出现弹窗时,页面其它地方不可点击),通常的做法是用一个div将整个页面窗口遮挡住. 实现 下面,我们一步步地实现一种较为

CSS背景100%平铺 浏览器缩小背景显示不全解决办法

把浏览器的窗口缩小时,拖动滚动条时你会发现原本设定的CSS背景100%平铺的背景少了一块,而且窗口越小时,空白越大. 解决方法: width:100%;min-width:990px; 在width:100%; 后面加个 min-width:**px; 这个长度取于你的网页最低宽度. Ps: 逐风个人认为上诉的解决方案还不够人性化, 想要实现不同分辨率下灵活覆盖,逐风推荐以下处理方式: 1.结合JS,当窗口变化时执行事件进行width的固定值调整: 2.CSS限定最小宽度,当浏览器还有继续往小缩

CSS“隐藏”元素的几种方法的对比

 一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同.除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种"隐藏"元素方法的区别和优缺点,欢迎大家交流!!   几种方法的简单介绍 首先我们分别来说说到底有哪几种隐藏元素的方法,有一些方法是众所周知的,还有一些算是一种技巧.  

bootstrap中,navbar 宽度等同浏览器窗口问题。

用公司的bootstrap 主题模板. 正常样式如图下: html代码为: <ul class="nav ace-nav"> </ul> 生成的页面代码是: <div class="navbar navbar-default" id="navbar"> 在整合项目时,需要把页面中引用的  js 和css拆出来. 并改用jsp,不用html来写页面. 并且引入一系列标签等等. 引入代码如下:(下面的代码是错误的.

浏览器扩展系列————透明浏览器窗口的实现

原文:浏览器扩展系列----透明浏览器窗口的实现 首先先看一下效果图:     本实现是基于WPF,VS版本2008 SP1.     先说一下在Winform中的实现方法:很简单通过设置窗体的opacity来实现,或者还可以设置TransparentKey来实现某种颜色透明.但是在WPF中则如何实现呢? 通过设置窗体的opacity,那么得到结果就是webbrowser整体消失了.因为这里面涉及到WPF中"空域"的问题,相关的文章如下: http://blogs.msdn.com/c