【问题标题】:Image vertical align middle fix code图像垂直对齐中间修复代码
【发布时间】:2013-08-07 16:59:13
【问题描述】:

我想使图像适合垂直对齐,但我仍然无法解决这个问题。我有这个不能正常工作的代码:

CSS:

#bigpic {
    width: 248px;
    height: 315px;
    float: left;
    margin: 0 0 30px 0;
    text-align: center;
}

.helper {
    float: left;
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}

#bigpic img {
    vertical-align: middle;
    max-width: 248px;
    max-height: 315px;
}

HTML:

<div id="bigpic">
    <span class="helper"></span>
    <img src="http://lorempixel.com/100/200" />
</div>

我只是没有看到任何问题,为什么它不起作用。 Jsfiddle在这里http://jsfiddle.net/3X7rg/。回答到 jsfiddle 将是最好的。提前谢谢。

【问题讨论】:

    标签: html css image vertical-alignment


    【解决方案1】:

    添加line-height: 315px 演示:http://jsfiddle.net/3X7rg/2/

    #bigpic {
        width: 248px;
        height: 315px;
        float: left;
        margin: 0 0 30px 0;
        text-align: center;
        border: 1px solid black;
        line-height: 315px; /*must equal must be equal to height of the div*/
    }
    

    【讨论】:

    • 记住行高必须等于 div 的高度。否则它不会工作
    【解决方案2】:

    您可以根据自己的位置和百分比进行比赛。 http://jsfiddle.net/3X7rg/10/

    #bigpic {
    position: absolute;
    float: left;
    left: 200px;
    width: 248px;
    height: 315px;
    border: 1px solid black;
    }
    
    #bigpic img {
    position: absolute;
    width: 100px;
    height: 200px;
    left: 50%;
    top: 50%;
    margin: -100px 0 0 -50px;
    }
    

    【讨论】:

      【解决方案3】:

      这是另一种方法。我更喜欢这种方法,因为它允许 可变高度 的 div 以及图像。所以我不必手动设置高度

      WORKING DEMO

      这是使用 CSS 中的 table-cell & vertical-align 属性 实现的

       display: table-cell;
       vertical-align: middle;
      

      【讨论】:

      • 同意@AnaMaria。但是您不认为这是当时使用伟大的&lt;table&gt;, &lt;tr&gt;, &lt;td&gt;s进行网站布局时使用的典型表格方法吗?在无表设计中,inline-block 是一种理想的方法,应该用来实现这种效果?
      • @Nathan lee,同意。只是想为一个问题提出不同的解决方案。
      • @NathanLee,顺便说一句,我以前工作的公司仍然使用 td 和 tr.. 他们很烂:)
      • 那很好:) - @AnaMaria。我很想知道那些没有表格的事情会出现。
      • 嗯.. 事实上,当您拥有所见即所得的编辑器设计视图以快速完成工作时,它仍然被认为是非常安全和传统的方法,无需学习太多知识即可完成工作任何主要的浏览器问题。但现在是继续前进的时候了,如果不是今天,但在不久的将来,他们必须学习新事物。 - @AnaMaria。即使在我以前的公司,他们也使用表格:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 2010-12-03
      • 2022-12-23
      • 1970-01-01
      相关资源
      最近更新 更多