Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk memusatkan elemen img dalam div, seperti yang ditunjukkan dalam contoh di bawah

Kod HTML

<style>
    p {
        overflow: hidden ;
    }
    img {
        height: 100% ;
        width: auto ;
    }
</style>

<p>
    <img src='//foo.com/foo.jpg' />
</p>

Contoh gambar kesan yang diingini

Kawasan merah p, kawasan hijau img

Dalam erti kata lain, img lebih luas

Lebar img tidak tetap, jadi ia tidak boleh diselesaikan dengan membetulkan margin-kiri

Isihan lalai Pengisihan masa

13 jawapan

3

Ada cara, tetapi daripada menggunakan tag img, tambahkan imej latar belakang pada p.

p {
    background-image: url(image-url);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

    Dijawab pada 20 April
  • Komen
  • Sunting

227 Reputasi

1

Kedudukan gambar margin kiri:-(lebar/2) Bagi lebar img tidak tetap, ia boleh diperolehi oleh js dan kemudian secara dinamik menetapkan marginleft

  • Dijawab pada 20 April
  • Komen
  • Sunting

Lihatlah dunia dengan mata yang dingin177 Reputasi

1

Balut lapisan lain.

<p id="wrapper">
    <p id="wrapper2">
        <img src="demo_img3.jpg" alt="" />
    </p>
</p>
#wrapper{
    position: relative;
    width: 200px;
    height: 200px;
}
#wrapper2{
    position: absolute;
    left: 50%;
}
img{
    margin-left: -50%;
}

wrapper2的宽度是img宽度。imgmargin-left就等于自身宽的一半,相当于left:-50%*width

    Dijawab pada 20 April
  • · Dikemas kini pada 20 April
  • 2 Komen
  • Sunting

4.9k Reputasi

1

img ialah elemen blok sebaris dan boleh dijajarkan teks secara langsung di peringkat induk: tengah;

  • Dijawab pada 3 Mei
  • Komen
  • Sunting

hugangqiang117 Reputasi

1

Sebenarnya, kami ingin mencapai kesan pemusatan mendatar Berikut adalah empat kaedah untuk mencapai pemusatan mendatar (Nota: Dalam setiap contoh di bawah, operasi penjajaran elemen kanak-kanak dilaksanakan, dan bekas induk bagi elemen kanak-kanak ialah. unsur induk)

Gunakan blok sebaris dan penjajaran teks untuk melaksanakan

.parent{
    text-align: center;
}
.child{
    display: inline-block;
}

Kelebihan: keserasian yang baik;


Kelemahan: perlu menetapkan elemen anak dan elemen ibu bapa pada masa yang sama

Gunakan margin:0 auto untuk mencapai

.child{
    width:200px;
    margin:0 auto;
}

Kelebihan: Keserasian yang baik


Keburukan: Perlu nyatakan lebar

Gunakan jadual untuk melaksanakan

.child{
    display:table;
    margin:0 auto;
}

Kelebihan: Anda hanya perlu menyediakan sendiri


Kelemahan: IE6 dan 7 perlu melaraskan struktur

Menggunakan kedudukan mutlak

.parent{
    position:relative;
}
.child{
    position:absolute;
    left:50%;
    transform:translate(-50%);
}

Kelemahan: keserasian yang lemah, tersedia untuk IE9 dan ke atas

Pelaksanaan susun atur fleksibel yang praktikal

Kaedah pertama

.parent{
    display:flex;    
    justify-content:center;
}

Kaedah kedua

.parent{
    display:flex;
}
.child{
    margin:0 auto;
}

Kelemahan: keserasian yang lemah, jika susun atur kawasan besar dijalankan, kecekapan mungkin terjejas

    Dijawab pada 5 Mei
  • Komen
  • Sunting

yogi27 Reputasi

0

Balut p di luar Apabila img.onload, js mengira lebar dan menetapkannya ke lapisan luar. Tengahkan kandungan luar

    Dijawab pada 21 April
  • Komen
  • Sunting

16 Reputasi

0

Mula-mula berikan p kedudukan:relatif;

dan kemudian beri img {

position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);

}

Jika ia tidak serasi dengan c3, anda boleh berikan img{

position: absolute;
left: 0;
top: 0;
bottom:0;
right:0;
margin:auto;

}

  • Dijawab pada 21 April
  • Komen
  • Sunting

clownzoo11 Reputasi

0

1

img{
    display: block;
    margin: 0 auto;
}

2

p{
    text-align: center;
    
    img{
         display: inline-block;
    }
}

3

p{
    position: relative;
    
    img{
        position: absolute;
        left: 50%;
        top: 50%;
        margin: -(图片高度/2) 0 0 -(图片宽度/2)
    }
}

4 Gunakan flex

    Dijawab pada 21 April
  • · Dikemas kini pada 21 April
  • Komen
  • Sunting

227 Reputasi

0

Satu lapisan p di luar, dan satu lapisan p di dalam untuk mengehadkan saiz gambar

  • Dijawab pada 3 Mei
  • Komen
  • Sunting

Fujinishi22 Reputasi

0

Anda boleh melihat jika anda tidak mempertimbangkan isu keserasian

object-fit

    Dijawab pada 3 Mei
  • Komen
  • Sunting

865 Reputasi

0

给我你的怀抱给我你的怀抱2713 hari yang lalu1706

membalas semua(13)saya akan balas

  • ringa_lee

    ringa_lee2017-05-16 13:23:39

    Berikan elemen induk paparan: sel jadual dan kemudian tetapkan jajaran teks dan jajaran menegak yang lebih biasa

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:23:39

    css:

        .box{
            width: auto;
            height: 100px;
            position: absolute;
        }
        .box img{
            width: 300px;//随便改
            height: 100%;
            background: green;
        }
        .box .inner{
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            top: 0;
            margin: auto auto;
        }
    

    html:

    <p class="box">
        <img src="aaa.png" alt="">
        <p class="inner"></p>
    </p>

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 13:23:39

    kedudukan + transform

    balas
    0
  • Batalbalas