如何使 div 在页面的同一时间中心保持在顶部?

Posted

技术标签:

【中文标题】如何使 div 在页面的同一时间中心保持在顶部?【英文标题】:How to make the div stick to top, on the same time center of page? 【发布时间】:2014-06-09 17:42:11 【问题描述】:

我有一个高度和宽度固定的 div,我使用左右边距 auto 居中。但是我希望这个栏在我的整个页面中都可见,所以我使用position:absolute 将其粘贴。但随后条形图向左移动,不再居中。如何将栏固定到顶部居中位置?

<div class="bar">bar</div>

.bar
    width: 400px;
    height: 40px;
    margin-left:auto;
    margin-right:auto;
    background-color:orange;

Here 是小提琴。

【问题讨论】:

您可以使用position: fixed; 并使用topright 值来确定其在屏幕上的确切位置。警告:如果用户滚动/等,它不会移动。 @TylerH 你能给我看看小提琴吗? 【参考方案1】:

尝试使用 100% 宽度的容器 div,将其固定到顶部,然后将您的栏居中放置在其中。 CSS:

.bar
    width: 400px;
    height: 40px;
    margin:0 auto;
    background-color:orange;

.container

width:100%;
    position:fixed;
    top:0px;
    left:0px;

Updated Fiddle

【讨论】:

【参考方案2】:

http://jsfiddle.net/hkZju/12/

.bar
    width: 400px;
    height: 40px;
    top:0;
    left:50%;
   margin-left:-200px;
    background-color:orange;
    position:fixed;

【讨论】:

【参考方案3】:
.bar
width: 400px;
height: 40px;
left : 50%;
margin-left:-200px;
top : 0%;
position : absolute;
background-color:orange;

【讨论】:

这是有保证的......试试@javad。仔细看我使用的是“margin-left” @Javad on margin left 50%, div 将有 50% 在左边,也就是说,div 将从页面中间开始,向右。给它一个 50% 宽度的 -ve 边距(这里是 200px)肯定会将 div 的中点拉到页面的中心。 @blasteralfredΨ 是的,你是对的,对不起;我没看到宽度是400px;但是如果宽度是百分比呢? 宽度如何以百分比表示?如果可以,那么您将不得不应用其他方法【参考方案4】:

您需要将.bar 放在具有position: absolutewidth: 100% 的div 中

检查这个小提琴demo

.bar
   position: absolute;
   width: 100%;


.bar div 
   width: 400px;
   height: 40px;
   margin-left:auto;
   margin-right:auto;
   background-color:orange;    

【讨论】:

【参考方案5】:

我想添加:

position: fixed top right;

就像 TylerH 说的,或者

position:absolute top right;

将是您的最佳选择。更灵活。

固定为始终显示,绝对“固定”到页面。

【讨论】:

【参考方案6】:

所以栏将保持在顶部,即使您滚动页面,您也必须使用position:fixed。然后,要将其居中,将左侧设置为 50%,将 margin-left 设置为减去宽度的一半。

.bar
    width: 400px;
    height: 40px;
    position: fixed;
    top: 10px;
    left: 50%;
    margin-left: -200px;
    background-color:orange;

http://jsfiddle.net/hkZju/9/

【讨论】:

对不起。我没明白你的意思。【参考方案7】:

您可以使用jquery通过动态更改div的左值来处理这个问题,下面是代码 -

$(document).ready(function()
   $('.bar').css('left',($(document).width() - $('.bar').width())/2);
);

或者如果你想用 css 来做 - 添加下面的 css 属性

.bar
 left : 50%;
 margin-left:-200px;//should be half in the width of the div

【讨论】:

以上是关于如何使 div 在页面的同一时间中心保持在顶部?的主要内容,如果未能解决你的问题,请参考以下文章

滚动页面到 div

滚动到屏幕顶部后,如何使 div 贴在屏幕顶部?

Ajax 调用 div 替换并滚动到页面顶部

如何使内容出现在固定的 DIV 元素下方?

如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心

页面上的“缩放”元素,同时将放大中心保持在窗口的中心