垂直对齐元素以匹配相邻元素中间线

时间:2018-02-28 11:40:58

标签: html css vertical-alignment

我有一个按钮,一个div和一个跨度相邻的行

我需要所有这些像这样垂直对齐中心

enter image description here

下面是我的代码



button{
  height: 50px;
}

div{
  display: inline-block;
  height: 70px;
  border: 2px solid black;
  padding: 10px;
}
h1{
  display: inline-block;
}

<div></div>
<button>Button</button>
<span>Span</span>
<div>div</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

我建议在这种情况下使用flex。

如果在元素周围包装容器,则可以将子元素与中心对齐。请参阅代码段。

class TestExpression
{
    public string GetValue(Expression<Func<object>> field)
    {
        string str = GetColumnName(field);
        //Do something with 'str'
        return str;//Return modified 'str'
    }

    public string GetColumnName<TType>(Expression<Func<TType>> field)
    {
        var me = field.Body as MemberExpression;
        if(me == null)
        {
            throw new ArgumentException("You must pass a lambda of the form: '() => Class.Property' or '() => object.Property'");
        }
        return me.Member.Name;
    }
}

public sealed class MyClass
{
    public static int StaticProperty { get; set; }
    public int InstanceProperty { get; set; }
}
TestExpression te = new TestExpression();
string name;
name = te.GetColumnName(() => MyClass.StaticProperty);//Works correctly
name = te.GetColumnName(() => new MyClass().InstanceProperty);//Works correctly

name = te.GetValue(() => MyClass.StaticProperty);//Fail
name = te.GetValue(() => new MyClass().InstanceProperty);//Fail

我希望这会有所帮助。

答案 1 :(得分:0)

如果您引入父元素,则可以使用flexbox:

{{1}}
{{1}}