快速提问,我有一个内置H1的DIV,现在,我希望将我的H1置于这个DIV中......
我尝试以下不起作用:
设置H1:
display:inline
margin-left: auto ;
margin-right: auto ;
但是我尝试了这个并且确实有效,有人可以解释为什么上述不起作用吗?
设置H1:
width: 35%;
margin-left: auto ;
margin-right: auto ;
答案 0 :(得分:5)
您可以使用填充来获得紧密的边框,而无需将h1设置为内联(使用自动边距不能居中)。
h1 {
padding: 0;
width: 35;
margin-left: auto;
margin-right: auto;
// border: ...
}
答案 1 :(得分:4)
块级元素在它之前和之后都有一个换行符,因此它具有明确的开始和结束。它是矩形的,可以定义宽度。
内联级别元素包含在块级元素中,可以跨越多行,而不必定义矩形区域。根据内联元素w3c Visual formatting model的第10.3节:'width'属性不适用。 'margin-left'或'margin-right'的计算值'auto'成为'0'的使用值。
你不能将可能从一行中间开始并以另一行中间结尾的东西居中。
例如,你如何居中左侧的文字,这是粗体并跨越两行?
答案 2 :(得分:1)
您是否尝试过“text-align:center”?
答案 3 :(得分:1)
在DIV上使用“text-align:center”
答案 4 :(得分:1)
第一个不起作用,因为在内联元素上,自动边距为零。
保证金:自动; 对内联元素起作用,它与块级元素的效果不同。(为了证明这一点:如果您采用内联元素,对其应用特定的保证金,然后对其应用自动保证金,其保证金将为零。)
答案 5 :(得分:0)
我想你想在H1上加上“text-align:center”。请参阅this documentation。
此外,您可以删除左边距和右边距规则。
答案 6 :(得分:0)
我不认为您的第一个解决方案有效,因为您将其设置为内联,并且只有块级元素可以被赋予自动边距IIRC。此外,如果不设置明确的宽度,自动边距技巧就不会太大。
答案 7 :(得分:0)
试试这个
h1 {margin: 0pt auto; display: inline-block; min-width: 1%;}
答案 8 :(得分:0)
考虑到你声明你的H1需要一个不会延伸到它的父容器的边框,我建议在DIV包装器和H1元素上使用样式的组合(将其粘贴到其中播放):
<style type="text/css">
div.myHeadingClass {
text-align: center;
border: 1px solid #d7d7d7;
padding: 15px;
}
div.myHeadingClass h1 {
display: inline;
padding: 10px;
border: 1px solid red;
}
</style>
<div class="myHeadingClass">
<h1>My Big Ole Heading</h2>
</div>
答案 9 :(得分:0)
老兄,这很简单。就像上面说的那样。
只需将H1设置为填充0,而不是执行“margin-right:auto; margin-left:auto;”省去麻烦,并设置“margin:auto”以及设置的宽度。快捷方便。