javascript - CSS - 相对于父容器大小的空彩色容器

标签 javascript html css

我的网页上有一个标题,它根据视口(viewport)(例如 15vh)更改高度,最小高度为 50 像素。

我想在此页眉中制作一个彩色方 block ,无论用户的视口(viewport)如何,它始终正好是页眉高度的 50%。彩色框中将没有内容。它仅用于样式目的。我知道我不能使用 height: 15%;因为容器中没有内容,因此不会显示任何内容。我无法根据视口(viewport)单位定义框,因为标题并不总是视口(viewport)高度的 15%(由于最小高度分配)。

有什么方法可以用 CSS 实现吗?

这是我的设置:

html,
body {
  padding: 0;
  margin: 0;
}

img {
  max-width: 100%;
  height: auto;
}

.header {
  position: relative;
  background-color: grey;
  border-bottom: 1px solid #CCC;
  min-height: 50px;
}

.responsivecontainer {
  float: left;
  max-width: 20vw;
  min-height: 50px;
  display: flex;
}

.logo {
  margin: auto 0;
}

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.box {
  float: left;
  height: 50%;
  background-color: black;
}

.clearfix {
  display: inline-block;
}


/* Hides from IE-mac \*/

* html .clearfix {
  height: 1%;
}

.clearfix {
  display: block;
}


/* End hide from IE-mac */


/* @end */
<div class="header clearfix">

  <div class="responsivecontainer">
    <div class="logo">
      <img src="http://www.bluebean.ca/logo1.jpg">
    </div>

  </div>

  <div class="box">
    <img src="http://www.bluebean.ca/grey.jpg">
  </div>

</div>

最佳答案

您可以使用绝对定位来做到这一点。像这样:

html,
body {
  padding: 0;
  margin: 0;
}

img {
  max-width: 100%;
  height: auto;
}

.header {
  position: relative;
  background-color: grey;
  border-bottom: 1px solid #CCC;
  min-height: 50px;
  position: relative;
}

.responsivecontainer {
  float: left;
  max-width: 20vw;
  min-height: 50px;
  display: flex;
}

.logo {
  margin: auto 0;
  z-index:10;
}

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.box {
  position:absolute;
  top:0;
  left:0;
  height: 50%;
  background-color: black;
  width: 100%;
}
<div class="header clearfix">
  <div class="box"></div>
  <div class="responsivecontainer">
    <div class="logo">
      <img src="http://www.bluebean.ca/logo1.jpg">
    </div>
  </div>
</div>

您还需要将 z-index 值设置为大于 box 的值,以使 box 保持在 header 中的元素下方。

关于javascript - CSS - 相对于父容器大小的空彩色容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596008/

相关文章:

javascript - 在输入字段内添加下拉箭头

javascript - 在 webOS 应用程序中提交和存储数据?

javascript - 如何在图表js折线图中添加X轴填充

css - Bootstrap : how to Make the website always operate as "lg"

javascript - 结合拖放js例子

javascript - "1"+"1"和 "1"- - "1"在 javascript 中的两个不同结果

javascript - 导航栏 css html 下定位 slider 的问题

html - 如何垂直对齐和拉伸(stretch) flexbox 元素的子元素?

c# - 如何改变kendodatepicker下拉菜单的高度

javascript - 如何隐藏元素并在单击时显示新元素?