CSS 尺寸 (Dimension)

尺寸属性决定元素"占多大地方":width、height 设定基础宽高,min-、max- 系列设定弹性上下限,再配合百分比、em、vw 等单位,就能做出随视口伸缩的自适应页面。网页排版几乎处处离不开它们。

width 与 height

最基础的尺寸属性,支持像素 px、百分比 %、em 以及默认值 auto(宽度由内容或父容器决定):

img { width: 300px; height: 200px; }  /* 固定图片大小 */
div { width: 50%; }                   /* 宽度 = 父容器宽度的一半 */
/* 效果:div 宽度会随父容器变化而自动伸缩 */

常用单位怎么选

  • px:绝对单位,最直观,适合固定尺寸。
  • %:相对父元素,适合流式、响应式布局。
  • em/rem:相对字号,em 相对父级字号、rem 相对根元素字号。
  • vw/vh:相对视口,1vw 等于视口宽度的 1%。
h1 { font-size: 2em; }        /* 字号是父元素字号的 2 倍 */
.hero { height: 60vh; }       /* 高度为视口高度的 60% */

min- 与 max- 上下限

给元素设一个"允许伸缩的范围":内容再少也不小于下限,再多也不超过上限,是自适应布局的保险丝:

p {
  min-height: 40px;      /* 至少 40px 高 */
  max-width: 600px;      /* 最宽 600px,窄屏时自动收缩 */
}
/* 效果:段落既不会太矮,也不会在超宽屏幕上拉得过长 */

用 max-width 做响应式容器

给页面容器设置 max-width 并配合 auto 外边距,是响应式布局最常用的写法:

.page {
  max-width: 960px;
  margin: 0 auto;        /* 屏幕超过 960px 时水平居中 */
}
/* 效果:手机上看满屏自适应,电脑上看居中定宽的"内容带" */

line-height 行高也是尺寸

行高决定一行文字所占高度,会参与元素总高度的计算,文本垂直居中常常靠它实现:

.title {
  height: 60px;
  line-height: 60px;   /* 行高等于盒子高度,文字就垂直居中了 */
}

小结

width/height 定基础宽高,min/max 定弹性范围,再按场景选用 px、%、vw 等单位;把 max-width 与 margin:auto 结合,即可轻松写出同时适配手机与电脑的响应式页面。

笔记加载中…