红色方块是我的按钮。
我的问题是我的标题和我的按钮不在同一行。所以我尝试使用一个表,但是两个都对齐了左边。
之后我使用float: right;
作为我的按钮。
它现在正确对齐,但在下一行。
如何解决这个问题,以便我的按钮和标题位于同一行,并与我的照片对齐。
HTML:
<div id="topbar">
<h1>Fahrplan</h1>
<button type="button" id="settings"></button>
</div>
CSS:
h1 {
height: 44px;
margin: 0;
color:#FFFFFF;
text-align: center;
font-family: Helvetica, sans-serif;
font-size: 16px;
line-height: 44px;
}
#topbar button {
height: 20px;
width: 20px;
float: right;
}
答案 0 :(得分:4)
对于这种情况,您可以考虑使用position
s。
#topbar {
position: relative;
}
h1 {
margin: 0;
color:#FFFFFF;
text-align: center;
font-family: Helvetica, sans-serif;
font-size: 16px;
line-height: 44px;
background: #99f;
}
#topbar button {
height: 20px;
width: 20px;
position: absolute;
top: 50%;
right: 5px;
margin-top: -10px;
}
&#13;
<div id="topbar">
<h1>Fahrplan</h1>
<button type="button" id="settings"></button>
</div>
&#13;
我在position
和按钮上都给了#topbar
。 #topbar
位置relative
,按钮位置absolute
:
#topbar {
position: relative;
}
button {
position: absolute;
top: 50%;
right: 5px;
margin-top: -10px;
}
我还使用一半高度的负边距将按钮调整为垂直居中。希望这会有所帮助。
答案 1 :(得分:2)
我建议您使用absolute
和translateY()
将您的按钮垂直对齐。
Demo(注意:我在jsFiddle上使用SCSS,所以不要混淆语法)
header {
height: 40px;
background: tomato;
position: relative;
h4 {
line-height: 40px;
text-align: center;
}
button {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 10px;
}
}
<强>解释强>
我正在使用position: absolute;
将按钮移到右侧。对于按钮的垂直居中,您可以使用top: 50%
和transform
在标题中间垂直轻推按钮。它将始终保持垂直居中,而不会声明任何静态height
。
答案 2 :(得分:1)
为了您的兴趣,以下是使用内联块的方法。
div > * {
display:inline-block;
vertical-align:middle;
}
h1 {
width:100%;
text-align:center;
margin-right:-40px;
background-color:#4F81BD;
color:#FFF;
font-family: Helvetica, sans-serif;
font-size: 16px;
height: 44px;
}
button {
height: 30px;
width: 30px;
margin-right:-6px;
border: 3px solid #8C3836;
border-radius:5px;
background-color:#C0504D;
}
&#13;
<div id="topbar">
<h1>Fahrplan</h1>
<button type="button" id="settings"></button>
</div>
&#13;
答案 3 :(得分:0)
以下是使用http://tachyons.io
执行此操作的快速演示<div class="bg-light-gray dt w-100">
<div class="dtc v-mid w3"></div>
<div class="dtc v-mid tc pv3">
<h1 class="mv0 f5">Headline</h1>
</div>
<div class="dtc v-mid tr w3 pr2">
<button class="bg-black br2 h2 w2"></button>
</div>
</div>
CSS: .br2 { border-radius:.25rem; }
.dt {
display: table;
}
.dtc {
display: table-cell;
}
.h2 {
height: 2rem;
}
.w2 {
width: 2rem;
}
.w3 {
width: 4rem;
}
.w-100 {
width: 100%;
}
.bg-black {
background-color: #111;
}
.bg-light-gray {
background-color: #eee;
}
.pr2 {
padding-right: .5rem;
}
.pv3 {
padding-top: 1rem;
padding-bottom: 1rem;
}
.mv0 {
margin-top: 0;
margin-bottom: 0rem;
}
.tr {
text-align: right;
}
.tc {
text-align: center;
}
.f5 {
font-size: 1rem;
}
.v-mid {
vertical-align: middle;
}
演示: https://jsfiddle.net/r21mdrzs/
缺点是你包含一个空div。好的一面是,即使你放大或缩小,改变按钮的字体大小或大小,一切都将始终与中间对齐,无论如何。根据我的经验,这比使用幻数值进行定位要脆弱。
答案 4 :(得分:-1)
提供标题浮动属性;
.classNameGiveToHeading {
float: left;
}
.buttonClassName {
float: right;
}
或给&#34;浮动:正确&#34;你喜欢他们两个。