微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使居中标签充满整个父div

如何解决使居中标签充满整个父div

我正在使用标签来检查/取消选中隐藏的复选框。我需要能够在div内的任意位置单击,并使标签位于同一div的中心。

这是我的html:

<div id="syllabe" class="container">
  <div id="syllabe-1" class="syllabe-container"><label for="toggle-syllabe-1">1</label></div>
  <div id="syllabe-2" class="syllabe-container"><label for="toggle-syllabe-2">2</label></div>
  <div id="syllabe-3" class="syllabe-container"><label for="toggle-syllabe-3">3</label></div>
  <div id="syllabe-4" class="syllabe-container"><label for="toggle-syllabe-4">4</label></div>
  <div id="syllabe-5" class="syllabe-container"><label for="toggle-syllabe-5">5</label></div>
</div>
<div id="syllabe2" class="container">
  blabla2
</div>
<div id="syllabe3" class="container">
  blabla3
</div>
<div id="syllabe4" class="container">
  <input type="checkBox" id="toggle-syllabe-1" onclick="toggle(this)">
</div>

CSS:

body {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  grid-template-rows: repeat(2,1fr);
  grid-auto-flow: column;
}

#syllabe {
  display: grid;
  grid-auto-flow: column;
}

.container {
  border: 1px solid black;
}

.syllabe-container {
  font-size: xx-large;
  background-color: aqua;
  border: 1px solid red;
}
.syllabe-container-selected {
  font-size: xx-large;
  background-color: yellow;
  border: 1px solid black;
}

#syllabe3 {
  height: 200px;
}

label {
  display: block;
}

和JS(使用JQuery):

let toggle = (checkBox) => {
  if (checkBox.checked) {
    $("#syllabe-1").removeClass("syllabe-container").addClass("syllabe-container-selected")
  } else {
    $("#syllabe-1").removeClass("syllabe-container-selected").addClass("syllabe-container")
  }
}
$(function() {

})

结果:

enter image description here

在完全点击1之后:

enter image description here

我如何(垂直和水平)将数字1居中并能够单击黄色区域内的任意位置以激活复选框?

在容器上使用margin: auto;会减少标签的活动空间,并且无法实现我想要的功能

enter image description here

这是一个包含所有内容jsFiddle

解决方法

要实现所需的功能,您只需修改label标签内的CSS属性...

label {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

希望这对您有帮助?

,

我不确定我是否正确理解了你。

这是您的https://jsfiddle.net/3bp4xtvj/16/,但有一些更改。

要将数字放在div中,我建议您将display: flexjustify-content: center;align-items: center;一起使用。

我在第一个div内添加了一个新功能和一个隐藏的复选框,以便为您提供想法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。