在这个页面中,为什么只有上边距和左边距是可见的?右边距和下边距怎么了?
html,
body {
display: block;
height: 100%;
}
main {
box-sizing: border-box;
height: 100%;
width: 100%;
background-color: rgb(0, 0, 0);
margin: 24px;
}
<!-- body element added automatically -->
<main>Wtf</main>
如果我做一些修改来固定页边距:
一个二个一个一个
下边距到哪里去了?为什么看不见?
3条答案
按热度按时间nkcskrwz1#
您正在使用
box-sizing: border-box;
,这使得padding
和border
被认为包含在width
和height
属性中。一般来说,这是一个不错的选择,但重要的是要认识到,与
padding
和border
不同,它不会影响margin
。因此,由于内部元素的宽度为100%加上24 px的边距,它总是太大,导致滚动条出现。
q1qsirdb2#
有两件事-浏览器可以把默认的边距,例如:body(在这个例子中是8px,当我看的时候),所以有一个宽度为100%的body(viewport)会导致溢出,因为这个边距太大了。其次,子元素得到了一个24px的边距,它显示在顶部和左侧,但在右侧和底部没有空间。
如果我们不将主体大小限制为100%(100vw),而是将main设置为100vw宽度和100vh高度,看看会发生什么:
当你滚动时,你可以看到整个主要部分和它的页边空白都在那里。
如果您希望所有内容都适合视口,但main仍具有24px的边距,则可以计算其宽度和高度,例如calc(100%-(2 * 24px))
一个二个一个一个
nfs0ujit3#
这些可能会有所帮助:
1.折叠边距
1.分隔边距
我的经验告诉我:
1.对于单个元素周围的间距**=〉请使用填充符。
1.* * 多个元素之间的间距=〉使用边距。
1.水平居中=〉使用边距。
1.垂直居中=〉
position/transform
+top/left/right/bottom
或flex/align-items
1.用于组织具有共同对齐方式的多个元素=〉
flex/align-items
1.对于自对准=〉使用
position/transform
和top/left/right/bottom