CSS: 宽度与百分比的简单总结

宽度的定义

宽度width(与高度height)是在网页布局中经常用到的属性,但作为新手容易会对两者的定义产生误解。下面我们给出widthheight的准确定义:

  • 一般地,一个元素的width被定义为从左内边界右内边界的距离,height则是从上内边界下内边界的距离。

上述定义很清晰地指出,元素的width只是元素content内容区的宽度,不包括padding,border, 与margin,即元素的width并不表示元素的可视宽度

使用auto与text-align:center的区别

autotext-align:center都是在局中排版中常会用到的属性设置,他们很容易被混用,下面我们给出两者的准确定义:

  • 如果设置widthmargin-leftmargin-right中的某个值为auto,而余下两个属性指定为特定的值,那么设置为auto的属性会确定所需的长度,从而使元素框的宽度等于父元素的width
  • text-align:center只用于居中块级元素中的内联内容

因此,当我们想让一个块级元素在另一个块级元素中居中时(比如p在某个div中),text-align:center是无效的,而可以通过设置width:auto或者margin:auto实现自动局中效果。

百分比

百分比是实现页面自适应的重要途径,而元素百分比的宿主到底是谁一直是令人困扰的问题。其实CSS对于百分比的定义十分明确:

  • 所有元素的百分比都是相对于其包含块( containing block)width
  • 在盒模型的设置属性中,除了height的百分比是相对于包含块的height,其余的widthmargin(不管是横向的margin-left还是纵向的margin-right)、padding(同上)都是相对于包含块的width

至此我们发现,包含块( containing block)的确切定义就显得尤为重要。有时间的情况下会在这篇中进行进一步的补充或新开一篇进行介绍。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,141评论 5 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,078评论 1 45
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,123评论 0 26
  • 如果可以活到七十五,那么现在她已经度过了人生的三点七五分之一的时光。 对于一百,七十五也许是个不错的数字。 她...
    她养了一只怪兽阅读 1,670评论 0 0