html #css #position
#HTML #css #позиция
Вопрос:
Я следую https://www.youtube.com/watch?v=-tlb4tv4mC4amp;t=956s как нуб. Набран точно в соответствии с инструкциями, никаких опечаток (которые я вижу). Пытаюсь создать игру с сопоставлением памяти.
В настоящее время на этом этапе:
body{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: blue; }
section {
display: grid;
grid-template-columns: repeat(4, 8rem);
grid-template-rows: repeat(4, 8rem);
grid-gap: 2rem;}
.face,
.back {
width: 100%;
height: 100%; }
.back {
background: green;}
Сейчас я пытаюсь сделать обратную сторону карточки (зеленую) поверх изображений обложек альбомов.
В руководстве используются абсолютные и относительные позиции, и никаких проблем не обнаружено, однако это происходит с моим. Это должна быть та же сетка, но зеленого цвета, а не обложки альбомов.
body{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: blue;}
section {
display: grid;
grid-template-columns: repeat(4, 8rem);
grid-template-rows: repeat(4, 8rem);
grid-gap: 2rem }
.card {
position: relative}
.face,
.back {
width: 100%;
height: 100%;
position: absolute;}
.back {
background: green;}
Я пробовал: установка родительского элемента в качестве сетки — и дочернего элемента в виде столбца: 1, строки: 1. Не работает. Я пытался добавить top и left в положение, не работает.
Чего мне не хватает?
Также включены HTML и JS.
Большое спасибо,
// Select some elements
const section = document.querySelector('section');
const playerLivesCount = document.querySelector('span');
const playerLives = 6;
//Link text
playerLivesCount.textContent = playerLives;
//Generate the date
const getData = () => [
{imgSrc:"./images/beatles.jpeg", name: "beatles" },
{imgSrc:"./images/blink182.jpeg", name: "blink 182" },
{imgSrc:"./images/fkatwigs.jpeg", name: "fka twigs" },
{imgSrc:"./images/fleetwood.jpeg", name: "fleetwoodMac" },
{imgSrc:"./images/joy-division.jpeg", name: "joy-division" },
{imgSrc:"./images/ledzep.jpeg", name: "led zepplin" },
{imgSrc:"./images/metallica.jpeg", name: "metallica" },
{imgSrc:"./images/pinkfloyd.jpeg", name: "pink floyd" },
{imgSrc:"./images/beatles.jpeg", name: "beatles" },
{imgSrc:"./images/blink182.jpeg", name: "blink 182" },
{imgSrc:"./images/fkatwigs.jpeg", name: "fka twigs" },
{imgSrc:"./images/fleetwood.jpeg", name: "fleetwoodMac" },
{imgSrc:"./images/joy-division.jpeg", name: "joy-division" },
{imgSrc:"./images/ledzep.jpeg", name: "led zepplin" },
{imgSrc:"./images/metallica.jpeg", name: "metallica" },
{imgSrc:"./images/pinkfloyd.jpeg", name: "pink floyd" },
];
//randomise
const randomise = () => {
const cardData = getData();
cardData.sort(() => Math.random() - 0.5);
return cardData;
};
//Generate HTML
const cardGenerator = () => {
const cardData = randomise();
cardData.forEach((item) => {
const card = document.createElement("div");
const face = document.createElement("img");
const back = document.createElement("div");
card.classlist = "card";
face.classList = "face";
back.classList = "back";
face.src= item.imgSrc
//Attach card to section
section.appendChild(card);
card.appendChild(face);
card.appendChild(back);
});
};
cardGenerator();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href = "style.css">
<script src ="./app.js" defer></script>
<title>Memory Game</title>
</head>
<body>
<h1>Lives: <span class="playerLivesCount"></span> </h1>
<section></section>
</body>
</html>
Комментарии:
1. Пожалуйста, вставьте свой код в вопрос вместо скриншота.
2. Трудно сказать, как генерируется выходной HTML-код. Убедитесь
.face
, что и.back
находится внутри.card
. Затем позиционируйте относительную «ловушку» абсолютной позиции 🙂