Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是CSS设计中的一个错误吗?_Css - Fatal编程技术网

这是CSS设计中的一个错误吗?

这是CSS设计中的一个错误吗?,css,Css,CSS height 100%给出的元素高度实际上大于边距大小的100%。或者从另一个角度看,height:100%设置的不是元素的高度,而是不包括边距的元素的高度 一个结果是,例如,以下无意义的结果。100%的HTML中的100%正文太高,无法容纳100%的HTML,因此产生了一个滚动条 <!DOCTYPE html> <html> <head><title></title> <style> html, body { he

CSS height 100%给出的元素高度实际上大于边距大小的100%。或者从另一个角度看,height:100%设置的不是元素的高度,而是不包括边距的元素的高度

一个结果是,例如,以下无意义的结果。100%的HTML中的100%正文太高,无法容纳100%的HTML,因此产生了一个滚动条

<!DOCTYPE html>
<html>
<head><title></title>
<style>
html, body {
height:100%;
}

#wrapper {
height:100%;
overflow: hidden;
}

#content {
height:100%;
}

</style>
</head>
<body>

<div id='wrapper' style='background-color:lime'>

 <div id="header">
 <p>line 1</p>
 </div>

 <div id='content' style='background-color:pink'>
 <p>line 2</p>
 <p>line 3</p>

</div>
</div>

</BODY>
</HTML>

html,正文{
身高:100%;
}
#包装纸{
身高:100%;
溢出:隐藏;
}
#内容{
身高:100%;
}
第1行

第2行

第3行

给予

然后向下滚动


这是CSS设计中的一个错误吗?或者在其他情况下,它的行为是否明智?

不,这不是CSS中的设计错误

这是块级元素尺寸(宽度和高度)、与边距(将块级元素彼此分隔的间距)和与填充(将块级元素内部与块边界分隔的间距)概念中固有的


作为旁注,我认为这些概念的起源是从印刷出版中继承下来的。

不,这不是CSS中的设计错误

这是块级元素尺寸(宽度和高度)、与边距(将块级元素彼此分隔的间距)和与填充(将块级元素内部与块边界分隔的间距)概念中固有的


顺便说一句,我想这些概念的起源是从印刷出版中继承下来的。

如果您希望获得100%的视口,请使用

body {
    height: 100vh;
    width: 100vw;
}

查看解释和浏览器兼容性。

如果您希望获得100%到100%的视口,请使用

body {
    height: 100vh;
    width: 100vw;
}

请查看解释和浏览器兼容性。

为什么不使用一个自定义类来包装整个页面内容,并使用背景色?这可能会解决这个问题,边距有助于将图元彼此隔开,但应独立于图元的预期大小。如果希望使用内部间距来表示元素大小,则可以使用填充,尽管其规则略有不同(相邻的边距重叠,而相邻的填充添加在一起)。如果您想要全高,通常的技巧是将正文填充和边距设置为零,并将页面包装在其他容器中。我不是设计专家,但我见过一些设计,其中滚动条始终显示是理想的结果(例如,为了避免菜单栏上的侧移)-因此,使高度高于100%是实现这一点的一种方法。研究“盒子模型”,特别是
盒子大小
CSS属性。@torazaburo我已经完成了。当前的盒子模型定义符合所报道的无意义行为。框大小调整解决了各种相关问题,但不是这个问题。它不提供包括边距在内的大小选项。为什么不使用一个自定义类来包装整个页面内容,并使用背景色?这可能会解决这个问题,边距有助于将图元彼此隔开,但应独立于图元的预期大小。如果希望使用内部间距来表示元素大小,则可以使用填充,尽管其规则略有不同(相邻的边距重叠,而相邻的填充添加在一起)。如果您想要全高,通常的技巧是将正文填充和边距设置为零,并将页面包装在其他容器中。我不是设计专家,但我见过一些设计,其中滚动条始终显示是理想的结果(例如,为了避免菜单栏上的侧移)-因此,使高度高于100%是实现这一点的一种方法。研究“盒子模型”,特别是
盒子大小
CSS属性。@torazaburo我已经完成了。当前的盒子模型定义符合所报道的无意义行为。框大小调整解决了各种相关问题,但不是这个问题。它不提供包括边距在内的大小选项。此外,该示例未能删除垂直滚动条。它还添加了一个水平滚动条,该示例无法删除垂直滚动条。它还添加了一个水平滚动条