如何跨多个Divs CSS跨越元素

时间:2020-07-18 03:29:08

标签: html css

我是Html和CSS的初学者,可能有一个非常简单的问题,但是我似乎找不到答案:如何跨多个HTML元素(子div,文本等) div仅使用CSS和HTML(无Javascript / JS)?我正在建立一个简单的事件日历(使用HTML + CSS),目前正在处理多日事件。

tst_res.show()
+---+----------+---+----------+----------+----------+
| id|      date|key|  date_lag|  date_chk| last_date|
+---+----------+---+----------+----------+----------+
| A1|2020-01-06| K1|      null|      null|      null|
| A1|2020-01-06| K2|2020-01-06|      null|      null|
| A1|2020-01-07| K3|2020-01-06|2020-01-06|2020-01-06|
| A1|2020-01-07| K3|2020-01-07|      null|2020-01-06|
| A1|2020-01-20| K3|2020-01-07|2020-01-07|2020-01-07|
+---+----------+---+----------+----------+----------+
html, body {
  left: 0;
  margin: 0;
  background:white;
  height:100%;
}

b{
  font-family:calibri;
  padding-left:10px;
}

#container{
  margin: 0 auto;
  width:300px;
  padding-top:50px;
}

.colorone{
  background:#FFEB3B;
  width:150px;
  height: 150px;
  float:left;
}
.colortwo{
  width:150px;
  height: 150px;
  background:#8BC34A;
  overflow:hidden;
}

所需结果: enter image description here

如果需要,蓝色div /矩形也应该能够跨越两个以上的父div。

我已经在网上和StackOverflow上进行了搜索和研究,但我似乎仍然找不到答案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

这是一个使用您的代码进行一些更改的快速示例。我将位置添加到容器和第3个元素中,并使用.colorthree类将div上的z-index设置为2。

{{ site.tags }}
var width = 0,
    container = $('#container');

container.children('div').each(function(){
    if(!$(this).hasClass('colorthree')) {
    width += $(this).width();
  }
});
container.width(width);
$('.colorthree').width(width-20);
html, body {
left: 0;
  margin: 0;
  background:white;
  height:100%;
}

b{
  font-family:calibri;
  padding-left:10px;
}

#container{
  margin: 20px auto;
  width:300px;
  height: 150px;
  position:relative;
  white-space: nowrap;
}

.colorone, .colortwo, .colorfour {
  width:150px;
  height: 150px;
  background:#8BC34A;
  overflow:hidden;
  float:left;
}
.colorone{
  background:#FFEB3B;
}
.colorfour {
  background: red;
}
.colorthree {
  z-index: 2;
  top: 20px;
  left: 10px;
  position: absolute;
  width:90%;
  height: 40px;
  background:blue;
  overflow:hidden;
}

答案 1 :(得分:1)

您可以使用position: absolute

不需要javascript,只需使用html和css

html,
body {
  left: 0;
  margin: 0;
  background: white;
  height: 100%;
}

b {
  font-family: calibri;
  padding-left: 10px;
}

#container {
  margin: 0 auto;
  width: 300px;
  padding-top: 50px;
  position: relative;
}

.colorone {
  background: #FFEB3B;
  width: 150px;
  height: 150px;
  float: left;
}

.colortwo {
  width: 150px;
  height: 150px;
  background: #8BC34A;
  overflow: hidden;
}

.colorthree {
  background-color: blue;
  display: block;
  position: absolute;
  width: calc(100% - 50px);
  height: 50px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
  left: 0;
  right: 0;
  color: white;
  text-align: center;
  line-height: 50px;
}
<html>

<head></head>

<body>
  <div id="container">
    <span class="colorthree">I'm Span!</span>
    <div class="colorone"><b>4</b>
    </div>

    <div class="colortwo"><b>5</b>
    </div>
  </div>

</body>

</html>