Ovidiu G
Ovidiu G

Reputation: 1273

Center thumbnails in LightGallery

I'm using LightGallery to make an image gallery and everything's working fine so far but I want to align the entire grid of thumbnails to the center of the page. Right now is just stuck to the left side.Here's the code I used:

<div class="demo-gallery">
<ul id="lightgallery" class="list-unstyled row">
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/alba-iulia.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive" src="img/alba-iulia.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/3.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive" src="img/3.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/1.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive" src="img/1.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 375, img/1.jpg 480, img/3.jpg 800"  data-src="img/alba.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive" src="img/alba.jpg">
    </a>
</li>
</ul>
</div>

EDIT: Here's the CSS:

.demo-gallery{
  display: inline-block;
  margin-left: auto;
  margin-right: auto;
  width: 1120px;
  margin-top: 50px;
}

.demo-gallery > ul {
  margin-bottom: 0;
}
.demo-gallery > ul > li {
    float: left;
    margin-bottom: 15px;
    margin-right: 0px;
    width: 280px;
}
.demo-gallery > ul > li a {
  border: 3px solid #FFF;
  border-radius: 3px;
  display: block;
  overflow: hidden;
  position: relative;
  float: left;
  text-align: center;
}
.demo-gallery > ul > li a > img {
  -webkit-transition: -webkit-transform 0.15s ease 0s;
  -moz-transition: -moz-transform 0.15s ease 0s;
  -o-transition: -o-transform 0.15s ease 0s;
  transition: transform 0.15s ease 0s;
  -webkit-transform: scale3d(1, 1, 1);
  transform: scale3d(1, 1, 1);
  height: 100%;
  width: 100%;
}
.demo-gallery > ul > li a:hover > img {
  -webkit-transform: scale3d(1.1, 1.1, 1.1);
  transform: scale3d(1.1, 1.1, 1.1);
}
.demo-gallery > ul > li a:hover .demo-gallery-poster > img {
  opacity: 1;
}
.demo-gallery > ul > li a .demo-gallery-poster {
  background-color: rgba(0, 0, 0, 0.1);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  -webkit-transition: background-color 0.15s ease 0s;
  -o-transition: background-color 0.15s ease 0s;
  transition: background-color 0.15s ease 0s;
}
.demo-gallery > ul > li a .demo-gallery-poster > img {
  left: 50%;
  margin-left: -10px;
  margin-top: -10px;
  opacity: 0;
  position: absolute;
  top: 50%;
  -webkit-transition: opacity 0.3s ease 0s;
  -o-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
}
.demo-gallery > ul > li a:hover .demo-gallery-poster {
  background-color: rgba(0, 0, 0, 0.5);
}
.demo-gallery .justified-gallery > a > img {
  -webkit-transition: -webkit-transform 0.15s ease 0s;
  -moz-transition: -moz-transform 0.15s ease 0s;
  -o-transition: -o-transform 0.15s ease 0s;
  transition: transform 0.15s ease 0s;
  -webkit-transform: scale3d(1, 1, 1);
  transform: scale3d(1, 1, 1);
  height: 100%;
  width: 100%;
}
.demo-gallery .justified-gallery > a:hover > img {
  -webkit-transform: scale3d(1.1, 1.1, 1.1);
  transform: scale3d(1.1, 1.1, 1.1);
}
.demo-gallery .justified-gallery > a:hover .demo-gallery-poster > img {
  opacity: 1;
}
.demo-gallery .justified-gallery > a .demo-gallery-poster {
  background-color: rgba(0, 0, 0, 0.1);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  -webkit-transition: background-color 0.15s ease 0s;
  -o-transition: background-color 0.15s ease 0s;
  transition: background-color 0.15s ease 0s;
}
.demo-gallery .justified-gallery > a .demo-gallery-poster > img {
  left: 50%;
  margin-left: -10px;
  margin-top: -10px;
  opacity: 0;
  position: absolute;
  top: 50%;
  -webkit-transition: opacity 0.3s ease 0s;
  -o-transition: opacity 0.3s ease 0s;
  transition: opacity 0.3s ease 0s;
}
.demo-gallery .justified-gallery > a:hover .demo-gallery-poster {
  background-color: rgba(0, 0, 0, 0.5);
}
.demo-gallery .video .demo-gallery-poster img {
  height: 48px;
  margin-left: -24px;
  margin-top: -24px;
  opacity: 0.8;
  width: 48px;
}
.demo-gallery.dark > ul > li a {
  border: 3px solid #04070a;
}
.home .demo-gallery {
  padding-bottom: 80px;
}

I read on a post from that I should use margin-left: auto and margin-right: auto ( I used it on the ul but doesn't seem to work.) Thanks for your help!

Upvotes: 0

Views: 1738

Answers (3)

Pranjali Soni
Pranjali Soni

Reputation: 51

Remove col-xs-6 col-sm-4 col-md-3 classes and wrap .demo-gallery div inside other div whose text-align is center.

<div style="text-align:center">
    <div class="demo-gallery">
        ....
    </div>    
</div>

Upvotes: 0

Asim K T
Asim K T

Reputation: 18154

You read right. You can center align a block element like div by applying margin-left: auto; and margin-right: auto; or in most cases just margin: auto;. But you should apply it for a specific width div. So in your case:

  1. You are applying it for ul. which is not gonna work, since you have 100% div wrapping it.
  2. You have (probably) didn't set the width of the outermost div, which will have a 100% width by default:

You could do this:

.demo-gallery {
  width: 1120px;
  margin: auto;
  display: block; //the parent should be a block element
}

Here's a pen in action: http://codepen.io/asim-coder/pen/jrPMPX

I added background-color and changed the width for simplifying concept.

I suppose you are using BootStrap, (since you are using list-unstyled, row, col-*-* classes) then you don't need to spin your head around it. Simply use the classes which BootStrap provides.

Like:

<div class="demo-gallery container">
<ul id="lightgallery" class="list-unstyled row">
<li class="col-xs-6 col-sm-4 col-md-3">
    <a href="">
        <img class="img-responsive" src="img/alba-iulia.jpg">
    </a>
</li>
....
</div> <!-- end container -->

Upvotes: 0

dr. strange
dr. strange

Reputation: 665

Replace your code with below code, will solve your problem:

<div class="demo-gallery">
<ul id="lightgallery" class="list-unstyled row">
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/alba-iulia.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive text-center" src="img/alba-iulia.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/3.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive text-center" src="img/3.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 480, img/1.jpg 480, img/3.jpg 800" data-src="img/1.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive text-center" src="img/1.jpg">
    </a>
</li>
<li class="col-xs-6 col-sm-4 col-md-3" data-responsive="img/alba-iulia.jpg 375, img/1.jpg 480, img/3.jpg 800"  data-src="img/alba.jpg" data-sub-html="">
    <a href="">
        <img class="img-responsive text-center" src="img/alba.jpg">
    </a>
</li>
</ul>
</div>

Upvotes: 0

Related Questions