尺寸属性用于控制元素的宽度和高度,是 CSS 中最常用的属性之一。掌握尺寸属性对于创建精确的布局至关重要。
width 属性用于设置元素的宽度。
/* 使用像素 */
.box {
width: 200px;
}
/* 使用百分比 */
.container {
width: 100%;
}
/* 使用 em */
.em-width {
width: 20em;
}
/* 使用 rem */
.rem-width {
width: 10rem;
}
/* 使用视口单位 */
.vw-width {
width: 50vw;
}
/* 自动宽度(默认) */
.auto-width {
width: auto;
}
max-width 属性用于设置元素的最大宽度。
/* 使用像素 */
.box {
max-width: 800px;
}
/* 使用百分比 */
.container {
max-width: 100%;
}
/* 使用视口单位 */
.vw-max {
max-width: 90vw;
}
/* 无限制 */
.no-limit {
max-width: none;
}
min-width 属性用于设置元素的最小宽度。
/* 使用像素 */
.box {
min-width: 200px;
}
/* 使用百分比 */
.container {
min-width: 50%;
}
/* 使用视口单位 */
.vw-min {
min-width: 30vw;
}
/* 响应式容器 */
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* 卡片宽度 */
.card {
width: 300px;
max-width: 100%;
}
/* 按钮宽度 */
.button {
width: auto;
min-width: 120px;
}
/* 图片宽度 */
img {
width: 100%;
max-width: 100%;
height: auto;
}
height 属性用于设置元素的高度。
/* 使用像素 */
.box {
height: 200px;
}
/* 使用百分比 */
.container {
height: 100%;
}
/* 使用视口高度 */
.vh-height {
height: 50vh;
}
/* 自动高度(默认) */
.auto-height {
height: auto;
}
max-height 属性用于设置元素的最大高度。
/* 使用像素 */
.box {
max-height: 400px;
}
/* 使用百分比 */
.container {
max-height: 100%;
}
/* 使用视口高度 */
.vh-max {
max-height: 80vh;
}
/* 无限制 */
.no-limit {
max-height: none;
}
min-height 属性用于设置元素的最小高度。
/* 使用像素 */
.box {
min-height: 100px;
}
/* 使用百分比 */
.container {
min-height: 50%;
}
/* 使用视口高度 */
.vh-min {
min-height: 30vh;
}
/* 全屏容器 */
.fullscreen {
width: 100%;
height: 100vh;
}
/* 最小高度确保内容可见 */
.section {
min-height: 400px;
}
/* 图片高度 */
img {
height: auto;
max-height: 500px;
}
/* 文本区域高度 */
textarea {
height: 150px;
min-height: 100px;
max-height: 300px;
}
.box {
width: 300px;
height: 200px;
}
.responsive {
width: 100%;
height: auto;
max-width: 800px;
}
.flexible {
width: 100%;
min-width: 200px;
max-width: 800px;
height: 100%;
min-height: 100px;
max-height: 500px;
}
/* border-box 模式 */
.box {
box-sizing: border-box;
width: 300px;
padding: 20px;
border: 5px solid #333;
}
/* 总宽度 = 300px */
/* content-box 模式 */
.box {
box-sizing: content-box;
width: 300px;
padding: 20px;
border: 5px solid #333;
}
/* 总宽度 = 300px + 40px + 10px = 350px */
/* 百分比相对于父元素 */
.container {
width: 800px;
}
.child {
width: 50%; /* 400px */
}
/* 高度百分比 */
.parent {
height: 400px;
}
.child {
height: 50%; /* 200px */
}
视口单位是相对于浏览器窗口大小的单位。
/* vw - 视口宽度的百分比 */
.full-width {
width: 100vw;
}
.half-width {
width: 50vw;
}
/* vh - 视口高度的百分比 */
.full-height {
height: 100vh;
}
.half-height {
height: 50vh;
}
/* vmin - 视口宽度和高度中较小值的百分比 */
.box {
width: 80vmin;
height: 80vmin;
}
/* vmax - 视口宽度和高度中较大值的百分比 */
.box {
width: 80vmax;
height: 80vmax;
}
.responsive-image {
width: 100%;
height: auto;
max-width: 1200px;
}
.card {
width: 300px;
max-width: 100%;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.button {
width: auto;
min-width: 120px;
padding: 12px 24px;
background: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.input {
width: 100%;
max-width: 500px;
padding: 10px 15px;
border: 1px solid #ced4da;
border-radius: 4px;
}
.container {
width: 100%;
max-width: 1200px;
min-width: 320px;
margin: 0 auto;
padding: 0 20px;
}
.modal {
width: 90%;
max-width: 600px;
max-height: 80vh;
background: white;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
/* 宽度动画 */
.animated-width {
width: 200px;
transition: width 0.3s ease;
}
.animated-width:hover {
width: 300px;
}
/* 高度动画 */
.animated-height {
height: 100px;
transition: height 0.3s ease;
}
.animated-height:hover {
height: 200px;
}
/* 最大高度动画(用于展开/折叠) */
.collapsible {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
}
.collapsible.open {
max-height: 500px;
}
/* 推荐 */
.responsive {
width: 100%;
max-width: 1200px;
}
/* 不推荐 */
.fixed {
width: 1200px;
}
/* 推荐 */
.flexible {
width: 100%;
min-width: 320px;
max-width: 1200px;
}
/* 不推荐 */
.too-flexible {
width: 100%;
/* 可能导致在超宽屏幕上过大 */
}
/* 全屏英雄区域 */
.hero {
width: 100vw;
height: 100vh;
}
/* 响应式方块 */
.square {
width: 50vmin;
height: 50vmin;
}
/* 推荐 */
img {
width: 100%;
max-width: 100%;
height: auto;
}
/* 不推荐 */
img {
width: 100%;
height: 100%; /* 可能导致图片变形 */
}
尺寸属性用于控制元素的宽度和高度:
记住以下几点: