当前位置: 首页 > article >正文

前端入门必学:CSS盒子模型与图片样式全解析前言

在学习前端开发的过程中掌握 CSS 的基础知识是至关重要的一步。本文将详细介绍CSS 盒子模型、标签宽高、边框、边距以及图片与背景图片的使用方法适合刚入门的同学系统学习和复习。一、CSS 盒子模型——页面布局的基石1. 什么是盒子模型在 CSS 中每个 HTML 元素都被视为一个长方形的盒子。这个盒子由四部分组成从外到内依次是margin— 外边距盒子与其他元素之间的距离border— 边框围绕在内边距和内容外的线padding— 内边距内容与边框之间的空白区域content— 内容显示文字和图片的区域一个元素实际占用的空间 width/height padding border margin。图解textmargin-top ┌─────────────────────────┐ │ border-top │ │ ┌───────────────────┐ │ │ │ padding-top │ │ │ │ ┌─────────────┐ │ │ │ │ │ content │ │ │ │ │ └─────────────┘ │ │ │ │ padding-bottom │ │ │ └───────────────────┘ │ │ border-bottom │ └─────────────────────────┘ margin-bottom2. 两种盒子模型标准盒子模型content-box默认设置的width/height只作用于 content 区域实际宽度 width padding-left padding-right border-left border-right总宽度 实际宽度 margin-left margin-right替代盒子模型border-boxcss* { box-sizing: border-box; }设置的width/height包含了 content padding border好处更容易控制元素整体尺寸增加 padding 不会撑大元素外部尺寸推荐在项目开始时全局使用能避免很多布局计算错误对比示例css.content-box { box-sizing: content-box; width: 200px; padding: 20px; border: 5px solid black; /* 实际内容区宽度 200px总占用宽度 250px */ } .border-box { box-sizing: border-box; width: 200px; padding: 20px; border: 5px solid black; /* 总占用宽度就是 200px内容区自动缩小为 150px */ }3. margin 的合并塌陷问题现象两个垂直相邻的块级元素它们的上下 margin 会合并取较大值。htmldiv stylemargin-bottom:30px;上块/div div stylemargin-top:20px;下块/div !-- 实际间距 30px不是 50px --父元素与子元素的 margin 合并父元素没有 border 或 padding 隔开时子元素的margin-top会传递给父元素导致父元素一起下移。解决方法给父元素添加overflow: hidden;给父元素添加border或padding哪怕 1px使用display: flex;或display: flow-root;用伪元素隔开::before { content: ; display: table; }二、标签宽高详解1. 基本属性cssdiv { width: 900px; height: 50px; line-height: 50px; /* 单行文字垂直居中 */ }2. 宽度高度特性块级元素默认宽度 100%父元素内容区宽度高度由内容撑开。行内元素设置width/height无效需先转为display: block;或inline-block;。行内块元素可以设置宽高但不独占一行相邻元素之间有空白间隙换行符导致解决父元素font-size: 0;。3. 最小/最大宽高css.min-box { min-width: 200px; /* 最小宽度防止内容过少时太窄 */ max-width: 600px; /* 最大宽度防止内容过多时过宽 */ min-height: 100px; max-height: 300px; }常用于响应式布局配合百分比宽度使用。4. 单位详解px— 像素绝对单位最常用%— 相对于父元素内容区的百分比注意父元素需有明确高度em— 相对于自身字体大小font-size1em 当前字体大小rem— 相对于根元素html的字体大小适合整体缩放vw— 视口宽度的 1%100vw 整个窗口宽度vh— 视口高度的 1%100vh 整个窗口高度百分比高度的坑csshtml, body { height: 100%; } /* 必须设置祖先高度 */ .child { height: 50%; } /* 才有效 */三、标签边框与圆角1. 基本边框cssborder: 5px solid red; /* 粗细 样式 颜色 */样式可选值solid实线、dashed虚线、dotted点线、double双线、groove3D凹槽、ridge3D凸起、inset凹陷、outset凸出。2. 单边设置cssborder-top: 3px dashed blue; border-right: none; border-bottom: 1px solid #ccc; border-left: 5px solid green;可分别控制宽度、样式、颜色。3. 圆角 border-radiuscss/* 统一圆角 */ border-radius: 10px; /* 四个角分别设置左上、右上、右下、左下 */ border-radius: 10px 20px 30px 40px; /* 椭圆圆角水平半径 / 垂直半径 */ border-radius: 20px / 10px; /* 圆形宽高相等border-radius: 50% */ .circle { width: 100px; height: 100px; border-radius: 50%; }4. 边框图片进阶cssborder-image: url(border.png) 30 round;较少使用但可制作花式边框。5. 轮廓 outline位于边框外不占空间常用于表单聚焦样式outline: 2px solid blue;outline-offset可设置与边框的距离四、内外边距1. 外边距 margincssmargin: 10px; /* 四边相同 */ margin: 10px 20px; /* 上下10px左右20px */ margin: 10px 20px 30px; /* 上10左右20下30 */ margin: 10px 20px 30px 40px; /* 上右下左顺时针 */ /* 水平居中 */ margin: 0 auto; /* 必须设置宽度且不能是行内元素 */负值 margincssmargin-top: -20px; /* 向上移动 20px */ margin-left: -10px; /* 向左移动 10px */常用于微调位置、重叠效果、突破父容器限制。2. 内边距 paddingcsspadding: 20px; padding: 10px 20px; padding-left: 30px;padding 区域会显示背景色或背景图使用box-sizing: border-box;后padding 不会撑大元素外部尺寸五、其他核心样式1. 文字样式csscolor: #333; font-size: 16px; font-weight: bold; /* 或 700 */ font-style: italic; text-decoration: underline; /* 下划线 */ text-decoration: line-through; /* 删除线 */ text-decoration: none; /* 去掉下划线常用于a标签 */ font-family: Microsoft YaHei, Arial, sans-serif; text-indent: 2em; /* 首行缩进两个字符 */ text-align: center; /* 水平居中 */ letter-spacing: 2px; /* 字母间距 */ word-spacing: 4px; /* 单词间距 */ line-height: 1.5; /* 行高倍数推荐无单位 */ text-shadow: 1px 1px 2px rgba(0,0,0,0.3);2. 垂直对齐 vertical-align用于行内元素或表格单元格常用值baseline默认、top、middle、bottom图片底部空白问题图片默认基线对齐底部会有 3-4px 空隙cssimg { vertical-align: top; } /* 解决 */ /* 或者 */ img { display: block; }3. 背景与颜色cssbackground-color: #f0f0f0; background-color: rgba(255, 0, 0, 0.5); /* 半透明背景不影响子元素 */ opacity: 0.5; /* 整个元素半透明含子元素 */4. 溢出处理cssoverflow: visible; /* 默认溢出可见 */ overflow: hidden; /* 隐藏溢出内容 */ overflow: scroll; /* 始终显示滚动条 */ overflow: auto; /* 内容溢出时才显示滚动条 */ overflow-x: hidden; /* 单独控制水平方向 */5. 鼠标样式csscursor: pointer; /* 手型可点击 */ cursor: default; /* 箭头 */ cursor: move; /* 移动 */ cursor: text; /* 文本输入 */ cursor: not-allowed; /* 禁止 */ cursor: wait; /* 等待 */6. 列表样式cssul { list-style-type: none; /* 去除默认圆点 */ list-style-type: square; /* 实心方块 */ list-style-type: decimal; /* 数字 */ list-style-image: url(dot.png); /* 自定义图片符号 */ }7. 超链接伪类LVHA 顺序cssa:link { color: blue; } /* 未访问 */ a:visited { color: purple; } /* 已访问 */ a:hover { color: red; } /* 鼠标悬停 */ a:active { color: orange; } /* 点击瞬间 */顺序不能乱LoVeHAte。六、CSS 选择器优先级选择器示例权重内联样式stylecolor:red1000ID 选择器#header0100类/伪类/属性.box,:hover,[type]0010标签/伪元素div,::before0001通配符*0000重要声明!important最高派生选择器权重累加#nav li.active 100 1 10 111。七、img 标签与图片优化1. 基本用法htmlimg srcphoto.jpg alt照片描述 title悬停提示 width600alt是必须的图片加载失败时显示利于 SEO 和无障碍访问只设宽度或高度另一个自动等比缩放图片居中父元素text-align: center;2. 图片格式选择JPEG照片、复杂颜色有损压缩文件小PNG图标、透明背景无损压缩GIF简单动图颜色少SVG矢量图无限缩放可编辑WebP谷歌格式同等质量体积更小3. object-fit 控制图片填充方式cssimg { width: 300px; height: 200px; object-fit: cover; /* 裁剪并铺满类似 background-size: cover */ object-fit: contain; /* 完整显示留白 */ object-fit: fill; /* 拉伸填充默认 */ object-position: center; /* 焦点位置 */ }八、背景图片完全指南1. 基本属性cssbackground-image: url(bg.png); background-repeat: no-repeat; /* 不平铺 */ background-repeat: repeat-x; /* 仅水平平铺 */ background-size: cover; /* 铺满容器可能裁剪 */ background-size: contain; /* 完整显示可能留白 */ background-size: 100px 200px; /* 固定尺寸 */ background-position: center; /* 居中 */ background-position: 20px 50%; /* 具体坐标 */ background-attachment: fixed; /* 背景固定视差效果 */2. 多重背景cssbackground: url(overlay.png) center/cover no-repeat, url(bg.jpg) center/cover no-repeat; /* 先写的在上层 */可用于叠加纹理、图案、渐变。3. CSS 渐变css/* 线性渐变 */ background: linear-gradient(to right, red, blue); background: linear-gradient(45deg, #ff0, #f0f); /* 径向渐变 */ background: radial-gradient(circle, red, yellow, green);4. 精灵图CSS Sprites将多个小图标合并为一张大图通过background-position显示局部。css.icon { width: 30px; height: 30px; background: url(sprite.png) no-repeat; } .icon-home { background-position: 0 0; } .icon-user { background-position: -30px 0; } .icon-cart { background-position: -60px 0; }优点减少 HTTP 请求加快加载。总结本文覆盖了 CSS 盒子模型、宽高、边框、边距、文字样式、选择器优先级以及图片与背景图片的全部核心知识点。掌握这些内容你已经可以完成大部分静态页面的样式编写。下一篇我们将继续学习网页布局、弹性布局、响应式设计和标签定位敬请期待

