css 将内联块DIV与容器元素的顶部对齐

sycxhyv7  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(59)

当两个inline-blockdiv有不同的高度时,为什么两个中较短的一个不与容器的顶部对齐?(DEMO):

.container { 
    border: 1px black solid;
    width: 320px;
    height: 120px;    
}

.small {
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue;    
}

.big {
    display: inline-block;
    border: 1px black solid;
    width: 40%;
    height: 50%;
    background: beige;    
}

个字符
如何将小div对齐到其容器的顶部?

b5lpy0ml

b5lpy0ml1#

因为vertical-align默认设置为 baseline
使用vertical-align:top代替:

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue;   
    vertical-align:top; /* <---- this */
}

字符串
http://jsfiddle.net/Lighty_46/RHM5L/9/
或者正如@f00644所说,你也可以将float应用于子元素。

cczfrluj

cczfrluj2#

你需要给你的两个子div添加一个vertical-align属性。
如果.small总是较短,则只需要将该属性应用于.small。但是,如果任何一个都可能是最高的,则应将该属性应用于.small.big

.container{ 
    border: 1px black solid;
    width: 320px;
    height: 120px;    
}

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue; 
    vertical-align: top;   
}

.big {
    display: inline-block;
    border: 1px black solid;
    width: 40%;
    height: 50%;
    background: beige; 
    vertical-align: top;   
}

字符串
垂直对齐会影响行内或表格单元格框,此属性有很多不同的值。请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align了解更多详细信息。

cunj1qz1

cunj1qz13#

div使用display: flex属性

Flexbox项目在交叉轴的起点对齐。默认情况下,交叉轴是垂直的。这意味着Flexbox项目将在顶部垂直对齐。
参见以下代码:

.container {
  border: 1px black solid;
  width: 320px;
  height: 120px;
  display: flex;
  /** CSS flex */
}

.small {
  display: inline-block;
  width: 40%;
  height: 30%;
  border: 1px black solid;
  background: aliceblue;
}

.big {
  display: inline-block;
  border: 1px black solid;
  width: 40%;
  height: 50%;
  background: beige;
}

个字符

**浏览器兼容性:Flexbox在现代浏览器中得到很好的支持。

xytpbqjk

xytpbqjk4#

将overflow:auto添加到容器div. http://www.quirksmode.org/css/clearing.html此网站显示了出现此问题时的几个选项。

6jjcrrmo

6jjcrrmo5#

<style type="text/css">
        div {
  text-align: center;
         }

         .img1{
            width: 150px;
            height: 150px;
            border-radius: 50%;
         }

         span{
            display: block;
         }
    </style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type='password' class='secondInput mt-4 mr-1' placeholder="Password">
  <span class='dif'></span>
  <br>
  <button>ADD</button>
</div>

<script type="text/javascript">

$('button').click(function() {
  $('.dif').html("<img/>");

})

字符串

相关问题