1

如何将父级(relative位置)的高度设置为其子级的高度?

看看这支笔,看看它的作用。

blockquote {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  color: #edf0f9;
  overflow: hidden;
}
blockquote img {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 1rem;
  z-index: 2;
}
blockquote .name-block {
  padding: 0.1rem 2rem 0.1rem 0.5rem;
  background-color: #6e7480;
  font-size: 0.8rem;
  position: absolute;
  top: 2rem;
  right: 5rem;
  z-index: 1;
}
blockquote .pos-block {
  padding: 0.1rem 3rem 0.1rem 0.5rem;
  background-color: #6e7480;
  font-size: 0.8rem;
  position: absolute;
  top: 3.6rem;
  right: 4rem;
  z-index: 1;
}
blockquote .txt-block {
  background-color: #2b2d32;
  padding: 5rem 1rem 1rem 1.8rem;
  position: absolute;
  top: 1.5rem;
  right: 0;
}
blockquote .txt-block:before {
  content: '';
  position: absolute;
  left: 1rem;
  top: 4.5rem;
  border-left: 2px solid #6e7480;
  height: calc(100% - 5rem);
}
<blockquote>
  <img src="http://7108-presscdn-0-78.pagely.netdna-cdn.com/wp-content/uploads/2013/09/person-to-person-business.jpg" />
  <span class="name-block">John Doe</span>
  <span class="pos-block">A mannager</span>
  <div class="txt-block">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate iste ipsam facere reprehenderit iure odio voluptatem quod voluptatibus natus officiis. Consequatur eius architecto deleniti beatae sapiente laboriosam tempora, deserunt officia asperiores
    incidunt ea accusantium debitis blanditiis nesciunt ex minus ipsam nobis unde in distinctio, vero alias magni dolorum dolore? Debitis non aspernatur quis minus laboriosam. Voluptates maxime consequatur doloremque accusantium esse aperiam, voluptate
    voluptas officiis perspiciatis, minus sed ab voluptatum nisi cumque sapiente illo culpa a magnam ducimus omnis animi cum dignissimos? Vero quaerat quisquam ipsam libero porro nulla fugit repellat, accusantium, quidem, laudantium perspiciatis cupiditate
    vel dolore aliquid sapiente rem dolorem voluptatem architecto minus facilis eos expedita alias nesciunt dolores. Eum eos architecto, eveniet illo, sit doloribus, debitis possimus non placeat quibusdam odio quidem ab dicta dolorum blanditiis accusamus.
    Perferendis veniam officiis rem, ex iusto nesciunt! Sit incidunt saepe ab velit, adipisci totam rerum nostrum fugit, architecto deserunt ea!
  </div>
</blockquote>

我将blockquote元素位置设置为relative并将其子元素设置为absolute,当overflow父元素hidden的高度设置为blockquote自动设置为0并且内容仅显示时overflow: visible或高度严格设置时。

4

2 回答 2

1

当您定位一个元素absolute时,它会脱离正常流程,因此blockquote(这是您的父relative元素)的高度为零。

现在,如果你使用overflow: hiddenon blockquote,它将隐藏所有内容。

因此,最好的选择是在正常流程上放置一些东西,那就是txt-block- 删除absolute定位并给出 amargin-top以获得所需的效果 - 请参见下面的演示:

blockquote {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  color: #edf0f9;
  overflow: hidden;
}
blockquote img {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 1rem;
  z-index: 2;
}
blockquote .name-block {
  padding: 0.1rem 2rem 0.1rem 0.5rem;
  background-color: #6e7480;
  font-size: 0.8rem;
  position: absolute;
  top: 2rem;
  right: 5rem;
  z-index: 1;
}
blockquote .pos-block {
  padding: 0.1rem 3rem 0.1rem 0.5rem;
  background-color: #6e7480;
  font-size: 0.8rem;
  position: absolute;
  top: 3.6rem;
  right: 4rem;
  z-index: 1;
}
blockquote .txt-block {
  background-color: #2b2d32;
  padding: 5rem 1rem 1rem 1.8rem;
  margin-top: 1.5rem;
}
blockquote .txt-block:before {
  content: '';
  position: absolute;
  left: 1rem;
  top: 4.5rem;
  border-left: 1px solid #6e7480;
  height: calc(100% - 5rem);
}
<blockquote>
  <img src="http://7108-presscdn-0-78.pagely.netdna-cdn.com/wp-content/uploads/2013/09/person-to-person-business.jpg" />
  <span class="name-block">John Doe</span>
  <span class="pos-block">A mannager</span>
  <div class="txt-block">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate iste ipsam facere reprehenderit iure odio voluptatem quod voluptatibus natus officiis. Consequatur eius architecto deleniti beatae sapiente laboriosam tempora, deserunt officia asperiores
    incidunt ea accusantium debitis blanditiis nesciunt ex minus ipsam nobis unde in distinctio, vero alias magni dolorum dolore? Debitis non aspernatur quis minus laboriosam. Voluptates maxime consequatur doloremque accusantium esse aperiam, voluptate
    voluptas officiis perspiciatis, minus sed ab voluptatum nisi cumque sapiente illo culpa a magnam ducimus omnis animi cum dignissimos? Vero quaerat quisquam ipsam libero porro nulla fugit repellat, accusantium, quidem, laudantium perspiciatis cupiditate
    vel dolore aliquid sapiente rem dolorem voluptatem architecto minus facilis eos expedita alias nesciunt dolores. Eum eos architecto, eveniet illo, sit doloribus, debitis possimus non placeat quibusdam odio quidem ab dicta dolorum blanditiis accusamus.
    Perferendis veniam officiis rem, ex iusto nesciunt! Sit incidunt saepe ab velit, adipisci totam rerum nostrum fugit, architecto deserunt ea!
  </div>
</blockquote>

让我知道您对此的想法,谢谢!

于 2016-11-09T09:07:05.670 回答
0

您已设置最小高度或高度。

blockquote {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  color: #edf0f9;
  overflow: hidden;
  min-height: 100px;
}

http://codepen.io/hemedani/pen/vyNXJL

于 2016-11-09T08:38:09.993 回答