CSS中Position:fixed偏移解决方案

Zero零分 随笔 5,177 0 6年前

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

Position:fixed,在实际使用过程中多少都会遇到偏移的问题。虽然说 Position:fixed是相对于浏览器进行定位的,有时候也会受到外层DIV的影响,在非IE下, Position:fixed,浮动时是水平位置是相对于外层的。如果需要水平居中,可以设置left:50%,margin-left:- Position:fixed /2,即本身宽度的一半。其实,CSS位置的设置逻辑还和数学真有点关系!当然,可以设置一个居中层,margin:0 auto;外层,内层进行 Position:fixed,也会水平居中。同样也实用于IE浏览器。

不过,对于非水平居中的,比如侧栏浮动,可以加个同样大小的DIV外层,一来可以在外层添加一个ID,以便JS scrollTop 来识别。二来,可以在position:fixed后保留位置,以便在高度不够特别是临界的情况下还能保持原来的高度。

Position:fixed,虽然是相对于浏览器定位的,但是,在判断滚动条而进行是否需要 Position:fixed的,可以添加一个外层给一个水平位置的定位,防止因添加了 Position:fixed后,IE下,层进行了左右的偏移

发布:2015-08-30 17:58:19
标签:
链接:https://blog.32xp.com/css-position-414.html
END

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*

用户评论(0)

css宽高运算函数calc()

calc() 函数执行用作属性值的计算。可使用如下运算符:+ – * / 一般都是配合百分百 如: width: calc(100% - 100px); calc() 函数执行用作属性值的计算。
笔记 ·

CSS input 设置宽高margin及padding对齐

input经常无法与其他元素对齐,通常用外层来包裹input,设置外层样式CSS,如依旧无法达到理想的效果,只能将input块级元素化 1、给input添加CSS属性:display:block 添加display将元素显示为块级元素,前后会带有换行符,用float来排列input 2、给input添加CSS属性:display:inline-block 将元素显示为行内块元素,上下对齐用CSS:vertical-align: bottom; 底部对齐
笔记 ·

让position:absolute超出DIV溢出隐藏

通常,为了让DIV子元素超出部分隐藏,都是在父元素设置overflow:hidden,这样即可防止子元素撑开父元素,使子元素能够溢出隐藏! 但是,对于position:absolute定位的子元素,仅仅使用overflow:hidden没办法将其溢出部分隐藏,需要在父元素上也加上一个定位position:relative;才能将含有 position:absolute属性的子元素进行溢出隐藏! 效果: 代码: <style> .box{     width:200px;     height:150px;     overflow:hidden;     border:2px solid #000;     float:left;     margin-right:20px; } .relative{     position:relative; } .div{     width:200px;     height:100px;     background:#FF5400;     margin-top:100px;     position:absolute; } .zi{     width:200px;     height:300px;     background:#FF0000; } </style> <div class=“box”> 高300px的子元素溢出隐藏 <div class=“zi”></div> </div> <div class=“box”> 不带relative <div class=“div”></div> </div> <br><br><br><br><br><br> <div class=“box relative”> 带上relative <div class=“div”></div> </div> 附: 1、CSS overflow属性,overflow 属性规定当内容溢出元素框时发生的事情,所有主流浏览器都支持 overflow 属性。任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。 这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。 默认值:visible hidden:内容会被修剪,并且其余内容是不可见的。 scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。 inherit:规定应该从父元素继承 overflow 属性的值。 2、position属性,position 属性规定元素的定位类型。所有主流浏览器都支持 position 属性。任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 “inherit”。 这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。默认值:static absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 relative:生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20″ 会向元素的 LEFT 位置添加 20 像素。 static:默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 inherit:规定应该从父元素继承 position 属性的值。  
代码 ·

京东更换logo,狗胖了!

无意中看到一则笑话: 京东更换logo了,你怎么看? 答:膨胀了! 打开手机,看下京东APP,果然,狗胖了!
随笔 ·

赵薇被全网封杀,娱乐圈疑开始整治了

今天,瞬间刮起”小燕子”赵薇被全网封杀的消息,做为吃瓜群众,一直未能百度到赵薇被封杀的原因!视频网站都搜不到“赵薇”这个关键词了 百度一下,也未能百度到赵薇被封杀的原因,有猜测时因旗下艺人张哲瀚,也有猜测是因20年前的时装杂志封面!不论如何,既然被封杀,一定是触犯了底线!    
随笔 ·
Zero零分
站龄14年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
464
文章
36
评论
27
分类
819
标签
7
友链
onlinelovesky 317355746 122551965@qq.com

百度广告