我在这里有一个有效的代码:(您可能需要将结果窗口放大以查看居中对齐效果)
题
该代码工作正常,但我不喜欢这样display:table;
。这是使环绕类对齐中心的唯一方法。我认为,如果有一种使用方法display:block;
或更好display: inline-block;
。是否可以用其他方法解决对齐中心?
对我来说,向容器添加一个固定的不是一个选择。
如果将来JS Fiddle链接损坏,我还将在这里粘贴代码:
body {
background: #bbb;
}
.wrap {
background: #aaa;
margin: 0 auto;
display: table;
overflow: hidden;
}
.sidebar {
width: 200px;
float: left;
background: #eee;
}
.container {
margin: 0 auto;
background: #ddd;
display: block;
float: left;
padding: 5px;
}
.box {
background: #eee;
border: 1px solid #ccc;
padding: 10px;
margin: 5px;
float: left;
}
.box:nth-child(3n+1) {
clear: left;
}
<div class="wrap">
<div class="sidebar">
Sidebar
</div>
<div class="container">
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
</div>
<div class="sidebar">
Sidebar
</div>
</div>
可接受的解决方案对我而言不起作用,因为我需要一个子元素display:inline-block
在100%宽度的父级中水平和垂直居中。
我使用了Flexbox的justify-content
和align-items
属性,分别允许您将元素水平和垂直居中。通过将两者都设置center
为父元素,子元素(甚至多个元素!)将完美地位于中间。
此解决方案不需要固定的宽度,这对我来说不合适,因为我的按钮文本会更改。
这是CodePen演示和以下相关代码的片段:
.parent {
display: flex;
justify-content: center;
align-items: center;
}
.child {
display: inline-block;
}
<div class="parent">
<a class="child" href="#0">Button</a>
</div>
问题内容: 我想了解当CSS是CSS元素的DOM子元素(因此block元素是inline元素的子元素)时会发生什么情况。 CSS 2.1规范的“ 匿名块框”部分描述了这种情况:该示例包括以下规则… …以及随附的文字说… BODY元素包含一个匿名文本块(C1),然后是一个块级元素,然后是另一个匿名文本块(C2)。结果框将是围绕BODY的匿名阻止框,其中包含C1周围的匿名阻止框,P阻止框和C2周围包含
是否可以在CSS中使用内联SVG定义? 我的意思是:
问题内容: 我与几个工作被设置为s ,并有一组和。在HTML中,如果在每行之后都有一个换行符,则会在div的右侧和底部自动添加5px的边距。 例: 是否有我忽略的属性可以让我重置自动保证金? 更新资料 从我发现的结果来看,没有任何方法可以消除空白…除非您将所有内容都放在同一行,或者添加注释以注释掉换行符。例: 这不是最佳的解决方案,但是如果您有多行代码,则仍然更易于阅读。 问题答案: div被视为
问题内容: 有人可以帮我解决这个错误吗?使用Firefox可以正常工作,但是不能使用Internet Explorer 7。好像看不懂了。 HTML: CSS: 问题答案: IE7 黑客如下: 默认情况下,IE7仅支持自然元素(Quirksmode兼容性表),因此您仅需要针对其他元素进行破解。 是在那里触发行为的,我们使用star属性hack来仅将IE7及更低版本中的设置为(新的浏览器将不应用此功
问题内容: 说我有以下代码 我希望它在IE8中显示内联。我到处阅读的所有内容都说这应该可行,IE8支持内联块。但是,经过一个上午的尝试,我无法获得上述排队。我知道我可以浮动它,但要使用页面上的其他元素(此处未显示),我需要使用一个“ clearfix”,其标记更多。我只需要针对IE8,很想知道为什么内联块对我显然不起作用,但对我来说却不起作用。在Google Chrome浏览器中,上面的代码可以实
问题内容: 我正在处理一些设置为并具有和的。在HTML中,如果在每行之后都有一个换行符,则会在div的右侧和底部自动添加5px的边距。 例: 是否有我忽略的属性可以让我重置自动保证金? 更新资料 从我发现的结果来看,没有任何方法可以消除空白…除非您将所有内容都放在同一行,或者添加注释以注释掉换行符。例: 这不是最佳的解决方案,但是如果您有多行,它仍然更易于阅读。 问题答案: div被视为内联元素。