css - 将父级扩展为 float 子级 div

标签 css html css-float parent-child parent

我的布局应该有几个内容框,后面有一个全宽旋转的 div。到目前为止,我已经能够创建 this jsfiddle example .这是布局的简单草图:see here .

如果您看到我的 jsfiddle,也可以通过视觉帮助解释该问题,但我也会在此处进行简短解释。

外部内容框包含 2 个子 div,其中一个带有旋转的 div,正确地环绕在它的父元素周围。另一个用于保存内容的内部内容框。固定高度它确实有效,但内容将是灵活的。所以它需要将父 div 拉伸(stretch)到与其父级相同的高度。

我已经尝试过一些溢出、显示、 float 等方法,但似乎没有任何效果。

这是我放置 div 的方式:

<div class="content-outer">
    <div class="content-inner">Content comes here</div>
    <div class="extended rotation"></div>
</div>

部分 CSS

.content-outer {
    width: 100%;
    height: 100px; /* This should adjust to the inner-content height */
    background: #FF0000; /* Red */
    position: relative;
    display:block;
    float: left;
}

.content-inner {
    width: 100%;
    min-height: 100px;
    background: #00FF00; /* Green */
    float: left;
}

.extended { 
    height: 100%;
    margin: 0 -100%;
    top: -20px;
    background: #666; /* Gray */
    position: relative;
    z-index: -1;
    padding-top: 20px;
    padding-bottom: 20px;
}

.rotation {
    transform:rotate(-2.5deg);
    -ms-transform:rotate(-2.5deg); /* IE 9 */
    -webkit-transform:rotate(-2.5deg); /* Safari en Chrome */
    -webkit-backface-visibility: hidden; /* Reduce jagged edge */
    outline: 1px solid transparent; /* Reduce jagged edge */
}

如果我的意图不清楚,请随时要求更多解释!

最佳答案

如果您将内容作为旋转框的子项,它们都会根据内容增长。

您需要将反向旋转设置为 child ,以便它以某种方式返回到正常位置。 http://codepen.io/anon/pen/HrceA

.content-outer {
  margin:2em 0;
}
.extended {
  background:gray;
  padding:1em 0;
  transform:rotate(-2deg);
}
.content-inner {
  transform:rotate(2deg);/* opposite rotation makes to have 0deg rotation at screen*/
  background:#00FF00;
  padding:1em;
}
<div class="content-outer">
     <div class="extended rotation">
        <div class="content-inner">
           Content comes here
        </div>
   </div>
</div>

.content-outer 可以旋转以避免额外的 div 用于额外的 class :)

编辑 transform:skewY(2deg); 也适用:

.extended {
  background:gray;
  padding:1em 0;
  transform:skewy(-2deg);
}
.content-inner {
  transform:skewy(2deg);
  background:#00FF00;
  padding:1em;
}

http://codepen.io/anon/pen/mBhcF

关于css - 将父级扩展为 float 子级 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953843/

相关文章:

css - 制作透明图像作为页脚

javascript - 是否可以使用纯 HTML 在浏览器中制作游戏?

html - 有没有什么办法可以让 css 从底部 float 元素?

Css 菜单对齐

html - 并排div w/负相对位置

css - 模糊图像然后恢复正常状态

css - ng-select Angular2面板透明

html - 如何使下拉菜单在悬停时保持打开状态

html - 如何在设备宽度发生变化时运行不同的 html 文件?

javascript - 用 JavaScript 即时结束 CSS 动画