Лучший способ сделать радиокнопки из другого контента - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь сделать страницу с контактными карточками, заказанными с помощью флекс-бокса. Если щелкнуть карточку, должна появиться некоторая информация об этом человеке.

Мои решения (также показаны ниже):

  • Используйте радиокнопки с абсолютным положением и размером, заданными в пикселях.
    • Недостатком является то, что динамические флексбоксы c больше не могут использоваться. И размеры жестко закодированы таким образом.
  • Используйте радиокнопки с положением и размером по умолчанию.
    • У этого недостатка есть то, что кнопка плавает над картой, а не перед ней.

Мой вопрос: как заставить плавающее радио-кнопку в перед элементом flexbox и использовать его размер?

// This function is just to show radiobuttons working
function updatePersonnelParagraph() {
  document.getElementById("personnel-paragraph").innerHTML = "";
  const ele = document.getElementsByTagName("input");

  for (let i = 0; i < ele.length; i++)
    if (ele[i].type === "radio" && ele[i].name === "Personnel" && ele[i].checked) {
      document.getElementById("personnel-paragraph").innerHTML +=
        ele[i].value;
      break;
    }
}

window.onload = updatePersonnelParagraph;
.personnel-container {
  display: flex;
  flex-direction: row;
}

.personnel-radiobutton1 {
  position: absolute;
  z-index: 1;
  // opacity: 0;
  width: 100px;
  height: 105px;
  cursor: pointer;
}

.personnel-radiobutton2 {
  z-index: 1;
  // opacity: 0;
  cursor: pointer;
}

input[type="radio"]:checked+h3 {
  color: blue;
}

.personnel-item {
  display: flex;
  flex-direction: column;
  margin: 10px;
}

.personnel-paragraph {
  margin: 10px 10%;
  text-align: center;
}
image
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...