相关文章:

前端入门必学:CSS盒子模型与图片样式全解析前言

在学习前端开发的过程中,掌握 CSS 的基础知识是至关重要的一步。本文将详细介绍 CSS 盒子模型、标签宽高、边框、边距 以及 图片与背景图片 的使用方法,适合刚入门的同学系统学习和复习。一、CSS 盒子模型——页面布局的基石1. 什么是盒子模型&#xff1…...

终极指南:如何安全高效地使用APKMirror下载安卓应用

终极指南:如何安全高效地使用APKMirror下载安卓应用 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror APKMirror是一款专注于安卓应用安全下载与管理的开源工具,为你提供官方应用商店之外的可靠替代方案。通过…...

AI编程助手Composer插件:无缝管理PHP依赖,提升结对编程效率

1. 项目概述:一个为AI编程助手量身定制的Composer工具如果你和我一样,日常重度依赖像Aider这样的AI编程助手来提升开发效率,那你一定遇到过这样的场景:你正和AI助手热火朝天地讨论一个功能实现,它为你生成了一段完美的…...

从Crustocean/conch看轻量级工作流编排:DAG原理与Python实现

1. 项目概述:从“Crustocean/conch”看现代数据管道编排的演进最近在梳理团队的数据处理流程时,我又一次被那些错综复杂的脚本、定时任务和手动依赖检查搞得焦头烂额。这让我想起了几年前第一次接触“Crustocean/conch”这个项目时的情景。当时&#xff…...

