(Arka plan) bir görüntü div içinde nasıl ortalanır?


136

Arka plan resmini div'de ortalamak mümkün mü? Hemen hemen her şeyi denedim - ama başarı yok:

<div id="doit">
  Lorem Ipsum ...
</div>

//CSS
#doit { background-image: url(images/pic.png); background-repeat: none; text-align: center; }

Mümkün mü?

Yanıtlar:


279
#doit {
    background: url(url) no-repeat center;
}

25
Teşekkürler. Merkezleme için özel CSS "arka plan konumu: merkez" dir.
pmont

@Yeşil: Sprite arka plan görüntüleri için cevabımı görün.
Clayton

3
Tüm div görüntüsüyle doldurulmasını ve fazladan boşluk olmaması background-size: cover; istiyorsanız, görüntünün herhangi bir kısmı kesilmeden veya uzatılmadan gösterilmesini istiyorsanız, kullanmak istediğinizbackground-size: contain;
Zlerp

80

Deneyin background-position:center;

DÜZENLEME: Bu soru çok sayıda görüntüleme aldığından, ekstra bilgi eklemeye değer:

text-align: center arka plan görüntüsü belgenin bir parçası olmadığından ve bu nedenle akışın bir parçası olmadığından çalışmaz.

background-position:centerkısaltmasıdır background-position: center center; ( background-position: horizontal vertical);


aslında ihtiyacın varbackground-position:center;
Dave Sag

Seçilen cevap, tüm arka planımın bir nedenden dolayı kaybolmasına neden oluyor (adil olmak için, buna neden olabilecek bazı jquery şeyleri yapıyorum?), Ancak bu cevap işe yarıyor. Oyla.
bwoogie

15

Arka plan konumunu kullan:

background-position: 50% 50%;

1
görüntüyü yatay olarak ortalanmış ancak dikey olarak üstten almanız gerekiyorsa yararlı olur: arka plan konumu:% 50% 0;
Sébastien Gicquel

% 50 0 daha kısadır ;-) CSS'de, değer 0 olduğunda asla herhangi bir birime ihtiyacınız yoktur
Kapsül

8

Arka plan resmini ortalamak veya konumlandırmak için background-positionözelliği kullanmalısınız . Background-position özelliği başlatılmasını arka plan resmi konumunu belirler topve leftelemanın tarafını. CSS Sözdizimi background-position : xvalue yvalue;.

"xvalue" ve "yvalue" destekli değerler, gibi uzunluk birimleri pxve sol, sağ vb. yüzde ve yön adlarıdır.

"Xvalue", arka planın yatay konumudur ve öğenin üstünden başlar. Bu, kullanırsanız 50pxöğelerin üstünden "50 piksel" uzakta olacağı anlamına gelir . Ve "yvalue" aynı koşula sahip dikey konumdur.

Yani background-position: center;arka plan görüntünüzü kullanırsanız ortalanacaktır.

Ama ben her zaman bu kodu kullanın:

.yourclass {
  background: url(image.png) no-repeat center /cover;
 }

Çok kafa karıştırıcı olduğunu biliyorum ama şu anlama geliyor:

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

Ve ben de background-sizeyeni bir özellik olduğunu ve sıkıştırılmış kod ne olduğunu biliyorum /coverama bu kodları fillarka plan boyutlandırma ve windows masaüstü arka planda konumlandırma anlamına gelir .

Sen hakkında daha fazla ayrıntı görebilirsiniz background-positioniçinde burada ve background-sizede burada .


7

Arka plan resminiz dikey olarak hizalanmış hareketli grafik sayfasıysa, her hareketli grafiği yatay olarak şu şekilde ortalayabilirsiniz:

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: 50% [y position of sprite];
}

Arka plan resminiz yatay olarak hizalanmış bir hareketli grafik sayfasıysa, her hareketli grafiği dikey olarak ortalayabilirsiniz:

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: [x position of sprite] 50%;
}

Hareketli grafik sayfanız kompaktsa veya arka plan resminizi yukarıda belirtilen senaryolardan birinde ortalamaya çalışmıyorsanız, bu çözümler geçerli değildir.


5

Bu benim için çalışıyor:

#doit{
    background-image: url('images/pic.png');
    background-repeat: no-repeat;
    background-position: center;  
}  

3

Bu benim için çalışıyor:

.network-connections-icon {
  background-image: url(url);
  background-size: 100%;
  width: 56px;
  height: 56px;
  margin: 0 auto;
}

1
margin: 0 auto;burada autodiv içinde yatay olarak ortalar. Teşekkür ederim!
oyalhi

1

Bu benim için çalışıyor:

<style>
   .WidgetBody
        {   
            background: #F0F0F0;
            background-image:url('images/mini-loader.gif');
            background-position: 50% 50%;            
            background-repeat:no-repeat;            
        }
</style>        

0

Bu benim için imajı div'ın merkezine hizalamak için işe yarar.

.yourclass {
  background-image: url(image.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.