如果当前元素更改大小,如何在 float:left 元素之间固定间隙以停止下一个元素移动位置?

用户9446405

这是日历的布局。在此日历中,用户可以通过选择月份愿望来选择月份,月份悬停在更改大小以向用户提供反馈。悬停的月份会将接下来的月份推向右侧,这是因为元素的大小发生了变化并将所有内容向前移动了一点。

我尝试通过给月份标签指定特定大小来解决这个问题,问题是像六月这样的月份会比二月份有更大的空间差距,因为字母较少。

我怎样才能解决这个问题,让每个月的所有差距都保持不变,而不改变下一个元素的位置?

谢谢

#coil_calendar_container {
  position: absolute;
  display: flex;
  border-radius: 8px;
  margin: 8vh auto 0 auto;
  width: 80%;
  height: 850px;
  left: 0;
  right: 0;
  background-image: linear-gradient(grey, black);
  color: orange;
  font-size: 20px;
  text-align: center;
  z-index: 2;
  font-family: "Times New Roman";
}

#coil_calendar_container p {
  padding: 0;
  margin: 0;
  color: #dddddd;
  font-size: 40px;
}

.top_display_layout {
  position: absolute;
  top: 0;
  height: 150px;
  width: 100%;
  border-bottom: 2px solid black;
}

.top_display_layout .coil_month_selection {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
  height: 30px;
  width: auto;
  font-size: 30px;
  display: flex;
}

.coil_label_month {
  position: relative;
  float: left;
  max-width: 120px;
  padding: 0 20px 0 20px;
  cursor: pointer;
  font-size: 25px;
}

.coil_label_month:hover {
  font-weight: bolder !important;
  font-size: 28px !important;
}
<div id="coil_calendar_container">
  <div class="top_display_layout">
    <p>09<br>Monday</p>
    <div class="coil_month_selection">
      <div class="coil_label_month" id="Jan-coil" onclick="month_select(1);">January</div>
      <div class="coil_label_month" id="Feb-coil" onclick="month_select(2);">February</div>
      <div class="coil_label_month" id="Mar-coil" onclick="month_select(3);">March</div>
      <div class="coil_label_month" id="Apr-coil" onclick="month_select(4);">April</div>
      <div class="coil_label_month" id="May-coil" onclick="month_select(5);">May</div>
      <div class="coil_label_month" id="June-coil" onclick="month_select(6);">June</div>
      <div class="coil_label_month" id="July-coil" onclick="month_select(7);">July</div>
      <div class="coil_label_month" id="Aug-coil" onclick="month_select(8);">August</div>
      <div class="coil_label_month" id="Sep-coil" onclick="month_select(9);">September</div>
      <div class="coil_label_month" id="Oct-coil" onclick="month_select(10);">October</div>
      <div class="coil_label_month" id="Nov-coil" onclick="month_select(11);">November</div>
      <div class="coil_label_month" id="Dec-coil" onclick="month_select(12);">December</div>
    </div>
  </div>
</div>

米海T

您可以“复制”您的链接并显示具有绝对位置的复制内容,因此它不会左右推动其余项目。

这可以通过多种方式完成。我将展示如何pseudo-elements在 CSS 中做到这一点

首先,您需要为title每个link(在您的情况下为 div)分配一个与显示的文本相同属性例如对于带有januaryadd 的divtittle="January"等等。

然后使用该content属性获取元素标题并将其添加到:before伪元素中。这之前有绝对位置和隐藏的可见性。

然后在悬停时,将元素的可见性更改为隐藏,将之前的元素更改为可见。将您想要的所有样式(字体大小、字体粗细等)添加到before伪元素。

我使用visibility它是因为虽然它隐藏了元素,但该元素仍然占用空间,并且可以通过悬停、单击、焦点等事件“触摸”。

提示:如果您有很多链接( div ),您可以使用 javascript/jquery 自动添加标题(获取文本并将其添加为 $(link).attr("title", text ) )

请参阅下面的片段,让我知道这是否适合您。我为前 7 个项目添加了标题

#coil_calendar_container {
  position: absolute;
  display: flex;
  border-radius: 8px;
  margin: 8vh auto 0 auto;
  width: 80%;
  height: 850px;
  left: 0;
  right: 0;
  background-image: linear-gradient(grey, black);
  color: orange;
  font-size: 20px;
  text-align: center;
  z-index: 2;
  font-family: "Times New Roman";
}

#coil_calendar_container p {
  padding: 0;
  margin: 0;
  color: #dddddd;
  font-size: 40px;
}

.top_display_layout {
  position: absolute;
  top: 0;
  height: 150px;
  width: 100%;
  border-bottom: 2px solid black;
}

.top_display_layout .coil_month_selection {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
  height: 30px;
  width: auto;
  font-size: 30px;
  display: flex;
}

.coil_label_month {
  position: relative;
  float: left;
  max-width: 120px;
  padding: 0 20px 0 20px;
  cursor: pointer;
  font-size: 25px;
}

.coil_label_month:before {
  content: " " attr(title) "";
  width: 100%;
  left: 0;
  right: 0;
  font-weight: bolder !important;
  font-size: 28px !important;
  position: absolute;
  margin: 0 auto;
  visibility: hidden
}

.coil_label_month:hover:before {
  visibility: visible;
}

