学习CSS你必须踩得那些坑(六)

这里加了边框方便调试

·为了能够设置在垂直方向上的高度(padding-top/bottom, margin-top/bottom, height):我们设置行内元素display为inline-block

行内元素是就像水一样,垂直方向上设置高度都没用,所以有时候需要设置为inline-block或block。

有个形象的比喻,inline=>水,inline-block=>果冻,block=>石头

·设置box-sizing为border-box

默认情况下,元素的height只包括内容区域。但是我们经常需要加入border或者padding,元素的高度的实际高度是padding + border + height,每次你都需要减去padding和border。除了计算麻烦之外,用百分比设置高度的时候,你经常会遇到内容区域溢出的问题:

html,body{

height: 100%;

width:100%;

}

.container{

padding: 0 20px;

}

Hello World

[站外图片上传中……(4)]

·通过line-height进行垂直居中:

css中水平居中很简单,但是垂直居中就不好做了。通过设置line-height等于height可以让文字垂直居中。关于居中的问题,参考[译]CSS居中完全指南http://www.voyax.me/2016/04/19/译-CSS居中完全指南/

最后还有一个大坑!!!

[站外图片上传中……(5)]

为啥navbar高度没有撑开!!!好吧,都是float的错,float导致元素溢出了文档流,从而父元素的高度不会随着float元素高度的变化而适应。

单从float的角度说,有两个思路:

1.将父元素变成BFC

2.清除浮动

代码如下:

通过overflow触发BFC

.navbar::after{

overflow: hidden;

}

clearfix(关于clearfix的讨论,看看stackoverflow上的这个讨论

.clearfix:after {

content: " "; /* Older browser do not support empty content */

visibility: hidden;

display: block;

height: 0;

clear: both;

}

总结

这一章主要带着你踩踩坑,介绍了几个开发中经常遇到的问题。下一张我们看看在实际开发中,如果从零开始组织你的代码,同时逐步完成这个页面

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,831评论 1 92
  • 目标 按照Sketch设计稿,实现一个完整的页面,希望你学完这一些列课程后,能够系统地掌握CSS,真正玩转CSS ...
    四光年阅读 719评论 0 1
  • CSS 1、介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种,IE盒子模型、W3C...
    京程一灯阅读 1,759评论 3 26
  • “我都已经做到这地步了,为什么他连回头看看我都不愿意?” 一 前不久下载了荔枝FM,在这个神奇的软件上邂逅了著名情...
    亓沐吖阅读 1,941评论 4 11
  • 多愁善感的时候总是想写点东西,总觉得只有孤独才可以成就人,一个人的时候也可以撑起一切。本就是个三分钟热度的人,望能坚持。
    芭蕉叶落阅读 177评论 0 0