发表于: 2018-05-20 18:42:38
2 662
今天完成的事: 完成了任务四,看了css 的边框和外边距部分
明天计划的事 :
1. 继续写其他的任务
2. 继续看权威指南
3. 任务四的头部涉及到了居中问题,包括垂直居中和水平居中,在网上发现了不少方法,明天计划写一篇居中问题的总结。
收获:
1. 学习了felx布局,参考阮一峰的flex教程,并写了学习笔记,详情请点击传送门。
使用flex布局时需要注意一点,使用了flex-direction: column之后,所有的元素(包括内联元素)的宽度会自动变成100%铺满屏幕,这是因为align-item属性的默认值是stretch,下面的截图是我做的示例:
若是任务四使用了flex布局,可避免我踩过的另一个坑,就是如果元素设置了宽度100%后再设置padding值内容会溢出,会出现横向滚动条。使用flex-direction:column和align-item:stretch,子元素宽度会自动填充为100%,而且无论你怎么加padding都不会怕了。
2. 关于我踩过的100%宽度的元素加padding会溢出的问题,推荐以下两种解决方案。
第一种: 就是上面说过的flex布局。
第二种:这种方法涉及到了调皮的IE盒模型,众所周知,IE盒模型的width/height=content(内容)+padding+border,在此设想一下,如果元素的100%宽度里包括了padding和border,那么我们是不是就可以自由的设置padding了?方法就是box-sizing。
box-sizing: content-box|border-box|inherit;
值 | 描述 |
---|---|
content-box |
这是由 CSS2.1 规定的宽度高度行为。 宽度和高度分别应用到元素的内容框。 在宽度和高度之外绘制元素的内边距和边框。 |
border-box |
为元素设定的宽度和高度决定了元素的边框盒。 就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。 通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 |
inherit | 规定应从父元素继承 box-sizing 属性的值。 |
由上可知,只要设置box-sizing:border-box即可解决问题。
遇到的问题:暂无
评论