82

可能重复:
如何水平居中跳水?

使对象以HTML为中心的一种简单方法是使用align='中心',但这对女主角来说不管用。

我尝试过:

style='text-align:center';style='左侧:50%';

我甚至还做了一个中心标记

<中心>

但我不能让我的目标跳水成为中心。

5
  • 1
    您是想将div本身或div中的文本居中吗? 2010年4月22日13:28
  • 我在问题中说的是div而不是它的文本。谢谢 2010年4月22日13:34
  • 2
    为设置宽度div公司,然后使用边距:0自动;:jsfiddle.net/spikey/FLL5Z 2014年3月8日19:53
  • 请注意,边距:0自动;解决方案仅在上下边框需要为0时有效。如果需要更改,则完整版本为,边距:0自动0自动;第一个“0”是顶部,第二个“0“是底部。这也可以写为margin-top:0;边缘-右侧:自动;边缘-底部:0;margin-left:自动。 2014年6月23日12:50
  • 你可以用flexbox轻松地将任何东西放在中心。对于x轴,只需设置justify-content:center,对于y轴,可以设置align-items:center;。要使div完全位于中间位置,请同时使用两者!(对于父元素) 2019年7月12日17:52

4个答案4

重置为默认值
66

<!DOCTYPE html><html><头部><title>中心</title></头><body><div style=“text-align:center;”><div style=“width:500px;margin:0 auto;background:#000;color:#fff;”>此div居中</div></body></html>

在IE、Firefox、Chrome、Safari和Opera中进行了测试和工作。我没有测试IE6。IE需要外部文本对齐。当您将DIV边距(左和右)值设置为auto时,其他浏览器(和IE9?)将工作。边距“0auto”是边距“0 auto 0 auto”(右上左下)的缩写。

注意:文本也位于内部DIV的中心,如果希望它保持在左侧,只需指定text-align:left;用于内部DIV。

编辑:在标准模式下运行的IE 6、7、8和9将在页边距设置为自动的情况下工作。

10
  • 2
    @麦克:这项技术对百分比宽度来说效果很好。然而,一般来说,要使自动边缘工作,您必须处于标准模式,为此您需要一个合适的<!DOCTYPE(文件类型)声明。以parent-text-align-center为中心的解决方案将适用于Quirks模式,但您绝对不希望今天在Quarks模式下编写任何内容。
    – 博宾塞
    2010年4月22日13:37
  • 2
    您需要用另一个div包装您的div,并将外部div的样式设置为IE的文本对齐
    – 埃里克
    2010年4月22日13:52
  • 2
    仅仅写一个解决方案并不能帮助人们学习。你应该试着去教书,而不是很快就把人除掉。 2010年4月22日13:58
  • 1
    回复:“IE需要外部文本对齐。”-适用于IE 5.5及更早版本!在IE6标准模式中添加了对自动边距的支持!
    – 昆汀
    2010年4月22日14:33
  • @教练:课程和书籍都是为了教学。堆栈溢出是为了寻找答案。
    – 刻痕
    2010年4月22日14:39
16

我认为align=“中心”对齐内容,因此如果您想使用该方法,则需要在“wraper”div中使用它,该div只包装其余部分。

水平对齐正在做类似的事情。

左:50%被忽略,除非您将div的位置设置为相对或绝对。

普遍接受的方法是使用以下属性

宽度:500px;//这可以是你想要的任何单位,你只需要定义它边缘左侧:自动;边缘-右侧:自动;

边距是自动的,这意味着边距会随着浏览器窗口(或父div)的变化而变化

更新

感谢Meo指出了这一点,如果你想的话,你可以节省时间,并使用短手技巧来获得利润。

边距:0自动;

这将顶部和底部定义为0(因为它是0,所以没有单位也无关紧要),左侧和右侧定义为“自动”。如果不想覆盖,可以像使用任何其他CSS规则一样使用顶部边距。

7
  • 可以使用内联样式作为边距。。边距:0自动; 2010年4月22日13:35
  • 问题是IE无法准确显示div居中;我尝试了margin-left-right:auto,但没有使用IE 2010年4月22日13:51
  • @我说得对。通常最好接受你的建议,因为它有助于减少文件大小,我不太清楚,但每一点都有帮助。尽管对于指南来说,它有助于解释“必需”属性以使其正常工作。
    – 牛仔
    2010年4月22日13:53
  • 1
    @麦克·泰勒(Mac Taylor)——这可能与不存在“边缘-左-右”属性有关。你必须先定义左边,然后再定义右边,或者按照我的建议去做。
    – 牛仔
    2010年4月22日13:54
  • 我只是试着快速打字,我知道没有这样的属性!休斯敦大学 2010年4月22日14:00
1

这取决于您的div是否处于位置:绝对/固定或相对/静态

位置:绝对和固定

<div style=“position:绝对;/*或固定*/;宽度:50%;高度:300px;左:50%;顶部:100px;利润率:0 0 0-25%“>blblablbalba

这里的诀窍是将负边距设置为对象宽度的一半

位置:相对和静态

<div style=“position:relative;/*或static*/;宽度:50%;高度:300px;边距:0 auto“>blblablbalba

对于这两种技术,必须设置宽度。

0
-1个

沿着这些路线走怎么样

<style type=“text/css”>#集装箱{边距:0自动;文本对齐:居中;/*用于IE*/}#你的女主角{宽度:400px;边框:1px实心#000;}</style>....<div id=“container”><div id=“yourdiv”>小便</div></div>
2
  • 2
    这在其他浏览器或标准模式下不起作用,因为自动边距需要与宽度位于同一元素上。
    – 博宾塞
    2010年4月22日13:39
  • 它在Quirks以外的模式下对我来说很好,我不理解持续的向下投票
    – 埃里克
    2010年4月22日14:04

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.