user2340403
user2340403

Reputation: 19

How to center images while keeping them responsive?

Hi please take a look at my site, below is the code snippet in question i have to center my images since ive never had any luck with the css-html methods. The problem is because its set to wait for document.ready() sometimes it will place all my images to the right. Ive tried window.load() but the images center offscreen at smaller window sizes. It was also suggested i try

<div style="
  background: url('Assets/image.png') center center no-repeat;
  width: 100%;
  height: 500px;
 ">
 </div>

but this causes it to lose responsiveness. Ive searched around and i cant find a solution, i just need my images (and the one form) to stay centered and for the images to scale down with the window size.

site: http://bit.ly/11nAQJK

<script type="text/javascript"> //Centering Script


$(document).ready(function () {
    updateContainer();
    $(window).resize(function() {
        updateContainer();
    });
});


function updateContainer() {


(function ($) {
$.fn.vAlign = function() {
    return this.each(function(i){
    var h = $(this).height();
    var oh = $(this).outerHeight();
    var mt = (h + (oh - h)) / 2;    
    $(this).css("margin-top", "-" + mt + "px"); 
    $(this).css("top", "50%");
    $(this).css("position", "absolute");    
    }); 
};
})(jQuery);

(function ($) {
$.fn.hAlign = function() {
    return this.each(function(i){
    var w = $(this).width();
    var ow = $(this).outerWidth();  
    var ml = (w + (ow - w)) / 2;    
    $(this).css("margin-left", "-" + ml + "px");
    $(this).css("left", "50%");
    $(this).css("position", "absolute");
    });
};
})(jQuery);

Upvotes: 1

Views: 7254

Answers (5)

Carl Wilson
Carl Wilson

Reputation: 189

center a responsive sized element

/* element/id/class */ 
/* margin is 100 - width / 2 */

img {
width:34%;    
margin: 0 33%;
}

Upvotes: 0

Dom
Dom

Reputation: 2325

If you won't accept the method suggested by others, I would suggest using em's. Best to use them everywhere, but you could just apply them to your images.

Then use media queries to scale up/down all elements with values specified in em's, by changing the base font-size for different screen sizes.

Upvotes: 0

Kevin Lynch
Kevin Lynch

Reputation: 24703

No need for js, CSS alone is fine. Set your image to display block, set a width and Max width plus margin auto.

img {
display: block;
width: 300px;
max-width: 100%;
margin: 0 auto;
}

Upvotes: 0

Sven Delueg
Sven Delueg

Reputation: 1001

just do

<style>
a{
display:block;
text-align:center;
}

</style>



<a href="Assets/OrderSheet.xls">
    <img src="Assets/OrderSheet.png" class="image">
</a>

no need for repositioning

fiddle

Upvotes: 0

Thomas Grauer
Thomas Grauer

Reputation: 140

Remove that whole script. Place this in your CSS.

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

Upvotes: 3

Related Questions