这让我疯狂了好几天了,但实际上这是我在过去几年中一直存在的问题:使用HTML/CSS我怎样才能制作出具有宽度和/或宽度的元素高度是它的父元素的100%,仍然有适当的填充或边距?
所谓"适当的"我的意思是,如果我的父元素是200px
高大的,我指定height = 100%
用padding = 5px
我所期望的,我应该得到一个190px
高的元素与border = 5px
所有各方,很好地集中在父元素.
现在,我知道那不是标准盒子模型指定它应该如何工作(虽然我想知道为什么,确切地说......),所以明显的答案不起作用:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
但在我看来,必须有一些方法可以为任意大小的父母可靠地产生这种效果.有谁知道完成这个(看似简单)任务的方法?
哦,为了记录,我对IE兼容性并不十分感兴趣,所以应该(希望)让事情变得更容易一些.
编辑:自从一个例子被要求,这是我能想到的最简单的一个:
接下来的挑战是让黑盒子在所有边缘都显示25像素的填充,而页面不会变得足够大以至于需要滚动条.
我学习了如何阅读" PRO HTML和CSS设计模式 " 这些东西.这display:block
是该的默认显示值div
,但我喜欢将其显式化.容器必须是正确的类型; position
属性是fixed
,relative
,或absolute
.
.stretchedToMargin {
display: block;
position:absolute;
height:auto;
bottom:0;
top:0;
left:0;
right:0;
margin-top:20px;
margin-bottom:20px;
margin-right:80px;
margin-left:80px;
background-color: green;
}
Hello, world
CSS3中有一个新属性可用于更改框模型计算宽度/高度的方式,它称为框大小.
通过使用值"border-box"设置此属性,当您添加填充或边框时,它会使您应用它的任何元素都不会拉伸.如果你定义100px宽度和10px填充的东西,它仍然是100px宽.
box-sizing: border-box;
在这里看到浏览器的支持.它不适用于IE7及更低版本,但我相信Dean Edward的IE7.js增加了对它的支持.请享用 :)
解决方案是根本不使用高度和宽度!使用顶部,左侧,右侧,底部连接内部框,然后添加边距.
.box {margin:8px; position:absolute; top:0; left:0; right:0; bottom:0}
This will show three nested boxes. Try resizing browser to see they remain nested properly.
更好的方法是使用calc()属性.所以你的情况看起来像:
#myDiv {
width: calc(100% - 5px);
height: calc(100% - 5px);
padding: 5px;
}
简单,干净,没有解决方法.只要确保你不要忘记值和操作符之间的空格(例如(100%-5px)会破坏语法.享受!
根据w3c规格,高度是指可视区域的高度,例如在1280x1024像素分辨率监视器上,100%高度= 1024像素.
min-height指页面的总高度,包括内容,因此在内容大于1024px min-height的页面上:100%将拉伸以包含所有内容.
另一个问题是在大多数现代浏览器中,填充和边框被添加到高度和宽度,除了ie6(ie6实际上是非常合乎逻辑但不符合规范).这称为盒子模型.所以,如果你指定
min-height: 100%; padding: 5px;
它实际上会给你100%+ 5px + 5px的高度.要解决这个问题,你需要一个包装容器.
Hello i am padded.
@Alex:但是内部div(Padded one)的100%是外部div的高度.我的经验是你在一个更大的全高分区内得到一个短的div.
6> Stickers..:
1.全高配 padding
body {
margin: 0;
}
.container {
min-height: 100vh;
padding: 50px;
box-sizing: border-box;
background: silver;
}
Hello world.
7> Lawrence Dol..:
这是CSS的彻头彻尾的愚蠢之一 - 我还没有理解推理(如果有人知道,请解释).
100%表示容器高度的100% - 添加任何边距,边框和填充.因此,实际上不可能获得填充其父级并且具有边距,边框或填充的容器.
另请注意,浏览器之间的设置高度也是众所周知的不一致.
自从我发布之后我学到的另一件事是,百分比是相对于容器的长度,即它的宽度,使得百分比对于高度更加无价值.
如今,vh和vw视口单元更有用,但对顶级容器以外的任何东西都不是特别有用.
8> user1721135..:
另一种解决方案是使用display:table,它具有不同的盒子模型行为.
您可以为父级设置高度和宽度,并添加填充而不扩展它.孩子有100%的身高和宽度减去填充物.
JSBIN
另一种选择是使用盒子大小的属性.只有两者的问题是它们在IE7中不起作用.
推荐阅读
-
如何解决《在UILabel中绘制一条简单的线》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《VS2015+Resharper:不要使用C#6》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《从更高级别提出异常,la警告》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《GulpBrowserify中的标准错误日志》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Angular$http-spring-抛出异常但http状态为200》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《更新到新Chrome版本后,在Chrome中获取PolymerError》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《Haskell:找不到模块`Data.List.Split'》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《使用预训练(Tensorflow)CNN提取特征》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何从Task返回结果?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《从URL中删除锚标记》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在关闭Go中的应用程序之前是否需要关闭数据库连接?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《我在ubuntu中使用sleep函数,但printf函数在while循环中运行得非常慢.为什么?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《缺少权利文件》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《Hadoop中的map,shuffle,merge和减少时间的精确定义》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在android上使用离线包来反应原生项目?》经验,为你挑选了3个好方法。 ...
[详细]
-
如何解决《在Windows10上运行dotnet3.5应用程序》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用熊猫和scipy的树状图》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在java中与弹性城堡的标志文件》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《float或double值如何存储在C中的变量中?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《将数据注入Phoenix的Actionparams》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
Tags | 热门标签
RankList | 热门文章
-
1我应该在Heroku上使用prema_app和Puma吗?
-
2尝试使用cfoauth标记中的Google帐户登录
-
3从字典列表到np数组数组,反之亦然
-
4WF4服务问题 - ServiceManagement.svc
-
5成员'计数'含糊不清
-
6如何使用Time从今天开始下个月的日期
-
7如何使用Calendar事件获取通知?
-
8离子 - 路线变化事件
-
9通过递归以相反的顺序打印出一行代码
-
10Laravel搜索不存在关系的地方
-
11在页面构造函数中异步调用Web服务
-
12在Windows上的rStudio上编织标记为pdf时出错43
-
13编译器反转C行顺序?
-
14如何使用SSE执行uint32/float转换?
-
15bc(standard_in)1:语法错误
-
16如何为python3和python2分别设置不同的PYTHONPATH变量
-
17Flask中的自定义中止映射/异常
-
18使用CowntDownLatch测试强制竞争条件会导致java.lang.IllegalMonitorStateException
-
19返回部分视图和消息
-
20来自ajax调用的symfony中的表单验证
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有