html - 停止具有影响其他元素位置的相对位置的元素

标签 html css

我有一个元素 (div2),我想将其定位在 div1 的正下方,我想使用 position:relative 来做到这一点。

当我使用position:relative时,div2显然会影响div1和div3的位置,但是我希望div2不影响它们的位置,即div1和div3的位置应该与div2 已删除或代码中包含 div2。

这可以通过 position: absolute 来实现,因为它将元素带出文档流,但是我失去了我觉得我需要(或使它更容易)的相对定位将 div2 降低到 div1 的正下方。

#middle-row{
  margin-top: 25px;
  height: 60px;
  width: 100vw;
  display: flex;
  justify-content: space-around; }

.block {
  height: 100%;
  width: 10vw;
  border: 1px solid white;
  border-radius: 10px;
  position: relative;
  display: inline-block;
  background-color: blue;
  color: black }

.block span {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  font-size: 85%;
  width: max-content; }

.block .block-input {
  background-color: green;
  position: relative; }
<div id="middle-row">
  <a href="#">
    <div class="block"><span>Div1</span></div>
    <div class="block block-input"><span>Div2</span></div> 
  </a>

  <a href="#">
    <div class="block"><span>Div3</span></div>
  </a>
</div>

最佳答案

CSS-Grid 可以在 flexbox 的帮助下做到这一点。

#middle-row {
  margin-top: 25px;
  height: 60px;
  width: 100vw;
  display: grid;
  justify-content: space-around;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 10vw;
}

.col {
  display: flex;
  flex-direction: column;
  grid-row: 1 / span 2;
}

.block {
  height:10vw;
  width: 10vw;
  border: 1px solid white;
  border-radius: 10px;
  position: relative;
  background-color: blue;
  color: black
}

.block span {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  font-size: 85%;
  width: max-content;
  color:white;
}

.block .block-input {
  background-color: green;
  position: relative;
}
<div id="middle-row">
  <a href="#" class="col">
    <div class="block"><span>Div1</span></div>
    <div class="block block-input"><span>Div2</span></div>
  </a>

  <a href="#">
    <div class="block"><span>Div3</span></div>
  </a>
</div>

关于html - 停止具有影响其他元素位置的相对位置的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59394857/

相关文章:

javascript - 在angular js,Html中隐藏表格内容

javascript - 单击按钮时 HTML 和 Javascript 图片更改

html - CSS 渐变边框显示不正确

javascript - jQuery:div 和 tbody 之间的查找行为不一致

javascript - 如何在另一个模态中创建模态,最后一个模态在 Jquery 中打开另一个时消失

javascript - 带有切换功能的 jQuery 悬停功能不起作用

c# - 如何使用 OnChange 事件制作 HtmlSelect 控件以触发 C# 代码隐藏功能

html - Bootstrap4.1 Navbar Vertical items instead of Horizo​​ntal Album 例子

html - 向 img 标签添加不透明的背景色

google-chrome - Firefox 中的 CSS 三 Angular 形问题