Как связать изображение в сетке

#html #css #css-grid

Вопрос:

Я создал сетку с несколькими изображениями, и, как вы можете видеть в CSS ниже, я использовал свойство «фоновое изображение», а не тег «img» в HTML. Я хочу иметь возможность щелкнуть по этим изображениям, чтобы открыть веб-страницу, но из проведенного мной исследования следует, что я могу связать изображение только с помощью тега привязки, для чего мне потребуется использовать тег img в HTML. Я уже выложил саму сетку, поэтому теперь мне нужно знать, какой CSS мне понадобится, чтобы поместить каждое изображение в соответствующее поле сетки (затем я могу вернуться и добавить теги anchor/img в свой HTML). Пожалуйста, обратите внимание, что я очень новичок в кодировании и не имею никакого опыта или курсовой работы, поэтому у меня, вероятно, много ошибок в приведенном ниже коде. Пожалуйста, будь со мной помягче.

Также, если кто-нибудь может предоставить правильный CSS, чтобы сетка соответствовала моему экрану, это было бы потрясающе. В настоящее время у меня установлена высота 717 пикселей, потому что это то, что подходит для моего личного экрана, но, очевидно, у других людей экраны другого размера.

 .layout{
  display: grid;
  width:100%;
  height: 717px;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-column-gap: 5px;
  grid-row-gap: 5px;
  text-align: center;
  padding: 5px;
}

.color {
  transition-property: background-color;
}

.color:hover{
  background-color: white;
}

.box{
  width: 100%;
}

.a{
  color: white;
  background-color: #D3D3D3;
  grid-column: 1 / span 2;
  grid-row: 1 / span 3;
  background-image: url(https://dlcdnwebimgs.asus.com/gain/E11F9021-A684-4848-98D6-6DB2841EDE5D);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: block;
} 
 <div class="layout">
      <div class="box a color">a</div>
      <div class="box b color">b</div>
      <div class="box c color">c</div>
      <div class="box d color"></div>
      <div class="box e color">e</div>
      <div class="box f color">f</div>
      <div class="box g color">g</div>
      <div class="box h color">h</div>
      <div class="box i color">i</div>
      <div class="box k color">k</div>
      <div class="box l">Computer Parts</div>
      <div class="box m color">m</div>
      <div class="box o color">o</div>
      <div class="box p color">p</div>
      <div class="box q color">q</div>
    </div> 

Ответ №1:

Тег div не является наиболее подходящим для ссылок. Вместо этого используйте тег с атрибутом href следующим образом:

 <a class="box" href="http://example.com">text</a>
 

На самом деле не очень часто используется свойство background для установки изображения для ссылки вместо элемента img. Для этого должна быть веская причина