【问题标题】:Making element border meet browser window on browser resize在浏览器调整大小时使元素边框与浏览器窗口相遇
【发布时间】:2017-12-07 14:01:01
【问题描述】:

当我缩小浏览器屏幕时,如何使元素的边框平滑地与窗口边缘相接,同时文本与两侧保持 15px 的距离?

我有以下 HTML:

<section>
 <header>
  <h1>Header Text</h1>
 </header>
</section>

在桌面视图中,它看起来像这样:

该部分有一个max-width1000px,并以margin-leftmargin-right 为中心设置为auto。此外,标头是width:100%(默认情况下),它有一个border-top:1px solid black;

在移动视图中,标题如下所示:

所以顶部有边框的header接触到了屏幕的边缘,但是里面的h1在左右两边都有15px的填充。

我的问题是:当屏幕从 1030px 缩小到 1000px 时,如何让 h1 内容始终与屏幕边缘保持 15px 的距离,但边框与屏幕边缘相接?

body{padding:0;margin:0;}
section{max-width:1000px;margin:0 auto;}
header{border-top:1px solid black}
@media(max-width:1000px){
  h1{padding:0 15px;}
}
<section>
 <header>
  <h1>Header Text</h1>
 </header>
</section>

【问题讨论】:

  • ...媒体查询对您没有帮助,因为?? :)
  • 即使使用媒体查询我也无法弄清楚
  • 发布您使用媒体查询完成的代码....会检查并更新它!
  • 我在问题的底部贴了一些代码,看到了吗?关键是边框必须在调整大小时平滑地与浏览器的边缘相接,但是一旦距离屏幕边缘 15 像素,文本就必须停止向屏幕一侧移动。
  • 我认为你不能在 section 元素上设置 max-width 属性并达到你想要的结果。您必须在 header 元素上设置 max-width。看看我的答案,让我知道这是否有效!

标签: css


【解决方案1】:

您需要使用媒体查询绝对定位您的 h1 元素:

body{padding:0;margin:0;}
section{max-width:1000px;margin:10px auto;}
header{border-top:1px solid black}

@media (max-width: 1030px) {
  h1{position: absolute; left: 15px}
}

这是CodePen 上显示的解决方案。

【讨论】:

  • 这不会使边框成为屏幕的整个宽度吗?我希望顶部边框的最大宽度为 1000 像素。
  • 哦,我误解了你想要什么。让我解决我的解决方案!
  • @NickManning 检查此解决方案。如果我理解正确,这就是您要找的东西?
  • 其实是一个非常聪明的解决方案!几乎准备好接受您的回答......但我打算在标题下方有文本,并且应用绝对位置会将元素从文档流中取出。您对此有什么解决方案吗?
  • 好的...我设法通过简单地对包装器应用固定高度来使其工作。好在我知道 h1 不会跨越多行。它不会为此工作,但它现在对我有用。很好的解决方案,再次感谢!
猜你喜欢
  • 2023-04-07
  • 2015-04-20
  • 2011-11-19
  • 2012-02-23
  • 2016-12-03
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多