.coil_label_month:hover {
  visibility: hidden
}
<div id="coil_calendar_container">
  <div class="top_display_layout">
    <p>09<br>Monday</p>
    <div class="coil_month_selection">
      <div class="coil_label_month" title="January" id="Jan-coil" onclick="month_select(1);">January</div>
      <div class="coil_label_month" id="Feb-coil" onclick="month_select(2);" title="February">February</div>
      <div class="coil_label_month" id="Mar-coil" onclick="month_select(3);" title="March">March</div>
      <div class="coil_label_month" id="Apr-coil" onclick="month_select(4);" title="April">April</div>
      <div class="coil_label_month" id="May-coil" onclick="month_select(5);" title="May">May</div>
      <div class="coil_label_month" id="June-coil" onclick="month_select(6);" title="June">June</div>
      <div class="coil_label_month" id="July-coil" onclick="month_select(7);" title="July">July</div>
      <div class="coil_label_month" id="Aug-coil" onclick="month_select(8);">August</div>
      <div class="coil_label_month" id="Sep-coil" onclick="month_select(9);">September</div>
      <div class="coil_label_month" id="Oct-coil" onclick="month_select(10);">October</div>
      <div class="coil_label_month" id="Nov-coil" onclick="month_select(11);">November</div>
      <div class="coil_label_month" id="Dec-coil" onclick="month_select(12);">December</div>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

div元素中的float:left和float:right意外对齐

来自分类Dev

<div>元素在使用display:inline或float:left时消失

来自分类Dev

<div>元素中的换行符(而float:left时)

来自分类Dev

使用display:inline或float:left时<div>元素消失

来自分类Dev

如何选择当前元素的下一个元素

来自分类Dev

当使用float:left和float:right时,将容器的高度增加到最高元素

来自分类Dev

如果在某个索引位置插入了一个元素,则将数组元素移动到其下一个位置

来自分类Dev

当另一个元素更改大小时,如何避免html页面中的元素移动

来自分类Dev

同一行上的多个div,而未在每个元素上使用float:left

来自分类Dev

集合下一个元素

来自分类Dev

下一个元素名称

来自分类Dev

for 中的下一个元素

来自分类Dev

选择下一个元素

来自分类Dev

将块中的元素一个下一个地移动

来自分类Dev

如何在python的子列表内的元素中更改大小写?

来自分类Dev

div出现在包含带有float元素的包装器旁边:left ...?

来自分类Dev

div出现在包含带有float元素的包装器旁边:left ...?

来自分类Dev

获取此元素与下一个已知元素之间的文本

来自分类Dev

CSS:float:left和float:right之间的区别

来自分类Dev

如果下一个元素不是当前元素加一,如何从数组中进行选择?

来自分类Dev

字典-获取已知元素的下一个元素

来自分类Dev

检查下一个元素是否是特定元素

来自分类Dev

更改下一个元素的值

来自分类Dev

如何删除正文标签中标头和下一个div元素之间的空间?

来自分类Dev

为什么Block Formatting Context元素的margin-left与float元素的margin-right不能得到相同的结果?

来自分类Dev

首先找到下一个元素,然后停止搜索

来自分类Dev

如何选择$(this)之后的下一个元素?

来自分类Dev

如何获取列表的下一个树元素

来自分类Dev

如何从monix观察得到下一个元素?

Related 相关文章

  1. 1

    div元素中的float:left和float:right意外对齐

  2. 2

    <div>元素在使用display:inline或float:left时消失

  3. 3

    <div>元素中的换行符(而float:left时)

  4. 4

    使用display:inline或float:left时<div>元素消失

  5. 5

    如何选择当前元素的下一个元素

  6. 6

    当使用float:left和float:right时,将容器的高度增加到最高元素

  7. 7

    如果在某个索引位置插入了一个元素,则将数组元素移动到其下一个位置

  8. 8

    当另一个元素更改大小时,如何避免html页面中的元素移动

  9. 9

    同一行上的多个div,而未在每个元素上使用float:left

  10. 10

    集合下一个元素

  11. 11

    下一个元素名称

  12. 12

    for 中的下一个元素

  13. 13

    选择下一个元素

  14. 14

    将块中的元素一个下一个地移动

  15. 15

    如何在python的子列表内的元素中更改大小写?

  16. 16

    div出现在包含带有float元素的包装器旁边:left ...?

  17. 17

    div出现在包含带有float元素的包装器旁边:left ...?

  18. 18

    获取此元素与下一个已知元素之间的文本

  19. 19

    CSS:float:left和float:right之间的区别

  20. 20

    如果下一个元素不是当前元素加一,如何从数组中进行选择?

  21. 21

    字典-获取已知元素的下一个元素

  22. 22

    检查下一个元素是否是特定元素

  23. 23

    更改下一个元素的值

  24. 24

    如何删除正文标签中标头和下一个div元素之间的空间?

  25. 25

    为什么Block Formatting Context元素的margin-left与float元素的margin-right不能得到相同的结果?

  26. 26

    首先找到下一个元素,然后停止搜索

  27. 27

    如何选择$(this)之后的下一个元素?

  28. 28

    如何获取列表的下一个树元素

  29. 29

    如何从monix观察得到下一个元素?

热门标签

归档