在绝对位置的div中垂直对齐按钮

用户3852837

通常,我会在top:50%,和绝对定位的div内垂直居中放置一个按钮,margin-left:-(height/2)但是今天我意识到它并不完美,或者我不知道如何正确使用它。

例如,我做了2个例子。在第一个示例中,<a>标签是一个内联元素,在第二个示例中,它是一个block元素。block元素的定位是完美的,但不幸的是宽度为100%。

请说明为什么第二个示例可以很好地与配合使用display:block;

我真的对您的跨浏览器解决方案感兴趣。您如何处理这些简单的东西?

这是我的CSS:

.container {
    height:240px;
    position:relative;
}

.box {
    width:200px;
    height:100%;
    position:absolute;
    left:0;
    top:0;
    background:yellow;
    text-align:center;
    padding:20px;
}

#example2 { left: 250px; }

.btn {
    display:inline-block;
    padding:5px 12px;
    line-height:34px;
    color:#fff;
    background:red;
    position:relative;
    top:50%;
    margin-top:-17px;
}

#example2 .btn { display:block; }

..和html

<div class="container">
    <div id="example1" class="box">
        <a href="" class="btn">button</a>
    </div>
    <div id="example2" class="box">
        <a href="" class="btn">button</a>
    </div>
</div>

在线版本可从http://jsfiddle.net/79hqgabq/2/获得。

施博

您看到的对齐问题是margin-top: -17px由此更新的小提琴所看到引起的,而.btn该类上删除了该行更新的演示

另外,垂直对齐对于旧的CSS选择器来说是成问题的,除非您需要支持旧的浏览器,否则过渡到Flexbox是一个好主意

这是新display: flex选择器和相应子选择器的问题:带Flexbox的演示这消除了必须进行像素软化以获得正确的垂直对齐的重点。

.box

.box {
    width:200px;
    height:100%;
    position:absolute;
    left:0;
    top:0;
    background:yellow;
    text-align:center;
    padding:20px;
    /* New lines for alignment */
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn课程(只删除了旧标签)

.btn {
    display:inline-block;
    padding:5px 12px;
    line-height:34px;
    color:#fff;
    background:red;
}

编辑:研究块元素后,该属性具有可扩展到父容器的100%的属性。这可以在这里更详细地说明这就是display:blockdiv扩展直到到达.box类中的填充的原因

回答为什么display: inline-block元素稍微未对齐的原因是,默认情况下元素在上对齐baseline请参阅此处以供参考。更改div的垂直对齐方式vertical-align: top将解决此问题。

这是新的小提琴,仅将其以前的语法与添加的vertical-align: middle属性一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在绝对位置的div中滚动div

来自分类Dev

垂直对齐的绝对定位div

来自分类Dev

Div垂直对齐

来自分类Dev

将Div与绝对位置垂直对齐

来自分类Dev

在绝对位置的div中截断文本

来自分类Dev

css。绝对位置DIV中的垂直中心

来自分类Dev

在项目列表中垂直对齐按钮

来自分类Dev

在div中垂直对齐div

来自分类Dev

绝对div的垂直对齐中心

来自分类Dev

与CSS垂直对齐时何时使用绝对位置与相对位置

来自分类Dev

在div中垂直对齐div

来自分类Dev

使用垂直对齐将div中的按钮垂直居中

来自分类Dev

在div中垂直对齐输入元素

来自分类Dev

在div中垂直对齐img?

来自分类Dev

<div>垂直对齐

来自分类Dev

垂直对齐的绝对定位div

来自分类Dev

Div垂直对齐

来自分类Dev

在绝对位置的div中垂直和水平对齐锚点

来自分类Dev

绝对定位的div内文本的响应式垂直对齐

来自分类Dev

在项目列表中垂直对齐按钮

来自分类Dev

使用绝对位置水平和垂直居中div

来自分类Dev

与CSS垂直对齐时何时使用绝对位置与相对位置

来自分类Dev

div内的Bootstrap垂直对齐按钮

来自分类Dev

位置:绝对和垂直对齐:中间

来自分类Dev

溢出隐藏不适用于“垂直对齐的底部” - 绝对定位的外部 div 中的 div

来自分类Dev

如何垂直对齐div中的链接和按钮?

来自分类Dev

在 div 中垂直对齐 div,以及

来自分类Dev

在具有绝对位置的伪元素中垂直对齐

来自分类Dev

垂直和水平在div中居中div,绝对位置