CSS Фотогалерея wGrid - проблема с пробелами // Обозначения вокруг изображений - PullRequest
0 голосов
/ 27 января 2020

РЕДАКТИРОВАНИЕ - решетка 3x3 без разрешения пробелов (если все изображения имеют одинаковый размер) Теперь, как бы я это сделал для изображений разного размера, хранящихся на моем компьютере, а не в Интернете? Должен ли я стандартизировать размер изображений ПЕРЕД добавлением в код, или может лучше изменить их размер в HTML ... Я думаю, CSS. Когда включены изображения разных размеров, как я могу наилучшим образом получить их все одинакового размера / размеров? Похоже, что это не подходит для подгонки объекта .. Скрипка и код JS были обновлены, чтобы показать сетку с одним изображением другого размера, вызывающим проблемы ... Из того, что я видел, сетка, подобная Обычно НЕ требуется ширина / высота, указанная в HTML, но в CSS?

Я пытаюсь поместить сетку для фотографий 3х3 в элемент сетки (onearticles), который является основным разделом контента для мой веб-сайт. Проблема заключается в недостатке или просто разрыве галереи. Я пока не очень разбираюсь в форматировании изображений для веб-дизайна, но даже на этой фотографии есть огромные промежутки между ними. Пожалуйста, помогите!

У меня есть изображения в этом макете 3x3 с простые grid-шаблоны-колонки: 1fr 1fr 1fr; и grid-template-row: minmax (100px, auto);

и имеют множество других "отзывчивых" вариантов, хотя проблема сохраняется. Я не думаю, что «onearticles» и фотогалерея наследуют какие-либо пробелы от родительских элементов, и я знаю, что мне придется найти способ сделать так, чтобы все 9 изображений были одинакового размера в их «сетке», несмотря на их не все имеют одинаковые размеры / размеры. На данный момент это повторяющееся изображение с такими же размерами, но проблема с разрывом является основной проблемой

При размещении кода в этих разных местах, я вижу, что может быть больший разрыв между 1-й и 2-й строкой, чем 2-й и 3-й ряд из-за строк-шаблонов сетки: minmax ( 100px , auto); Я мог бы просто переключить его на автоматический, чтобы сделать эти промежутки вертикальными промежутками одинаковыми, но я не знаю, как использовать это для решения общей проблемы промежутков ...

Моя цель - сделать фотографию 3х3 сетка слева от обернутого текста, который, я не думаю, будет намного сложнее, чем просто сделать сетку без пробелов.

Я приложил ВСЕ свой код ниже, а также JS Fiddle , Спасибо за помощь и продолжайте быть классными!

* {box-sizing: border-box;}

figure {
	margin: 0px;
}   

    .wrapper {
        background-color: red;
        background-position: center center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: cover;
        max-width: 100%;
        margin: 0;
        font: 1.2em Helvetica, arial, sans-serif;
        height: 100%;}

    .wrapper > * {
        background-color: rgba(255, 255, 255, .7);
        border-radius: 5px;
        padding: 0px;}

      h2 {
        word-wrap: normal;
      }
    
    a:hover {
        font-weight: bold;
        background-color: rgb(28, 224, 238);
    }

.main-head {
  grid-area: header;
  display: grid;
  gap: 0px;
  text-align: center;
  padding: 0px;
  word-wrap: break-word;
  
}
.main-head h1 {
  margin-top: 3vh;
  margin-bottom: 3vh;
  font-size: 20px;
}

.content {
    grid-area: content;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: minmax(100px, auto);
    gap: 10px;
    height: 100%;
    padding: 0px;
    grid-template-areas: 
        "one one"
        "three four";
    padding-bottom: 0px;
    background-color: rgba(255, 255, 255, .0);
  }




.wrapper article div{
    height: 100%;
  
    background-color: rgba(255, 255, 255, .7);
    border-radius: 12px;

}


.one {
    grid-area: one;
    word-wrap: break-word;
    padding-left: 8px;
    padding-top: 8px;
    height: 100%;
  }

.onelineup {
    grid-area: one;
    word-wrap: break-word;
    padding-left: 8px;
    padding-top: 8px;
    height: 100%;
  }

.onearticles {
  grid-area: one;
  word-wrap: break-word;
  padding: 10px;
  height: 100%;
  }

  
#morsecrazy {
    border-radius: 4px;
    float: right;
    clear: right;
    margin: 7px 15px 5px 10px;
  }


.onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 90%;
    height: auto;
    }

.ad img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}




    
/* Create two equal columns that floats next to each other */
.column {
  float: left;
  width: 50%;
  padding: 10px;
  height: 100%;
  font-size: 2vh;
}

