html - 如何在不调整CSS中父元素宽度的情况下调整子元素的宽度?

标签 html css

我有以下内容:

<div class="parent">
  <div class="sizer" />
  <div class="child" />
</div>

.sizer {
width: 200px;
}

.child {
position: relative;
width: 400px;
}

不允许在父级上显式设置宽度,也不允许将子级设置为position:absolute

使用 CSS,是否有任何其他方法可以将 .child 的宽度设置为 400,而不会将 .parent 的宽度从 200 扩展到 400?

最佳答案

如果父级有设置的宽度,那么它不会随着子级的宽度而扩展,即使子级的宽度超过了父级。参见 this JS Fiddle example .

.parent {
    width: 300px;
    height: 50px;
}

.child {
    width: 400px;
    height: 50px;
    position: relative;

}

enter image description here


更新

I am wondering if there is any kind of hack that allows me to do it without setting width on parent

如果父级没有某种宽度或类似宽度的属性,则无法完成此操作。如果您只是反对在父级上使用 width 属性,则可以使用多种类似宽度的替代方法。

正如 cimmanon 在下面的评论中所解释的,您可以将 .parent 设置为具有 max-width。它不一定必须是 100%;任何最大宽度都可以,只要它小于 child 的宽度。 See this JS Fiddle example ,或查看此代码:

.parent {
    max-width: 200px;
} 

.child {
   width: 400px;
} 

或者,您可以使用 position:absolute 并设置 leftright 属性。 See this JS Fiddle example ,或查看此代码:

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

但请记住,这些只是众多可能选择中的两个。希望这对您有所帮助!

关于html - 如何在不调整CSS中父元素宽度的情况下调整子元素的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14862486/

相关文章:

javascript - 构建小部件时隐藏 Javascript

html - 使用paypal "Pay now"按钮时如何指定金额

javascript - <a id> 覆盖 <div id>?

php - cakephp 调试信息意外出现

css - SASS 没有在 symfony 中编译

在较低的 div 中带有 bg 图像的 HTML CSS 布局

forms - 什么是 HTML5 表单字段验证的良好客户端回退?

javascript - 隐藏可滚动的标题(HTML ID)

javascript - 旋转木马在 Bootstrap 上没有响应

html - 为什么照片排列成列而不是网格(HTML + CSS)?