width: 100vw;/* 100% of viewport width */
height: 100vh;/* 100% of viewport height*/
这个CSS应该给我视口的精确(100%)尺寸。但是它显然太大了,因为它导致页面溢出。
这不是填充、边距或轮廓,因为我已经全部删除了。
注意 当我添加两个具有这些尺寸的div时,它似乎只会比预期的尺寸"增长"得更大。(但在jsfiddle中这总是发生)
我应该认为这只是一个bug并写一个解决方法吗?还是我少了什么?
width: 100vw;/* 100% of viewport width */
height: 100vh;/* 100% of viewport height*/
这个CSS应该给我视口的精确(100%)尺寸。但是它显然太大了,因为它导致页面溢出。
这不是填充、边距或轮廓,因为我已经全部删除了。
注意 当我添加两个具有这些尺寸的div时,它似乎只会比预期的尺寸"增长"得更大。(但在jsfiddle中这总是发生)
我应该认为这只是一个bug并写一个解决方法吗?还是我少了什么?
视口测量值是准确的。 问题在于您的div是内联块。 浏览器将您的内联块元素呈现在一个行框上。 您的div下面的空白来自该行框的基线; 它是排版下降者应该放置的区域。 这个额外的空间,加上您的div,导致了溢出。
如果您删除display: inline-block
声明,使您的div呈现为块级元素,则滚动条将消失,div将完全适合视口。
如果您需要此元素作为内联块,请设置vertical-align:top
(或bottom
或middle
),似乎可以解决它。
display: block
,它就会消失。如果您需要它成为 inline-block 并且字母间距为零,则需要在父元素上设置字体大小为 0。您很可能希望在每个子元素中将其设置回可读的某些值。 - powerbuoy解决这个问题还有另一种方法
你应该将所有body的line-height
设置为vh
overflow:hidden
添加到父元素(在本例中为<body>
标签)应该解决它,这样您就可以保留所有其他内容。 - ed1nh0