/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}





.three {
    grid-area: three;
    height: 100%;
  }
.three h4 {
    margin-bottom: 1vh;
    margin-top: 1vh;
  }
.three ul {
   list-style-type: auto;
   padding-left: 20px;
   padding-right: 5px;
   flex-direction: row;
  }
.three ul li {
  padding-bottom: 15px;
  display: flex;
  justify-content: space-between;
  flex-direction: row;
}


.four {
  grid-area: four;
  height: 100%;
  padding: 0px;
  }


  .fourIFR {
    overflow: hidden;
    padding-top: 61.67872568688917%‬;
    position: relative;
    overflow: auto;-webkit-overflow-scrolling:touch;
  }
   
  .fourIFR-iframe {
     border: 0;
     height: 100%;
     left: 0;
     position: absolute;
     top: 0;
     width: 100%;
  }
  




   

.gallery {
  display: grid;
  float: left;
  grid-area: one;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  gap: 0px;
  border: 1px solid black;
  margin: 0px;
  max-height: 100%;
  max-width: 50%;
  padding-top: 0px;

  
}
.gallery__img {
  display: block;
  object-fit: contain;
  padding: 0px;
  max-width: 100%;
  max-width: 100%;
}


.gallery__item--1 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--2 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--3 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--4 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--5 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--6 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--7 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 3;
  grid-row-end: 4;
}
.gallery__item--8 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 3;
  grid-row-end: 4;
}
.gallery__item--9 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 3;
  grid-row-end: 4;
}












.main-nav {
  grid-area: nav;}
.main-nav ul {
  font-size: 24px;
  list-style-type: none;
  margin: 0;
  padding: 0;}
.main-nav ul li {
  padding-bottom: 0vh;}
nav ul {
  margin: 0;
  padding: 0;}

.side {
  grid-area: sidebar;
  font-size: 2.5vh;}
.side p {
  margin-bottom: 0px;
  padding-left: 4px;}

.ad {
  grid-area: ad;
  padding: 0px
}
.main-footer {
  grid-area: footer;
  padding: 0px;
}








.wrapper {
  display: grid;
  grid-gap: 15px;
  grid-template-areas: 
    "header"
    "nav"
    "content"
    "sidebar"
    "ad"
    "footer";
  }

@media (min-width: 500px) {
  .wrapper {
    grid-template-columns: 1.5fr 4.5fr;
    grid-template-areas: 
      "header  header"
      "nav     nav"
      "sidebar content"
      "ad      content"
      "footer  footer";
    }
  nav ul {
    display: flex;
    justify-content: space-between;
  }

  

  .onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 300px;
    height: auto;
   
    }


  .videoofweek {
    width: 100%;
    min-height: 500px;
    display: block;
    object-fit: contain;
    
  }

}

@media (min-width: 700px) {
  .wrapper {
    grid-template-columns: 1fr 6fr 1fr;
    grid-template-areas: 
      "header header  header"
      "nav    content sidebar"
      "nav    content ad"
      "footer footer  footer"}
   nav ul {
     flex-direction: column;
     }
   .main-nav ul li {
    padding-bottom: 5vh;
  }

  .onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 300px;
    height: auto;
   
    }

}
<div class="wrapper">
		<header class="main-head">
		  <h1>Baseball Website</h1>
	
		</header>
	
		<nav class="main-nav">
		  <ul>
			<li><a href="../index.html">Home</a></li>
			<li><a href="lineup.html">Lineup</a></li>
			<li><a href="articles.html">Articles</a></li>
			<li><a href="vidoweek.html">Vid</a></li>
		  </ul>
		</nav>
		<article class="content">
		
		  <div class="onearticles">
			<section class="gallery">
				<figure class=”gallery__item gallery__item--1">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 1">    
				  </figure>
				  <figure class="gallery__item gallery__item--2">
					<img src="https://images.pexels.com/photos/1787035/pexels-photo-1787035.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" class="gallery__img" alt="Image 2">
				  </figure>
				  <figure class="gallery__item gallery__item--3">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 3">
				  </figure>
				  <figure class="gallery__item gallery__item--4">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 4">
				  </figure>
				  <figure class="gallery__item gallery__item--5">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 5">
				  </figure>
				  <figure class="gallery__item gallery__item--6">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 6">
				  </figure>
				  <figure class="gallery__item gallery__item--7">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 7">
				  </figure>
				  <figure class="gallery__item gallery__item--8">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 8">
				  </figure>
				  <figure class="gallery__item gallery__item--9">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 9">
				  </figure>
			</section>
      <h2>The Lineup</h2>
        <p>Thank you so much for the help.  Can get doing so much more now after what's easily been my biggest impasse thus far!</p>
		  </div>
		  
		  <div class="three">
			<h2>Articles</h2>
			<ul>
			  <li>Y</li>
			  <li>A</li>
			  <li>D</li>
			  <li>A</li>
			</ul>
		  </div>
	
		  <div class="four">
		   
		</div>
		</article>
		<aside class="side">
		  <h2>Lineup</h2>
		  <p>C - Dude</p>
		  <p>1B - Dude</p>
		  <p>2B - Dude</p>
		  <p>3B - Dude</p>
		  <p>SS - Dude</p>
		  <p>LF - Dude</p>
		  <p>CF - Dude</p>
		  <p>RF - Dude</p>
		  <p>DH - Dude</p>
		</aside>
		<div class="ad">
		  <p>ad</p>
	
		</div>
		<footer class="main-footer">The footer</footer>
	
	  </div>

