将按钮粘贴到div的右侧

And*_*rew 30 html css

http://jsfiddle.net/kn5sH/

我需要添加什么才能将按钮固定在div的右侧与标题位于同一行?

HTML:

<div>
    <h1> Ok </h1>
    <button type='button'>Button</button>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div {
    background: purple;
}

div h1 {
    text-align: center;
}

div button {
}
Run Code Online (Sandbox Code Playgroud)

进一步来说:

  1. 按钮的右侧应与div的右边缘相距x像素.
  2. 它应与标题位于同一行.
  3. 应该包含在div中(像浮动或相对定位的东西在视觉上将它弹出div)

可以用什么CSS技术来做到这一点?谢谢.

And*_*ndy 48

通常我会建议浮动,但从你的3个要求我会建议:

position: absolute;
right: 10px;
top: 5px;
Run Code Online (Sandbox Code Playgroud)

不要忘记position: relative;父div

DEMO


ram*_*nal 12

这取决于你想要达到的目标.

如果你只是想让它在右边,那么我建议不要使用绝对位置,因为它会打开一大堆蠕虫.

HTML也可以保持不变:

HTML

<div>
    <h1> Ok </h1>
    <button type='button'>Button</button>
</div>
Run Code Online (Sandbox Code Playgroud)

那么CSS应该是这样的:

CSS

div {
    background: purple;
    overflow: hidden;
}

div h1 {
    text-align: center;
    display: inline-block;
    width: 100%;
    margin-right: -50%;
}

div button {
    float: right;
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它:http://jsfiddle.net/azhH5/

如果您可以更改HTML,那么它会变得更简单:

HTML

<div>
    <button type='button'>Button</button>
    <h1> Ok </h1>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

div {
    background: purple;
    overflow: hidden;
}

div h1 {
    text-align: center;
}

div button {
    float: right;
    margin-left: -50%;
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它的实际效果:http://jsfiddle.net/8WA3k/1/

如果你想让按钮与文本在同一行,你可以通过这样做来实现:

HTML

<div>
    <button type='button'>Button</button>
    <h1> Ok </h1>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

div {
    background: purple;
    overflow: hidden;
}

div h1 {
    text-align: center;
}

div button {
    float: right;
    margin-left: -50%;
    margin-top: 2em;
}
Run Code Online (Sandbox Code Playgroud)

你看到这里的行动:http://jsfiddle.net/EtqVh/1/

在最恐怖的例子中,您必须调整指定字体大小的margin-top <h1>

编辑:

正如你所看到的,它不会弹出<div>,直到内部.这是通过两件事来实现的:负的边缘<button>,而且overflow: hidden;<div>

编辑2:

我刚看到你也想让它离右边的边缘有点远.用这种方法很容易实现.只需添加margin-right: 1em;<button>,像这样:

div {
    background: purple;
    overflow: hidden;
}

div h1 {
    text-align: center;
}

div button {
    float: right;
    margin-left: -50%;
    margin-top: 2em;
    margin-right: 1em;
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它:http://jsfiddle.net/QkvGb/


Ton*_*tio 8

另一种解决方案:改变利润率.根据按钮的兄弟姐妹,display应进行修改.

button {
    display:      block;
    margin-left:  auto;
    margin-right: 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一个完美且简单的解决方案! (3认同)

Ahm*_*med 6

<div>
    <h1> Ok </h1>
    <button type='button'>Button</button>
    <div style="clear:both;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

的CSS

div {
    background: purple;
}

div h1 {
    text-align: center;
}

div button {
    float: right;
    margin-right:10px;

}
Run Code Online (Sandbox Code Playgroud)


dot*_*008 6

div {
 display: flex;
 flex-direction: row-reverse;
}
Run Code Online (Sandbox Code Playgroud)