html - 将全宽 div 放入内容包装器中

标签 html css

我有这个示例布局。

<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
      .wrapper { 
        padding: 0; 
        min-width: 960px;
        height: 500px; 
        border: 1px solid red
      }              
      .boxed-layout .wrapper {
        width: 1000px; 
        background: #FFF; 
        margin: 0 auto; 
      } 
      .inner { 
        width: 960px; 
        position: relative; 
        margin: 0 auto; /* main width */ 
      }     
      .responsive .inner { 
        max-width: 960px; 
        width: auto; 
      }
    </style>
  </head>
  <body>
    <div class="inner wrapper"></div>
  </body>
</html>

现在我需要在包装器中添加一个全宽的 div。所以我尝试了这种方式

.banner {
  position: relative; 
  left: -100px; 
  max-width: 2000px;
  width: auto; 
  border: 1px solid  green;
  height: 400px;
}

<div class="banner"></div>

但效果不佳。

  1. 使用负左移动到零的相对定位是否正确?
  2. 如果我使用 width: 2000px 而不是 auto,会出现水平滚动条

那么,我怎样才能拥有完整的宽度和响应式呢?

最佳答案

您必须从包装器容器(即 inner 类容器)中删除 position:relative。然后对于横幅使用以下标记:

HTML

<div class="banner">
    <div class="banner-inner"></div>
</div>

CSS

.banner {
  position: absolute; 
  left: 0; 
  right: 0;
}

.banner-inner {
  position:relative;
  margin:0 auto;
  max-width: 2000px; 
}

如果你不想删除 position:relative 出于某种原因,那么你必须使用 javascript/jQuery 如下(保持标记与上面相同):

var marg = ($(window).width()-960)/2;
$('.banner').css({'left':-marg+'px','right':-marg+'px'});

关于html - 将全宽 div 放入内容包装器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23867257/

相关文章:

javascript - 通过内联数据属性传递 Javascript 函数

javascript - ul 下拉菜单在页面缩放时略微移动

javascript - 如何为简单的 javascript 幻灯片添加简单的选择器栏?

html - 内有图像的九边形

html - 删除 textarea 和 div 现在大小不同

html - iPad Safari 和 PC 浏览器中的图像渲染问题

javascript - 正则表达式 - 最多 255 个字符,开始和结束时没有空格,

Javascript 找不到折叠标题的元素

javascript - 无法使用 webpack 缩小 css 代码

css - 我正在尝试获得不均匀的列