图片 + 未知宽高 + 垂直居中

图片 + 未知宽高 + 垂直居中

第一种: table-cell / inline-block + vertical-align
条件: 容器宽高受图片默认宽高影响
html结构:

        <div>
                <img src="./image.jpg" >
        </div>

css代码:

      div {
              display: inline-block;
              /*display: table-cell;*/
              padding: 10px;
              border: 2px solid #aaa;
          }
      img {
              vertical-align: middle;
          }

关键点:

  1. display:inline-block :使得容器(即<div>)的宽度和高度随图片大小改变
  2. vertical-align: middle :使得图片在容器内部垂直居中
  3. inline-blocktable-cell实现起来有区别,前者中容器的大小与这个容器内的图片大小有关,后者容器的长度与这个容器内图片的长度有关,容器的高度与那一行中所有容器内图片高度的最大值有关

第二种:“隐藏物体” + vertical-align
条件: 容器宽高已知且大于图片默认宽高
html结构:

    <div class="container">
        <img src="./image.jpg" >
        <span class="hidden"></span>
    </div>

css代码:

        .container {
            width: 800px;
            height: 600px;
            border: 2px solid #ddd;
            text-align: center;
        }

        img {
            vertical-align: middle;
        }

        .hidden {
            height: 100%;
            width: 0;
            vertical-align: middle;
            display: inline-block;
        }

关键点:

  1. .hidden元素以height:100%伸张自容器(即.container)顶部到容器底部,以width:0加以隐藏
  2. <img>的vertical-align:middle和.hidden的vertical-align:middle规定<img>元素和.hidden元素必须根据双方的中部对齐排列

第三种:透明.gif + background-image:url(‘./图片.jpg‘)
条件: 容器宽高已知且决定图片宽高

    ‘transparent.gif‘:    透明的gif格式图片;
    ‘background-image‘:   需要展示的图片;

html结构:

        <li>
               <img src="./transparent.gif" >
        </li>

css代码:

          li {
                  list-style: none;
                  width: 256px;
                  height: 256px;
                  padding: 20px;
                  border: 2px solid #ddd;
             }
          img{
                  width: 100%;
                  height: 100%;
                  display: block;

                  background-position: center;
                  background-image: url(‘./image.jpg‘);
                  background-size: 100%;
                  background-repeat: no-repeat;
             }

关键点:

  1. transparent.gif :透明,使得背景图片成为展示图片
  2. background-position: center :使得背景图片在容器(即<img>)中垂直居中

原文地址:https://www.cnblogs.com/jlfw/p/12545476.html

时间: 2024-11-05 14:48:58

图片 + 未知宽高 + 垂直居中的相关文章

图片水平垂直居中于DIV(图片未知宽高)

HTML代码: <div class=”demo”><a href=“#”><img src=“images/01.jpg” /></a></div> css /*For Firefox Chrome*/.demo{border:1px #ddd solid;width:208px;height:148px;overflow:hidden;text-align:center;display:table;float:left;margin:50px

table-cell实现未知宽高图片,文本水平垂直居中在div

<BODY> <h1>未知宽高的图片水平垂直居中在div</h1> <!--box-outer--> <div class="box-outer"> <div class="box"> <img src="images/01.jpg" /> </div> </div> <!--box-outer--> <h1>多行文

未知宽高的元素水平垂直居中方法总结

1.父元素设置display:table;子元素设置display:table-cell; 缺点:IE7不支持,而且子元素会填满父元素,不建议使用 2.使用css3 transform:translate(-50%; -50%) 缺点:兼容性不好,IE9+ 3.使用flex布局 缺点:兼容性不好,IE9+ 4.利用伪类元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

css如何实现未知宽高div中图片垂直水平居中效果

css如何实现未知宽高div中图片垂直水平居中效果:在有时候可能有这样的情况,那就是想让一个图片在div中实现垂直水平居中效果,但是有时候div的尺寸是位置的,下面通过代码实例介绍一下在这种情况下如何实现图片的垂直水平居中效果.代码如下:实例一: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&q

CSS未知宽高元素水平垂直居中

方法一 思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(parent)可以动态的改变高度(table元素的特性)缺点:IE8以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>未知宽高元素水平垂直居中&l

未知宽高元素水平垂直居中

一.transform <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">

未知宽高div水平垂直居中3种方法

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">方法1 <div

css/css3实现未知宽高元素的垂直居中和水平居中

其实在平常的一些布局中也经常有要实现元素的垂直居中和水平居中的的需要,下面来写几种css/css3实现的未知宽高元素的水平和垂直居中的写法 ps:不考虑兼容问题(下次会写js实现元素的水平and垂直居中 ) 第一种 css3的transform .ele{ /*设置元素绝对定位*/ position:absolute; /*top 50%*/ top: 50%; /*left 50%*/ left: 50%; /*css3 transform 实现*/ transform: translate(

不定宽高垂直居中分析

昨天做移动项目是,遇到这样一个案例,如图,图片容器随着视口宽度进行自由拉伸扩张,图片不定宽高,垂直居中: 当时做这个布局的时候,我一直想到用display:table-cell通过vertical-align:middle,来实现居中,可以当我在同一个节点用position:absolute,会导致此居中问题失效. 最后想到的解决方案,案例如下,不定宽高垂直居中: <!DOCTYPE HTML> <html lang="en-US"> <head>