#html #css
Вопрос:
Я пытался делать это время от времени в течение нескольких месяцев, и я думаю, что просто не понимаю, что именно делает мой код. Я никогда раньше не публиковал здесь вопрос, поэтому извините, если у меня возникли проблемы с форматированием или я что-то сделал неправильно. Вот мой HTML/CSS код:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'characters/style.css' %}">
<style>
.grid-container {
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(5, 150px);
grid-template-rows: repeat(5, 100px);
align-items: initial;
}
.grid-item {
border: 5px solid #87b5ff;
border-radius: 3px;
font-size: 2em;
font-family: sans-serif;
font-weight: bold;
background-color: #1c57b5
}
</style>
<div class="grid-container">
{% if character_list %}
<ul>
{% for character in character_list %}
<div class="grid-item">
<li>
<a href="{% url 'characters:detail' character.id %}">
<img src={{character.stock.url}} width="100" height="100" class="center">
</a>
</li>
</div>
{% endfor %}
</ul>
</div>
{% else %}
<p>No characters are available.</p>
{% endif %}
Вот как это выглядит в настоящее время, я хочу, чтобы оно было разложено более горизонтально, с 4 значками в строке
Ответ №1:
- Неупорядоченный список (т. е. ul) не нужен, и то, как вы его структурируете, вызовет проблемы. Вы отделяете li от его ul с помощью div для каждого элемента сетки. Удалите неупорядоченный список.
- У вас есть сетка из пяти столбцов, и вы ожидаете четыре элемента в строке. Это не будет делать то, что вы хотите (если вы не начнете контролировать промежутки ячеек сетки, что вы не пытаетесь делать).
Попробуйте что-нибудь вроде этого; там, где вы видите номер, замените его тегами привязки и изображения:
.grid-container {
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(4, 150px); /* notice 4 columns not five */
grid-template-rows: repeat(5, 100px);
align-items: initial;
}
.grid-container > div {
border: 5px solid #87b5ff;
border-radius: 3px;
font-size: 2em;
font-family: sans-serif;
font-weight: bold;
background-color: #1c57b5;
}
<div class="grid-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
</div>
Комментарии:
1. Большое вам спасибо, неупорядоченный список все испортил, теперь он выглядит намного лучше!
Ответ №2:
Предполагая, что у вас последняя версия Bootstrap, вы можете создать макет сетки, выровняв столбцы в строку, как это:
<div class="container">
<div class="row">
<div class="col">
Image 1
</div>
<div class="col">
Image 2
</div>
<div class="col">
Image 3
</div>
<div class="col">
Image 4
</div>
</div>
</div>
Продолжайте дублировать строки, если вам нужно больше, или добавьте больше столбцов, если вам нужно, создав больше разделителей с col
классом. Вы также можете изменить ширину своих столбцов. Более подробную информацию можно найти здесь.