本地RAG系统实战:基于开源模型构建私有知识库问答应用

1. 项目概述与核心价值最近在折腾本地大模型应用的时候,发现了一个挺有意思的项目,叫Awareness-Local。这名字听起来有点玄乎,但说白了,它就是一个帮你把本地文件(比如PDF、Word、TXT,甚至图片里的文字&…...

双喷头3D打印实战指南:从原理到应用,掌握多材料制造

1. 双喷头3D打印:从“炫技”到“实用”的跨越如果你玩3D打印有一段时间了,看着满柜子的单色模型,心里大概会开始痒痒:能不能打印个红蓝相间的超级英雄手办?或者做个硬塑料外壳配软胶按钮的遥控器?这种想法&…...

FSL处理DTI数据保姆级避坑指南:从DICOM到FA图,我踩过的雷你别踩

FSL处理DTI数据实战避坑手册:从DICOM到FA图的完整解决方案 当你第一次打开FSL准备处理DTI数据时,是否曾被各种命令参数和报错信息搞得晕头转向?作为过来人,我完全理解那种面对黑框终端时的无助感。本文将用最直白的语言&#xff0…...

独家解密:ElevenLabs匈牙利语模型训练数据源(含布达佩斯大学语料库授权细节与音系学标注规范)

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs匈牙利语语音模型的技术定位与战略意义 ElevenLabs 匈牙利语语音模型并非简单的地方语言适配,而是其多语言零样本语音合成(Zero-Shot Voice Cloning)架构在…...

书成紫微动,律定凤凰驯:别信 “阿紫受控” 的鬼话,海棠山铁哥才是这句诗的正主

“书成紫微动,律定凤凰驯”本是华夏文德盛世的正统谶语, 却在流量的漩涡里被篡改成权谋剧本。 剥离谣言滤镜,回归文本与现世, 世人终将看清: “阿紫受控”纯属无稽, 海棠山铁哥,才是这句古辞唯一…...

代码即文档:让三个月后的自己还能看懂今天写的逻辑

在软件测试领域,我们擅长用精密的逻辑去验证他人的代码,却常常在一个隐蔽的角落跌倒——我们自己写的测试代码。三个月前,你精心构建了一套自动化测试框架,一个周末,数百行代码,逻辑环环相扣,运…...

从warmup_csaw_2016看栈溢出利用的本质:绕过NX/ASLR?不,这次我们先学‘计算’

从warmup_csaw_2016看栈溢出利用的本质:计算的艺术 在二进制安全领域,栈溢出常被初学者视为"魔法攻击"——只需覆盖返回地址就能获得控制权。但当我们剥开NX/ASLR等现代保护机制的外衣,会发现精确计算才是漏洞利用的永恒核心。2016…...

2026年好用的录音转文字工具怎么选?从链接提取到实时转写的完整方案

做会议记录、课堂笔记或内容创作时,经常卡在两个问题上:一是录音文件堆积成山不知道从何整理,二是转完文字还要花时间校对和调整。微信里有个叫提词匠的小程序在这类需求里效率比较实用,下面会重点拆解它怎么用,同时也…...

LabVIEW多线程同步:队列、事件、信号量等核心机制详解与实战应用

1. 项目概述:为什么LabVIEW的多线程同步是开发者的必修课?如果你用过LabVIEW,肯定对它的图形化编程和并行执行能力印象深刻。但当你开始构建稍微复杂点的应用,比如一个需要同时采集数据、实时处理、记录日志和更新界面的测控系统时…...

如何永久保存微信聊天记录?WeChatMsg终极解决方案完全指南

如何永久保存微信聊天记录?WeChatMsg终极解决方案完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

如何高效下载30+文档平台资源:kill-doc文档下载工具完整指南

如何高效下载30文档平台资源:kill-doc文档下载工具完整指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是…...

策略即代码:从理念到实践,构建自动化合规与安全防线

1. 项目概述与核心价值 最近在整理团队内部的开发规范时,发现了一个非常有意思的仓库: vectimus/policies 。乍一看这个名字,你可能会觉得这只是一个存放公司政策文档的普通地方,但如果你深入进去,会发现它远不止于此…...

免费Web串口助手:3个简单步骤开启专业串口调试

免费Web串口助手:3个简单步骤开启专业串口调试 【免费下载链接】SerialAssistant A serial port assistant that can be used directly in the browser. 项目地址: https://gitcode.com/gh_mirrors/se/SerialAssistant 你知道吗?现在无需安装任何…...

激光雷达距离传感器:智能感知时代的“千里眼“

在万物互联的智能时代,激光雷达距离传感器正以厘米级的精准测距能力,重塑自动驾驶、机器人导航与智慧城市的感知边界。它不仅是一款传感器,更是智能系统的"第三只眼"——看得远、看得清、看得准。一、硬核原理:光速丈量…...

从协议到实践:国密TLCP协议深度解析与Nginx国密化改造实战

1. 国密TLCP协议的前世今生 第一次接触国密TLCP协议是在2018年参与某金融机构的安全改造项目。当时客户明确提出要使用国产密码算法,但在实际部署过程中发现,现有的国际标准SSL/TLS协议对国密算法支持非常有限。这就是TLCP协议诞生的背景 - 为了解决国产…...

跨平台包管理新思路:paks项目如何统一软件安装体验

1. 项目概述:一个轻量级、跨平台的包管理新思路如果你和我一样,常年混迹在开发运维一线,肯定对“包管理”这件事又爱又恨。爱的是,它能让我们一键安装、更新、卸载软件,省去了手动编译、配置依赖的繁琐;恨的…...

iOS 18.2 Siri大模型升级:从命令响应到意图理解的混合智能架构解析

1. 项目概述:当Siri遇上ChatGPT,一次迟来的“大脑移植”作为一名长期关注移动操作系统与AI交互的从业者,我几乎第一时间就刷到了iOS 18.2 Beta 1的更新包。这次更新的标题——“Siri接入ChatGPT技术”——简单直接,却足以在圈内掀…...

JL-01多通道温湿度记录仪:环境监测的得力助手

在农业、林业与地质研究等领域,环境因子的精准监测是科研与生产决策的核心依据。JL-01多通道温湿度记录仪凭借小巧便携的机身、强大的功能配置与灵活的定制化服务,成为环境数据采集的得力工具,为各类场景下的温湿度监测提供可靠支持。一、功能…...

嵌入式Linux系统固化:从启动卡制作到eMMC克隆的工程实践

1. 项目概述:从“启动卡”到“系统固化”的工程实践在嵌入式开发、工业控制、边缘计算乃至一些特定的服务器运维场景里,我们经常会遇到一个看似基础却至关重要的需求:如何将一个完整的Linux操作系统,从一张临时的启动介质&#xf…...

数字孪生-三维重建-透明建筑-以智能管控为价值

透明建筑的核心透明建筑,本质上不是 “玻璃造房子”,而是以三维重构为骨架、以空间连续为逻辑、以全域可视为目标、以智能管控为价值的新一代数字孪生空间形态。它的核心可以浓缩为四句话:1. 空间可视核心:打破物理遮挡&#xff0…...

基于STM32的太阳能热水器智能控制系统设计与实现

1. 项目概述:为什么用STM32做太阳能热水器?几年前,我接手了一个老家的太阳能热水器改造项目。那台老式设备,除了一个机械式的水温水位显示仪,几乎没有任何智能控制。夏天水温能飙到七八十度,烫得没法直接用…...

当ChIP-seq遇见单细胞:技术原理、应用场景与未来展望,一次给你讲清楚

当单细胞分辨率重塑表观遗传学:scChIP-seq的技术突破与应用全景 表观遗传学研究正经历一场分辨率革命。过去十年间,科学家们不得不依赖数百万细胞才能绘制组蛋白修饰或转录因子结合的全局图谱,这种"群体平均"的视角掩盖了细胞间异…...

5分钟学会无损视频修复:untrunc让损坏MP4/MOV文件瞬间复活

5分钟学会无损视频修复:untrunc让损坏MP4/MOV文件瞬间复活 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否经历过重要视频突然无法播放的绝望时刻…...

Nodejs服务端如何配置Taotoken的OpenAI兼容SDK

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Nodejs服务端如何配置Taotoken的OpenAI兼容SDK 对于使用Node.js构建服务端应用的开发者来说,集成大模型能力正变得日益…...

终极PC游戏分屏解决方案:Universal Split Screen完全指南

终极PC游戏分屏解决方案:Universal Split Screen完全指南 【免费下载链接】UniversalSplitScreen Split screen multiplayer for any game with multiple keyboards, mice and controllers. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen …...

用Matlab和OptiSystem复现DFB激光器啁啾仿真:从公式到频谱对比的保姆级教程

用Matlab和OptiSystem复现DFB激光器啁啾仿真:从公式到频谱对比的保姆级教程 在光通信系统设计中,DFB(分布式反馈)激光器的啁啾效应一直是影响传输性能的关键因素。当工程师需要验证论文中的理论模型或优化实际系统参数时&#xff…...