shubendrak
shubendrak

Reputation: 2068

Issues in creating CSS image gallery

Here is my JsFiddle

I am new to CSS. I am trying to create an image gallery. I designed the layout using table tr td tag.

Here is my HTML code:

<div class="gallery">
  <table>
<tr>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
</tr>
<tr>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="normalimage" src=""> </td>
  <td> <img class="wideimage" src=""> </td>
</tr>
  </table>
</div>

Here is my css:

.gallery {
background-color: #abcdef;
width:355px;
height: 265px;
overflow-x: scroll;
}
.gallery img {
display: block;
margin-left: 20px;
margin-top: 20px;
}
.normalimage {
height: 80px;
width: 50px;
border: 5px solid black;
}
.wideimage {
height: 80px;
width: 130px;
border: 5px solid black;
}

Question: In the 2nd row I want my third image to appear just after second image with 20px distance.

Upvotes: 1

Views: 2262

Answers (2)

laker02
laker02

Reputation: 117

I'm not sure i understood your question but maybe this is what you want:

Create a class called newClass, and a margin-left property to it.

Also give a !important tag, so the browser knows this has precedence over the other rules.

Fiddle

Upvotes: 0

Sirko
Sirko

Reputation: 74036

You don't need a table here. Just wrap the images in one <div> per row like this:

<div class="gallery">
  <div class="row">
    <img class="normalimage" src="">
    <!-- more images -->
  </div>
  <div class="row">
    <img class="normalimage" src="">
    <!-- more images -->
   </div>
</div>

And adjust your CSS like this:

.gallery .row {
    white-space: nowrap;
}
.gallery img {
    display: inline-block;
    /* other properties */
}

Example Fiddle

Upvotes: 1

Related Questions