在下面的示例中,单击Button将向div添加一些名为label的填充。 通过单击12次或更多次,包含红色的div按钮的大小开始改变大小。
我已使用box-sizing: border-box;
和overflow:hidden
。我需要:
如何修复我的脚本?多谢你们! :)
let btn = document.getElementById('btn');
let label = document.getElementById('label');
let button = document.getElementById('button');
let padding = 5;
btn.addEventListener('click', event => {
padding += 5;
button.style.padding = `${padding}px`;
});

* {
box-sizing: border-box;
}
#button {
width: 200px;
height: 100px;
background-color: red;
overflow: hidden;
}
#label {
font-size: 50px;
}

<button id="btn">Click me to add more padding</button>
<div id="button">
<div id="label">
Click me!
</div>
</div>
&#13;
答案 0 :(得分:1)
将其放入容器
<button id="btn">Click me to add more padding</button>
<div class="button-container">
<div id="button">
<div id="label">
Click me!
</div>
</div>
</div>
CSS
* {
box-sizing: border-box;
}
.button-container {
width: 200px;
height: 100px;
overflow: hidden;
}
#button {
width: 100%;
height: 100%;
background-color: red;
}
#label {
font-size: 50px;
}
答案 1 :(得分:0)
那是因为在这种情况下,两次填充已经超过了DIV的原始高度,并且那个大填充不能再包含在原始高度中(box-sizing: border-box;
通常会这样做。)
答案 2 :(得分:0)
我在按钮周围做了一个带有隐藏溢出的div,它修复了问题;)
HTML:
<button id="btn">Click me to add more padding</button>
<div class="over">
<div id="button">
<div id="label">
Click me!
</div>
</div>
</div>
CSS:
.over { overflow: hidden; height: 100px; width: 200px; }