https://jsfiddle.net/wikex004/e650oLak/29/

1 Ответ

0 голосов
/ 27 января 2020

Ваш вопрос немного сбивает с толку, но это то, что вы ищете?

Я просто удалил width и height из .gallery__img и удалил padding рисунка.

* {box-sizing: border-box;}

figure {
	margin: 0px;
}   

    .wrapper {
        background-color: red;
        background-position: center center;
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: cover;
        max-width: 100%;
        margin: 0;
        font: 1.2em Helvetica, arial, sans-serif;
        height: 100%;}

    .wrapper > * {
        background-color: rgba(255, 255, 255, .7);
        border-radius: 5px;
        padding: 0px;}

      h2 {
        word-wrap: normal;
      }
    
    a:hover {
        font-weight: bold;
        background-color: rgb(28, 224, 238);
    }

.main-head {
  grid-area: header;
  display: grid;
  gap: 0px;
  text-align: center;
  padding: 0px;
  word-wrap: break-word;
  
}
.main-head h1 {
  margin-top: 3vh;
  margin-bottom: 3vh;
  font-size: 20px;
}

.content {
    grid-area: content;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: minmax(100px, auto);
    gap: 10px;
    height: 100%;
    padding: 0px;
    grid-template-areas: 
        "one one"
        "three four";
    padding-bottom: 0px;
    background-color: rgba(255, 255, 255, .0);
  }




.wrapper article div{
    height: 100%;
  
    background-color: rgba(255, 255, 255, .7);
    border-radius: 12px;

}


.one {
    grid-area: one;
    word-wrap: break-word;
    padding-left: 8px;
    padding-top: 8px;
    height: 100%;
  }

.onelineup {
    grid-area: one;
    word-wrap: break-word;
    padding-left: 8px;
    padding-top: 8px;
    height: 100%;
  }

.onearticles {
  grid-area: one;
  word-wrap: break-word;
  padding: 10px;
  height: 100%;
  }

  
#morsecrazy {
    border-radius: 4px;
    float: right;
    clear: right;
    margin: 7px 15px 5px 10px;
  }


.onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 90%;
    height: auto;
    }

.ad img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}




    
/* Create two equal columns that floats next to each other */
.column {
  float: left;
  width: 50%;
  padding: 10px;
  height: 100%;
  font-size: 2vh;
}

/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}





.three {
    grid-area: three;
    height: 100%;
  }
.three h4 {
    margin-bottom: 1vh;
    margin-top: 1vh;
  }
.three ul {
   list-style-type: auto;
   padding-left: 20px;
   padding-right: 5px;
   flex-direction: row;
  }
.three ul li {
  padding-bottom: 15px;
  display: flex;
  justify-content: space-between;
  flex-direction: row;
}


.four {
  grid-area: four;
  height: 100%;
  padding: 0px;
  }


  .fourIFR {
    overflow: hidden;
    padding-top: 61.67872568688917%‬;
    position: relative;
    overflow: auto;-webkit-overflow-scrolling:touch;
  }
   
  .fourIFR-iframe {
     border: 0;
     height: 100%;
     left: 0;
     position: absolute;
     top: 0;
     width: 100%;
  }
  




   

.gallery {
  display: grid;
  grid-area: one;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: minmax(100px, auto);
  gap: 0px;
  border: 1px solid black;
  margin: 0px;
  max-height: 100%;
  max-width: 100%;
  padding-top: 0px;

  
}
.gallery__img {
  display: block;
  object-fit: contain;
  padding: 0px;
  max-width: 100%;
  max-width: 100%;
}


