如何解决CSS将div添加到相对于父级放置的dom中,而没有其他内容跳转
我正尝试在我的网络应用中弹出一个简短的窗口,提示用户单击代码进行复制。我遇到的麻烦是试图弄清楚它不会偏移父div中的所有内容。
下面的gif图片是我经过所有尝试并尝试解决该问题后所发生的事情。我想要实现的是使复制的消息气泡仅显示在带有房间代码的范围的右上方。
这个小提琴是互动的精简版本。我已经尝试了所有不同的显示和位置,但我不确定从这里到哪里。预先感谢大家。
https://jsfiddle.net/k6ey1duc/36/
.container {
background-color: #008afa;
width: fit-content;
margin: auto;
padding: 20px
}
.text {
display: inline;
}
.pop-up {
display: none;
background-color: #fe0c0d;
}
#show-hide {
display: block;
margin: auto;
}
<body>
<script>
$(document).ready(function() {
var x = false;
$('#show-hide').on('click',function() {
if (!x) {
$("#pop-up").css({
"backgroundColor": "#fe0c0d","display": "inline"
});
x = true;
} else {
$("#pop-up").hide();
x = false;
}
});
});
</script>
<div class='container'>
<p class='text'>
Hello there! <span>Here is a span.</span>
</p>
<div id='pop-up' class='pop-up'>
Here is a pop-up
</div>
<button id='show-hide'>
Click for pop up
</button>
</div>
</body>
解决方法
使用position:relative
和postion:absolute
。
.container {
background-color: #008afa;
width: fit-content;
margin: auto;
padding: 20px;
position: relative;
}
.pop-up {
display: none;
background-color: #fe0c0d;
position: absolute;
left:100%;
width:inherit;
}
,
在position: absolute;
上添加.pop-up
将防止容器为您要防止的元素留出任何空间。此外,将position: relative;
添加到.container
将使您可以自由地将.pop-up
放置在相对于容器的任何位置。
另一种解决方案是将display: none; display: inline;
替换为visibility: visible; visibility: hidden;
。两者之间的主要区别是display
将从布局中删除整个元素,而visibility
仅隐藏元素而保留元素空间。这样可以解决调整容器大小的问题,但是不会像position: absolute
那样为您提供堆积和定位的优点。
.container {
position: relative;
background-color: #008afa;
width: fit-content;
margin: auto;
padding: 20px
}
.pop-up {
position: absolute;
display: none;
background-color: #fe0c0d;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。