css - 将一个div居中对齐,然后向左移动

标签 css html alignment center pixel

我正在使用以下代码制作一个 div...

left:50%; 
top:0px;
width:100%; 
margin-left:-50%;

background:black;

padding:20px;

position:fixed;

但问题是 div 上有一个填充,所以我需要额外添加 20px 以使 div 居中对齐。有没有办法做到这一点?我尝试了类似 margin-left:-(50%+20px); 的方法,但这在 CSS 中不起作用...

有人知道我该怎么做吗?谢谢!

最佳答案

box-sizing 会起作用,但不幸的是它不适用于旧浏览器(ie7 和更早版本)。 http://caniuse.com/css3-boxsizing

最好的做法(如果针对所有浏览器)是删除填充并添加一个仅包含该填充的子包装器。

html:

<div id="centered">
  <div id="wrapper">
    [...]
  </div>
</div>

CSS:

#wrapper {
  padding: 20px;
}

关于css - 将一个div居中对齐,然后向左移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075752/

相关文章:

html - Bootstrap "Header/Jumbotron"

javascript - JQuery Animate 的问题

image - 页面上多个图像的智能对齐/布局

html - 居中列出的右对齐段落

css - 将 div 与 flex 对齐不能按预期工作

html - 使用 CSS 隐藏仅包含空格的元素

javascript - 单击时替换元素,并在其他位置单击时将其返回

css - LESS mixin 与循环创建背景图像

html - 严格的 2 列布局与元素跨越多列的 12 列相比有哪些优势?

html - 奇怪的 CSS 定位行为