CSS 设置宽高的单位概览

devtools/2024/11/24 5:36:27/

CSS 设置宽高的单位概览

在 CSS 中,设置宽度和高度的单位有多种,每种单位都有特定的用途和适用场景。下面是常见的单位整理及使用示例。

单位类型代表性单位使用场景
视口单位vw, vh响应式布局,全屏背景
百分比单位%相对父元素的宽高调整
绝对单位px, cm固定宽高(如图标、按钮)
相对单位em, rem字体相关布局或响应式设计
内容适配单位auto, fit-content内容自适应的场景(如动态长度文本框)
CSS函数单位calc(), clamp()动态计算和限制宽高

目录

    • **CSS 设置宽高的单位概览**
    • @[TOC](目录)
      • **1. 视口单位(Viewport Units)**
        • **示例**
        • **使用场景**
      • **2. 百分比单位(%)**
        • **示例**
        • **注意事项**
      • **3. 绝对单位**
        • **示例**
        • **注意事项**
      • **4. 相对单位**
        • **示例**
        • **使用场景**
      • **5. 内容适配单位**
        • **示例**
        • **使用场景**
      • **6. CSS函数单位**
        • **`calc()`**
        • **`clamp()`**
      • 最后


1. 视口单位(Viewport Units)

视口单位基于浏览器窗口(视口)的宽度或高度,适用于响应式设计。

值得注意的是视口区域的定义:

视口代表当前可见的计算机图形区域。在 Web 浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的 UI,菜单栏等,你的视口就是你现在所能见到的所有事物

单位描述
vw视口宽度的 1%(1vw = 视口宽度的 1/100)
vh视口高度的 1%(1vh = 视口高度的 1/100)
vmin视口宽度和高度中较小值的 1%
vmax视口宽度和高度中较大值的 1%
示例
css">/* 全屏的容器 */
.container {width: 100vw; /* 占满视口宽度 */height: 100vh; /* 占满视口高度 */background-color: lightblue;
}/* 动态缩放的文本 */
.text {font-size: 5vw; /* 字体大小为视口宽度的5% */
}
使用场景
  • vwvh:用于全屏布局(如全屏背景、全屏内容)。
  • vminvmax:用于需要保持比例的布局,适应横屏和竖屏切换。

2. 百分比单位(%)

百分比单位是相对于父元素的尺寸计算的,适用于需要相对布局的场景。

示例
css">.container {width: 50%; /* 宽度为父元素宽度的一半 */height: 30%; /* 高度为父元素高度的 30% */background-color: lightgreen;
}
注意事项
  • 父元素必须有明确的尺寸,否则百分比单位无法生效。
  • 百分比高度在没有设置父元素高度时会失效。

3. 绝对单位

绝对单位用于设置固定的宽度或高度,与设备尺寸无关。

单位描述
px像素(Pixel),最常用的单位
cm厘米
mm毫米
in英寸(1in = 96px)
示例
css">.box {width: 300px; /* 宽度固定为 300 像素 */height: 150px; /* 高度固定为 150 像素 */background-color: coral;
}
注意事项
  • 适用于固定布局,如按钮、图标大小。
  • 在响应式设计中不推荐单独使用绝对单位。

4. 相对单位

相对单位根据上下文元素的特性(如字体大小或父元素尺寸)动态调整。

单位描述
em相对于当前元素的字体大小(或父元素的字体大小)
rem相对于根元素 <html> 的字体大小
示例
css">/* 假设根元素的字体大小为 16px */
html {font-size: 16px;
}.container {width: 10em; /* 宽度为 10 倍的字体大小(160px) */height: 5em; /* 高度为 5 倍的字体大小(80px) */font-size: 20px;
}.child {width: 5rem; /* 宽度为根字体大小的 5 倍(80px) */
}
使用场景
  • em:适用于需要依赖父元素字体大小的布局。
  • rem:适用于全局一致的响应式设计。

5. 内容适配单位

内容适配单位根据内容的实际尺寸动态调整。