.gallery__item--1 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--2 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--3 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 1;
  grid-row-end: 2;
}
.gallery__item--4 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--5 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--6 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 2;
  grid-row-end: 3;
}
.gallery__item--7 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 3;
  grid-row-end: 4;
}
.gallery__item--8 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 3;
  grid-row-end: 4;
}
.gallery__item--9 {
  grid-column-start: 3;
  grid-column-end: 4;
  grid-row-start: 3;
  grid-row-end: 4;
}












.main-nav {
  grid-area: nav;}
.main-nav ul {
  font-size: 24px;
  list-style-type: none;
  margin: 0;
  padding: 0;}
.main-nav ul li {
  padding-bottom: 0vh;}
nav ul {
  margin: 0;
  padding: 0;}

.side {
  grid-area: sidebar;
  font-size: 2.5vh;}
.side p {
  margin-bottom: 0px;
  padding-left: 4px;}

.ad {
  grid-area: ad;
  padding: 0px
}
.main-footer {
  grid-area: footer;
  padding: 0px;
}








.wrapper {
  display: grid;
  grid-gap: 15px;
  grid-template-areas: 
    "header"
    "nav"
    "content"
    "sidebar"
    "ad"
    "footer";
  }

@media (min-width: 500px) {
  .wrapper {
    grid-template-columns: 1.5fr 4.5fr;
    grid-template-areas: 
      "header  header"
      "nav     nav"
      "sidebar content"
      "ad      content"
      "footer  footer";
    }
  nav ul {
    display: flex;
    justify-content: space-between;
  }

  

  .onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 300px;
    height: auto;
   
    }


  .videoofweek {
    width: 100%;
    min-height: 500px;
    display: block;
    object-fit: contain;
    
  }

}

@media (min-width: 700px) {
  .wrapper {
    grid-template-columns: 1fr 6fr 1fr;
    grid-template-areas: 
      "header header  header"
      "nav    content sidebar"
      "nav    content ad"
      "footer footer  footer"}
   nav ul {
     flex-direction: column;
     }
   .main-nav ul li {
    padding-bottom: 5vh;
  }

  .onelineup img {
    border-radius: 0px;
    float: left;
    clear: left;
    margin: 7px 15px 5px 7px;
    max-width: 300px;
    height: auto;
   
    }

}
	<div class="wrapper">
		<header class="main-head">
		  <h1>Baseball Website</h1>
	
		</header>
	
		<nav class="main-nav">
		  <ul>
			<li><a href="../index.html">Home</a></li>
			<li><a href="lineup.html">Lineup</a></li>
			<li><a href="articles.html">Articles</a></li>
			<li><a href="vidoweek.html">Vid</a></li>
		  </ul>
		</nav>
		<article class="content">
		
		  <div class="onearticles">
			<section class="gallery">
				<figure class=”gallery__item gallery__item--1">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 1">    
				  </figure>
				  <figure class="gallery__item gallery__item--2">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 2">
				  </figure>
				  <figure class="gallery__item gallery__item--3">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 3">
				  </figure>
				  <figure class="gallery__item gallery__item--4">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 4">
				  </figure>
				  <figure class="gallery__item gallery__item--5">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 5">
				  </figure>
				  <figure class="gallery__item gallery__item--6">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 6">
				  </figure>
				  <figure class="gallery__item gallery__item--7">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 7">
				  </figure>
				  <figure class="gallery__item gallery__item--8">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 8">
				  </figure>
				  <figure class="gallery__item gallery__item--9">
					<img src="https://images.pexels.com/photos/2115874/pexels-photo-2115874.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" class="gallery__img" alt="Image 9">
				  </figure>
			</section>
		  </div>
		  
		  <div class="three">
			<h2>Articles</h2>
			<ul>
			  <li>Y</li>
			  <li>A</li>
			  <li>D</li>
			  <li>A</li>
			</ul>
		  </div>
	
		  <div class="four">
		   
		</div>
		</article>
		<aside class="side">
		  <h2>Lineup</h2>
		  <p>C - Dude</p>
		  <p>1B - Dude</p>
		  <p>2B - Dude</p>
		  <p>3B - Dude</p>
		  <p>SS - Dude</p>
		  <p>LF - Dude</p>
		  <p>CF - Dude</p>
		  <p>RF - Dude</p>
		  <p>DH - Dude</p>
		</aside>
		<div class="ad">
		  <p>ad</p>
	
		</div>
		<footer class="main-footer">The footer</footer>
	
	  </div>

	
...