【问题标题】:Centering HTML Content wider than Browser without Horizontal scroll?在没有水平滚动的情况下将 HTML 内容居中比浏览器更宽?
【发布时间】:2014-04-15 02:59:59
【问题描述】:

相关问题不包含有用的答案。

我正在尝试为宽度为 2000 像素(足以覆盖大多数大屏幕)但居中的网站创建标题栏,但我也不想要父容器 div(即位于左侧 50%) 以导致浏览器水平溢出。

我不能只在 html 或 body 标签上“隐藏溢出”,因为我没有声明特定的宽度(并且声明 100% 不会隐藏溢出)。

我的代码如下所示:

<body>
    <div id="navbgout">
        <div id="navbg"></div>
    </div>

#navbgout {
    width:2000px;
    height:60px;
    position:relative;
    left:50%;
}

#navbg {
    width:2000px;
    height:80px;
    position:relative;
    left:-50%;
    background-image:url("images/header_bg.png");
}

我尝试在它周围放置另一个父容器以提供溢出:隐藏,但没有任何效果。如果我将该父级设置为 100% 宽度,它不会屏蔽。如果我将其设置为以像素为单位的固定值,则它不会自反地调整大小。

这尤其令人烦恼,因为 iPad 的移动 Safari 会将这个“溢出”宽度读取为真实宽度,并将页面拉远以适应它。

【问题讨论】:

  • 您可以随时尝试设置屏幕的最小宽度。这样您就可以分配宽度并可以将溢出设置为隐藏。如果这不起作用,也许考虑使用 em 而不是 px 或 %。甚至vh and vw 也可能适用于更现代的浏览器。
  • min-width 和 % 不会隐藏溢出。 ems 只是一种不同的精确测量值,如像素。
  • ems 比 px 响应更快,通常设置宽度是我可以将过度滚动设置为隐藏的原因。如果没有宽度过度滚动隐藏将不起作用。
  • 而且...这会起作用...如果我知道图像有多大在 ems 中, 否则它会错误地剪辑或居中。
  • 如果您知道图片大小(以 px 为单位),可以尝试使用 tool。如果这不起作用,您是否尝试将 body 设置为 width:100vw; overscroll:hidden;

标签: html css


【解决方案1】:

您不需要将宽度声明为 2000px 来满足屏幕尺寸的需要。如果您将宽度设置为 100%,那么它将始终调整为视口的宽度。

理想情况下,您可以将宽度设置为 100%,然后添加一个容器类,例如max-width: 1200px;margin: 0 auto; 这将使导航栏始终保持视口的宽度,但也允许内容在屏幕上居中。

【讨论】:

  • 而且...这是 100%(而不是 2000px)的作用:s15.postimg.org/5mokfzrrf/scrolling2.pngAKA:不起作用。宽度被截断太短,因为定位回到左边(所以它居中)。
  • width: 100% 将导致宽度为父容器的 100%。您的标题不会拉伸整个宽度的唯一方法是因为在元素本身或父容器(例如 bodyheader 标签上设置了宽度或最大宽度)。您能否在页面上上传具有更多上下文的屏幕截图,例如整个浏览器窗口?
  • 这是一个精简的例子。它使用背景图像而不是标题栏,但效果是一样的。 pages.drexel.edu/~mmj29/temp/site/strip.html
  • 我不确定你想通过绝对定位的 3 张不同背景图片来实现什么?
  • 我去掉了产生视差滚动效果的javascript。
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2014-03-16
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多