html - 100% 高度带边距,同时保持 CSS 中 DIV 的宽度限制

标签 html css layout

我想要一个 DIV insider 另一个(出于某些原因我不想更改)

  • 水平居中
  • 宽度:70%,但不大于800px且不小于300px
  • 高度:100%,但顶部有 50 像素的边距,底部有 20 像素的边距
  • 在 IE9+、现代桌面浏览器和 iOS 6+ Safari 中正确显示

我可以使用此 CSS(“child”是目标 DIV)使其适用于除高度之外的所有属性:

#child{
    width: 70%;
    height: 100%;
    max-width:800px;
    min-width:300px;
    margin-top:50px;
    margin-bottom:20px;
    margin-left: auto;
    margin-right: auto;
    display:block;
}

高度边距被尊重,但内容被拉伸(stretch),所以出现滚动条,这是要防止的。

请查看完整示例 at this Fiddle .

您知道如何解决这个问题吗?

我知道有很多关于“如何实现 100% 高度和边距”的问题,但我没有找到考虑可变宽度的问题。

最佳答案

那是因为边距被添加到元素的高度。

我通过向父级添加填充并删除子级的边距来更新 fiddle 。

我还使用了 box-sizing 属性让它在计算父级的高度时考虑填充:

#parent{
    width: 100%;
    height: 100%;
    padding-top: 50px;
    padding-bottom: 20px;
    box-sizing: border-box;
}

http://jsfiddle.net/u6we2axp/2/

关于html - 100% 高度带边距,同时保持 CSS 中 DIV 的宽度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618727/

相关文章:

ios - 尽管有限制,xcode 按钮仍然重叠

jquery - 在 iframe 上隐藏引荐来源网址

javascript - 创建一个改变网站调色板的开关

javascript - 使用 flexbox 和 "column-reverse",在 Chrome 上滚动时页面跳转

zend-framework - 在布局中执行 ZendX 自动完成

css - 子元素长于父元素

java - 在 Java 文件中实现 HTML

css - 使用 div 作为填充物

android - 强制 HTML5 应用程序处于横向模式

jquery - 如何设置图像相对于它所在的 DIV 的不透明度