中心alignment固定的位置div
我试图得到一个有position:fixed
的div position:fixed
中心在我的页面上alignment。
我一直可以用绝对定位的div来使用这个“黑客”
left: 50%; width: 400px; margin-left:-200px
…其中margin-left的值是div的宽度的一半。
这似乎不适用于固定的位置div,而只是将它们的最左边的angular落放在50%,而忽略了margin-left声明。
任何想法如何解决这个问题,我可以中心alignment固定定位元素?
如果你能告诉我一个更好的方法来alignment绝对定位的元素,那么我会投入一个奖金M&M。
对于具有相同问题但具有响应式devise的人员,还可以使用:
width: 75%; position: fixed; left: 50%; margin-left: -37.5%;
这样做将始终保持您的固定div
在屏幕上居中,即使采用了响应式devise。
Koen的回答并不完全是这个元素的中心。
正确的方法是使用CCS3 transform
属性。 虽然在一些旧的浏览器中不支持 。 而且我们甚至不需要设置固定或相对width
。
.centered { position: fixed; left: 50%; transform: translate(-50%, 0); }
在这里工作jsfiddle比较。
居中“固定”元素的一个好方法是将“中心”元素固定为100%宽度,其中的所有内容都将位于100%宽度“中心”的中心。
CSS将是:
#center{ position:fixed; width: 100%; //this basically stretches all over the window as fixed }
该html将是:
<html><head></head> <body> <center id='center'> ...elements </center> </body></html>
同样的方法可以应用于元素的绝对定位。
更新:对于那些认为中心标记被弃用的怀疑论者,它可以用一个应用了align =“center”属性的包装div来代替。 你甚至可以删除alignment,并可以使用文本alignment:中心 。
从上面的post来看,我认为最好的办法是
- 固定div与100%
- 在div里面,创build一个新的静态div或表,其中
margin-left:auto
,margin-right:auto
,或者表格使其居中。 - Tadaaaah,你现在已经集中了你的固定div
希望这会有所帮助。
正常div应使用margin-left:auto和margin-right auto,但对于固定div不起作用。 解决这个问题的方法类似于Andrew的答案,但是不使用弃用的东西。 基本上,只要给固定的div一个包装。
HTML:
<div id="wrapper"> <div id="fixed_div"></div> </div
CSS:
#wrapper { width: 100%; position: fixed; } #fixed_div { margin-left: auto; margin-right: auto; position: relative; width: 100px; text-align: center; }
这将在一个div中固定一个div,同时允许div与浏览器作出反应,也就是说如果div有足够的空间,div就会居中,否则会在浏览器的边缘发生粘连。 类似于一个正规的中心股反应。
如果你知道宽度是400px,这将是我猜的最简单的方法。
left: calc(50% - 200px);
我用Twitter Bootstrap(v3)
<footer id="colophon" style="position: fixed; bottom: 0px; width: 100%;"> <div class="container"> <p>Stuff - rows - cols etc</p> </div> </footer>
即做一个完整的宽度的元素是固定的位置,只是在其中推一个容器,容器相对于全宽居中。 应该也应该做得很好。
如果您希望元素像另一个导航栏一样横跨页面,则此方法可行。
宽度:计算(宽度:100% – 宽度无论其他中心偏离它)
例如,如果你的侧面导航栏是200px:
宽度:calc(100% – 200px);
使用宽度很容易:70%; 左:15%;
将元素宽度设置为窗口的70%,并在两侧留出15%
如果你想中心alignment一个固定的位置div垂直和水平使用这个
position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%);