如何解决使居中标签充满整个父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() {
})
在完全点击1
之后:
我如何(垂直和水平)将数字1
居中并能够单击黄色区域内的任意位置以激活复选框?
在容器上使用margin: auto;
会减少标签的活动空间,并且无法实现我想要的功能:
解决方法
要实现所需的功能,您只需修改label标签内的CSS属性...
label {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
希望这对您有帮助?
,我不确定我是否正确理解了你。
这是您的https://jsfiddle.net/3bp4xtvj/16/,但有一些更改。
要将数字放在div
中,我建议您将display: flex
与justify-content: center;
和align-items: center;
一起使用。
我在第一个div内添加了一个新功能和一个隐藏的复选框,以便为您提供想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。