首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从屏幕边缘到容器边缘的伪元素

从屏幕边缘到容器边缘的伪元素
EN

Stack Overflow用户
提问于 2018-08-23 11:38:58
回答 1查看 573关注 0票数 1

我试图实现一个网站(使用引导4),它有一个渐变线,来自标题,并延伸到容器的左边边缘。我已经想出了如何做到这一点,但是梯度永远不会完全显示出来。我已经创建了一个包装div.overflow-hidden,它跨越整个页面的宽度,并且有overflow-x: hidden;。梯度线是::after元素上的伪元素.

是否有一个纯的html/css解决方案,以确保所有渐变总是显示?标题在页面上的位置是可变的,因为它在容器中,所以我不能给伪元素一个固定的宽度,因为它取决于屏幕的分辨率。请参阅下面的代码,以了解我对此的尝试:

预期结果:

代码语言:javascript
复制
.overflow-hidden {
  overflow-x: hidden!important;
  width: 100%;
}

.title-detail {
  position: relative;
  display: inline-block;
}

.title-detail::after {
  content: '';
  position: absolute;
  display: block;
  width: 100vw;
  height: 0.25rem;
  right: calc(100% + 2.25rem);
  background-image: linear-gradient(to right, rgb(72, 184, 171) 0%, rgb(97, 157, 191) 100%);
  top: 50%;
  transform: translateY(-50%);
}

.column-count-2 {
  column-count: 2;
  column-gap: 2rem;
  column-rule: none;
}
代码语言:javascript
复制
<div class="overflow-hidden">
  <div class="container">
    <div class="row justify-content-center">
      <div class="col-12 col-md-10 col-xl-8">
        <h1 class="title-detail">title of page</h1>
        <div class="column-count-2">
          <p class="lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
        </div>
      </div>
    </div>
  </div>
</div>

小提琴在这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 12:04:38

更新了答案

我想这对你有用:

刚换了.title-detail::after {width: calc(((100vw - 1170px)/2) - 10px);},对我来说很好。为了证明我的观点,我删除了.overflow-hidden

说明- .title-detail::after {width: calc(((100vw - 1170px)/2) - 10px);},即..title detail::after { Width : calc(屏幕宽度- .container宽度-这必须通过引导的媒体查询)处理/margins)-处理的间隙很小);}

代码语言:javascript
复制
/*.overflow-hidden {
  overflow-x: hidden!important;
  width: 100%;
}*/

.title-detail {
  position: relative;
  display: inline-block;
}

.title-detail::after {
  content: '';
  position: absolute;
  display: block;
  width: calc(((100vw - 1170px)/2) - 10px);
  height: 0.25rem;
  right: calc(100% + 2.25rem);
  background-image: linear-gradient(to right, rgb(72, 184, 171) 0%, rgb(97, 157, 191) 100%);
  top: 50%;
  transform: translateY(-50%);
}

.column-count-2 {
  column-count: 2;
  column-gap: 2rem;
  column-rule: none;
}

@media (min-width: 992px) {
  .title-detail::after {
    width: calc(((100vw - 970px)/2) - 10px);
  }
}

@media (min-width: 768px) {
  .title-detail::after {
    width: calc(((100vw - 750px)/2) - 10px);
  }
}
代码语言:javascript
复制
<!-- Bootstrap core CSS -->
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" media="screen">

<div class="overflow-hidden">
  <div class="container">
    <div class="row justify-content-center">
      <div class="col-12 col-md-10 col-xl-8">
        <h1 class="title-detail">title of page</h1>
        <div class="column-count-2">
          <p class="lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin risus metus, lacinia sed erat vitae, dictum ullamcorper urna.</p>
        </div>
      </div>
    </div>
  </div>
</div>

希望这能解决你的问题。这在Firefox、chrome和safari中运行得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51984961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档