题解 | #点击按钮隐藏元素#
点击按钮隐藏元素
https://www.nowcoder.com/practice/9b0016737b3040aaa61316890f1ac3f8
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<style type="text/css">
.box {
width: 100px;
height: 100px;
border: solid 1px black;
/*补全代码*/
position: relative;
}
.btn{
width: 20px;
height: 20px;
background-color: red;
/*补全代码*/
position: absolute;
top: -10px;
right: -10px;
text-align: center;
line-height: 20px;
}
</style>
</head>
<body>
<div class='box'>
<div class='btn'>X</div>
</div>
<script type="text/javascript">
var btn = document.querySelector('.btn');
var box = document.querySelector('.box');
btn.onclick = function(){
// 补全代码
box.style.display = "none";
}
</script>
</body>
</html>
解读题目要求:
1. 使类为"btn"的div元素中心点定位在类为"box"的div元素右上顶点
- 设置类名为“box”的div标签元素定位为相对定位
- 设置类名为“btn”的div标签元素定位为绝对定位
- 计算“btn”的div标签元素的绝对定位坐标
设置父级元素的定位属性为相对定位是为了保证子级元素的绝对定位有效。
注意!是使类为“btn”的div元素的中心点定位在类为“box”的div元素的右上顶点!
因此根据“btn”的宽度和高度20px可以计算出,距离上方(top)-10px,距离右边(right)-10px。
2. 使类为"btn"的div元素中内容"X"垂直水平居中
- 设置水平居中:text-align:center;
- 设置垂直居中:line-height:20px;
以上设置均在“btn”中进行,是对“btn”类的设置。
设置line-height是让文本垂直居中的一个常见方式。在line-height和height相同的情况下,会将文本垂直居中。
3. 点击"X"按钮可以使类为"box"的div元素隐藏
- box.style.display = "none";
通过添加点击事件,设置类为“box”的div元素的display属性,将display属性设置为none将会隐藏该元素。我们可以直接使用元素节点的style属性直接设置CSS样式。