单位描述
auto自动根据内容大小或父元素尺寸调整宽高。
min-content最小内容宽度/高度。
max-content最大内容宽度/高度。
fit-content根据内容宽度进行自适应,但有上限。
示例
css">.box {width: fit-content; /* 宽度根据内容自适应 */height: auto; /* 高度根据内容自适应 */background-color: lightpink;
}
使用场景
  • 自动调整布局,例如动态长度的文本框。

6. CSS函数单位

CSS 提供了一些动态计算宽高的函数,常见的有 calc()clamp()

calc()

用于动态计算尺寸,支持混合单位。

css">.container {width: calc(100% - 50px); /* 总宽度减去固定间距 */height: calc(50vh + 20px); /* 基于视口高度加固定值 */
}
clamp()

限制宽高的范围。

css">.text {font-size: clamp(12px, 5vw, 24px); /* 字体大小在 12px 到 24px 之间 */
}

最后

在实际项目中:

  • 响应式设计:优先使用 vw, vh, %rem
  • 固定尺寸:适合用 px
  • 动态尺寸:善用 calc()fit-content

这篇文档主要侧重于实际应用上,其深入的细节、原理还没有详细介绍,感兴趣的话可以看看MDN的文档
https://developer.mozilla.org/zh-CN/docs/Web/CSS

哎,越用越觉得css内容多,真不知道怎么学了


http://www.ppmy.cn/devtools/136466.html

相关文章

自监督学习:从概念到应用的全面解析

引言 自监督学习&#xff08;Self-Supervised Learning, SSL&#xff09;是近年来机器学习领域的重要进展&#xff0c;它以未标注数据为核心&#xff0c;通过设计自生成标签的任务&#xff0c;挖掘数据的潜在结构和特征表示。在计算机视觉、自然语言处理&#xff08;NLP&#…

【一篇搞定配置】网络分析工具WireShark的安装与入门使用

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

centos一键卸载docker脚本

#!/bin/bash# 检查是否以 root 用户运行 if [ "$EUID" -ne 0 ]; thenecho "请使用 root 用户或通过 sudo 执行该脚本&#xff01;"exit 1 fiecho "停止 Docker 服务..." systemctl stop dockerecho "卸载 Docker 软件包..." yum remov…

linux下的spi开发与框架源码分析

目录 1 概述 2 spi子系统框架 3 spi硬件原理回顾 4 框架下spi的应用 4.1 在驱动中使用spi 4.1.1 使用框架与流程 4.1.2 示例分析 4.2 在应用使用spi 5 spi硬件驱动开发 6 spi子系统源码分析 6.1 子系统加载 6.2 注册controller过程 6.3数据收发过程 6.4 数据关系…

有关django、python版本、sqlite3版本冲突问题

本篇是解析为什么会出现python版本使用旧版本的sqlite3版本的问题&#xff0c;解决办法在下面有备注&#xff0c;如有遗漏之处或错误&#xff0c;望佬们指出&#xff0c;再次感谢不禁~~ 【坑点】更新python版本&#xff0c;并不会让sqlite版本实时更新&#xff0c;依旧是调用首…

微软Visual C++ 2015运行时库:轻松运行C++应用程序的必备工具

微软Visual C 2015运行时库&#xff1a;轻松运行C应用程序的必备工具 【下载地址】MicrosoftVisualC2015Redistributablex64x86安装包下载 本仓库提供Microsoft Visual C 2015 Redistributable x64/x86安装包的下载。该安装包包含了Visual C库的运行时组件&#xff0c;这些组件…

麒麟部署一套mysql集群,使用ansible批量部署可以提高工作效率

一、 服务端和客户端同时配置kylin镜像 配置麒麟的yum源 rm -rf /etc/yum.repos.d/CentOS-Base.repo vim /etc/yum.repos.d/Kylin_aarch64.repo Copy 写入如下yum源 [ks10-adv-os] name = Kylin Linux Advanced Server 10 - Os baseurl = http://update.cs2c.com.cn:8080/…

wpf 事件转命令的方式

1&#xff0c;方式1 <StackPanel Background"Transparent"><StackPanel.InputBindings><KeyBinding Command"{Binding ChangeColorCommand}"CommandParameter"{Binding ElementNamecolorPicker, PathSelectedItem}"Key"{Bi…