CSS基础总结(三)盒子模型

news2024/12/23 12:39:41

文章目录

一、概述

二、组成

1. 边框(border)

2.内边距(padding)

 3.外边距(margin)

三、阴影

1.盒子阴影

2.文字阴影

 四、综合案例

1.新浪导航栏

 2.京东商品模块


一、概述

         所谓 盒子模型 :就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。


二、组成

        CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框、外边距、内边距、和 实际内容

 

1. 边框(border)

语法:

border : border-width || border-style || border-color

边框简写:

border: 1px solid red; 没有顺序

边框分开写法:

border-top: 1px solid red; /* 上边框*/
border-bottom: 1px solid red; /* 下边框*/
border-left: 1px solid red; /* 左边框*/
border-right: 1px solid red; /* 右边框*/
边框样式 border-style 可以设置如下值:
  • none:没有边框即忽略所有边框的宽度(默认值)
  • solid:边框为单实线(最为常用的)
  • dashed:边框为虚线
  • dotted:边框为点线

注意:

  • 表格的细线边框

表格的相邻边框默认都是存在的,这样会显得相邻的边框线会更粗不美观,可以这样解决:

border-collapse:collapse;
collapse 单词是合并的意思,border-collapse: collapse,表示相邻边框合并在一起
  • 边框会影响盒子的实际大小
边框会额外增加盒子的实际大小。因此我们有两种方案解决:
  1. 测量盒子大小的时候,不量边框.
  2. 如果测量的时候包含了边框,则需要 width/height 减去边框宽度
  • 圆角边框

border-radius 属性用于设置元素的外边框圆角。

border-radius:length;
  1. 参数值可以为 数值 百分比 的形式
  2. 如果是 正方形 ,想要设置为一个圆,把数值修改为 高度或者宽度的一半 即可,或者直接写为 50%
  3. 上面的代码是简写,后面跟4个值,分贝代表 左上角、右上角、右下角、左下角(顺时针)
  4. 分开写:border-top-left-radius、border-top-right-radius、border-bottom-right-radius 和 border-bottom-left-radius

2.内边距(padding)

padding 属性用于设置内边距,即边框与内容之间的距离。

padding 属性(简写属性)可以有一到四个值。 

当我们给盒子指定 padding 值之后:

  • 内容和边框有了距离,添加了内边距。
  • padding影响了盒子实际大小。
  • 如何盒子本身没有指定width/height属性, 则此时padding不会撑开盒子大小.
也就是说,如果盒子已经有了宽度和高度,此时再指定内边框,会撑大盒子。如下所示:

解决方法:
如果保证盒子跟效果图大小保持一致,则让 width/height 减去多出来的内边距大小 即可

如下所示:

 3.外边距(margin)

margin 属性用于设置外边距,即控制盒子和盒子之间的距离。

 

 margin 简写方式代表的意义跟 padding 完全一致

外边距典型应用:

外边距可以让块级盒子 水平居中 但是必须满足两个条件:
  • 盒子必须指定了宽度(width)。
  • 盒子 左右的外边距 都设置为 auto 。
例如:
.header{ width:960px; margin:0 auto;}
常见的写法,以下三种都可以:
  • margin-left: auto; margin-right: auto;
  • margin: auto;
  • margin: 0 auto;
示例:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>块级元素水平居中</title>
		<style>
			.nav {
				width: 600px;
				height: 200px;
				background-color: blue;
				/* 设置块级元素的宽度为auto就能实现块级元素的水平居中 */
				margin: 0 auto;
			}
		</style>
	</head>
	<body>
		<div class="nav">
			
		</div>
	</body>
</html>

注意:
        以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中 给其父元素添加 text-align:center 即可

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>行内(块)元素的水平居中</title>
		<style>
			.nav {
				text-align: center;
			}
			.nav img {
				width: 400px;
				height: 300px;
			}
		</style>
	</head>
	<body>
		<div class="nav">
			<span>
				hello Meesi
			</span>
			<img src="../img/22.png">
		</div>
	</body>
</html>

可以看到无论是文字,还是图片,只要是行内元素或者是行内块元素,

只需将其父元素添加text-align:center 即可。

外边距合并之相邻块元素垂直外边距的合并:

        当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有 上外边距 margin-top ,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。 取两个值中的 较大者这种现象被称为 相邻块元素垂直外边距的合并

 

 解决方法:

  • 尽量只给一个盒子添加margin值

外边距合并之嵌套块元素垂直外边距的塌陷:

        对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值

 解决方法:

  • 可以为父元素定义上边框
  • 可以为父元素定义上内边距
  • 可以为父元素添加 overflow:hidden

清楚内外边距:

        网页元素很多都带有 默认的内外边距 ,而且不同浏览器默认的也 不一致 。因此我们在布局前, 首先 要清除下网 页元素的内外边距。
* {
   padding:0; /* 清除内边距 */
   margin:0; /* 清除外边距 */
 }
注意:
  • 行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。
  • 但是转换为块级和行内块元素就可以了。


三、阴影

1.盒子阴影

我们可以使用 box-shadow 属性为盒子添加阴影

 语法:

box-shadow: h-shadow v-shadow blur spread color inset;

 注意:

  • 默认的是外阴影(outset), 但是不可以写这个单词,否则造成阴影无效
  • 盒子阴影不占用空间,不会影响其他盒子排列

2.文字阴影

我们可以使用 text-shadow 属性将阴影应用于文本。

语法:

text-shadow: h-shadow v-shadow blur color;


 四、综合案例

1.新浪导航栏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>新浪导航栏</title>
		<style>
			.navigator {
				border-top: 3px solid #ff8500;
				border-bottom: 1px solid #edeef0;
				width: 1000px;
				height: 41px;
				background-color: #fcfcfc;
				/* 行高等于盒子高度使得元素垂直居中 */
				line-height: 41px;
				/* 左右外边距设置为auto 可以使得盒子在浏览器中水平居中 */
				margin: 0 auto;
			}
			.navigator a {
				/* 取消链接自带的下划线样式 */
				text-decoration: none;
				/* 将链接a从行内元素设置成行内块元素,以设置其大小 */
				display: inline-block;
				font-size: 15px;
				color: #4c4c4c;
				padding: 0 15px;
			}
			a:hover {
				background-color: #edeef0;
			}
		</style>
	</head>
	<body>
		<div class="navigator">
			<a href="#">设为首页</a>
			<a href="#">手机新浪网</a>
			<a href="#">移动客户端</a>
			<a href="#">登录</a>
			<a href="#">微博</a>
			<a href="#">博客</a>
			<a href="#">邮箱</a>
			<a href="#">网站导航</a>
		</div>
	</body>
</html>

效果:

 2.京东商品模块

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>京东商品模块</title>
		<style>
			/* 布局第一步,清楚页面默认的内外边距 */
			* {
				margin: 0;
				padding: 0;
			}
			body {
			    background-color: #f4f4f4;
			}
			.box1 {
				background-color: white;
				width: 287px;
				height: 402px;
				margin: 100px 100px;
			}
			.box1 img {
				width: 182px;
				height: 182px;
				margin: 36px 50px 54px 51px;
			}
			.box2 {
				width: 222px;
				height: 49px;
				margin: 0 0 25px 40px;
			}
			.smallbox {
				width: 40px;
				height: 22px;
				background-color: red;
				color: white;
				text-align: center;
				margin-right: 5px;
				line-height: 22px;
				display: inline;
				padding: 0 8px 2px 8px;
			}
			 p {
				display: inline;
				color: #666666;
			}
			.box1 h4  {
				color: red;
			}
			.box1 h2  {
				color: red;
			}
			h2 {
				display: inline;
			}
			h4 {
				display: inline;
			}
			.box3 {
				width: 93px;
				height: 26px;
				margin-left: 39px;
				margin-top: 20px;
			}
			
		</style>
	</head>
	<body>
		<div class="box1">
			<img src="../img/6.png" title="科沃斯多功能空气净化器">
			<div class="box2">
				<div class="smallbox">自营</div>
				<p>
					科沃斯多功能空气净化器Z1 家用除甲醛 除菌除过...
				</p>
			</div>
			<div class="box3">
				<h4>¥</h4><h2>7499.</h2><h4>00</h4>
			</div>
		</div>
		
	</body>
</html>

效果:

 END.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes自定义监控指标——Prometheus Adapter实战演练

1、概述 kubernetes的监控指标分为两种&#xff1a; Core metrics(核心指标)&#xff1a;从 Kubelet、cAdvisor 等获取度量数据&#xff0c;再由metrics-server提供给 kube-scheduler、HPA、 控制器等使用。 Custom Metrics(自定义指标)&#xff1a;由Prometheus Adapter提供…

小伙伴们-GO-带你揭开Linux的神秘面纱

文章目录1、Linux的神秘面纱2、Linux操作系统优秀特质3、Linux操作系统应用领域4、解刨-linux系统结构5、带你一探Linux系统-满血复活的启动过程6、Linux 骨架-文件系统与目录结构6.1、Linux 文件系统概览6.2 、linux/unix 文件系统-奠基石6.2.1、 硬盘存储小知识6.2.2、 inode…

重写Nacos服务发现:多个服务器如何跨命名空间,访问公共服务?

一、问题背景 在开发某个公共应用时&#xff0c;笔者发现该公共应用的数据是所有测试环境&#xff08;假设存在 dev/dev2/dev3&#xff09;通用的。 这就意味着只需部署一个应用&#xff0c;就能满足所有测试环境的需求&#xff1b;也意味着所有测试环境都需要调用该公共应用…

LLVM浅析

LLVM的探索 编译器的作用就是将源码编译成可以运行的程序。 终端按顺下敲入 vim hello.py python hello.py vim hello.c clang hello.c ./a.out vim main.m #imclude<stdio.h> int main(int argc, char *argv[]){printf("hello word!"); };LLVM概述 从写代码…

【Python天气预报系统】又要降温,这个冬天你准备好棉衣秋裤了吗?看了不后悔系列之Python打造智能天气预报系统,爆赞。

前言 鼎鼎大名的南方城市长沙很早就入冬了&#xff0c;街上各种大衣&#xff0c;毛衣&#xff0c;棉衣齐齐出动。 这段时间全国各地大风呜呜地吹&#xff0c;很多地方断崖式降温。瑟瑟发抖.jpg 虽然前几天短暂的温度回升&#xff0c;但肯定是为了今天的超级降温&#xff0c;…

毕业设计 - 基于java web的城市公交查询系统的设计与实现【源码+论文】

文章目录前言一、项目设计1. 模块设计2. 实现效果二、部分源码项目工程前言 今天学长向大家分享一个 java web 毕业设计项目: 基于java web的城市公交查询系统的设计与实现 一、项目设计 1. 模块设计 系统功能的划分方式可以分成很多种类&#xff0c;但是我按照界面流程将它…

“人生搜索引擎” # Rewind

你想找什么东西&#xff0c;只需要在搜索引擎上输入关键词&#xff0c;它就会把“相关记忆”给你提取出来。这也就是 Rewind 这款搜索引擎想解决的问题。Rewind 给自身的定义是&#xff1a;The Search Engine For Your Life也就是你人生的搜索引擎&#xff0c;它声称能快速搜索…

宠物狗大学生网页设计模板 静态HTML动物保护学生网页作业成品 DIV CSS动物主题静态网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

微信小程序 | 小程序WXSS-WXML-WXS

&#x1f5a5;️ 微信小程序 专栏&#xff1a;小程序WXSS-WXML-WXS &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1…

高并发下秒杀商品,这9个细节你必须掌握好

目录&#xff1a;导读 前言 一、瞬时高并发 二、页面静态化 三、秒杀按钮 四、读多写少 五、缓存问题 1、缓存击穿 2、缓存穿透 六、库存问题 1、预扣库存 2、数据库扣减库存 3、redis扣减库存 4、 lua脚本扣减库存 七、分布式锁 八、mq异步处理 1、消息丢失问…

[附源码]Node.js计算机毕业设计高校线上教学系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我们…

聚观早报 | 明年起手机预装APP均可卸载;爱奇艺VIP会员再次涨价

今日要闻&#xff1a;明年起手机预装APP均可卸载&#xff1b;爱奇艺VIP会员再次涨价&#xff1b;转转首个华南地区自营店开业&#xff1b;马斯克出售股票套现36亿美元&#xff1b;微软将逐步推出欧盟云数据边界明年起手机预装APP均可卸载 12 月 16 日消息&#xff0c;日前&…

2022中国产业数字化发展成熟度区域指数分析——充分利用特长,形成区域比较优势,夯实中国式现代化建设基础

易观分析&#xff1a;近年来&#xff0c;全球经济发展下行&#xff0c;但数字经济表现出了足够的韧性。在国内&#xff0c;产业数字化的经济规模占全国数字经济比重的81.7%&#xff0c;占中国GDP的32.5%&#xff0c;已经成为中国数字经济发展的核心动能。 在此背景下&#xff0…

Pr 入门系列之十四:导出

视频工作流程中的最后一步就是导出。Pr 中&#xff0c;可以方便地导出序列或剪辑&#xff0c;发送给他人&#xff0c;分享到社交媒体渠道&#xff0c;或者创建 DCP&#xff08;数字电影包&#xff09;文件用于影院分发。◆ ◆ ◆导出的一般流程1、首先&#xff0c;在时间轴面…

机器学习100天(三):003 数据预处理之处理缺失值

机器学习 100 天,今天讲的是:数据预处理-处理缺失值。 在上一节,我们导入了数据集,得到特征 X 和标签 y。 我们打开 X,发现 index5 样本的‘年龄’和 index3 样本的‘薪资’数值是 NaN。 NaN(Not a Number)是计算机科学中数值数据类型的一类值,表示空值 可能是由于在…

1.两数之和

传送门&#xff1a;https://leetcode.cn/problems/two-sum/ 目录 题目描述 题解 题目描述 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找出和为目标值target的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个…

Android.bp学习

一. Android.bp概念 Android.bp 文件首先是 Android 系统的一种编译配置文件&#xff0c;是用来代替原来的 Android.mk文件的。在Android7.0 以前&#xff0c;Android 都是使用 make 来组织各模块的编译&#xff0c;对应的编译配置文件就是 Android.mk。 在 Android7.0 开始&…

【生信算法】利用HMM纠正测序错误(Viterbi算法的python实现)

利用HMM纠正测序错误&#xff08;Viterbi算法的python实现&#xff09; 问题背景 对两个纯系个体M和Z的二倍体后代进行约~0.05x的低覆盖度测序&#xff0c;以期获得后代个体的基因型&#xff0c;即后代中哪些片段分别来源于M和Z。已知&#xff1a; 后代中基因型为MM、MZ&…

C++ 内存管理

由于C++需要程序员自己完成堆区的内存回收,因此有可能存在内存泄漏的风险。而Java、Python不需要程序员去考虑内存泄漏的问题,虚拟机都做了内存管理。只要可以跨平台的编程语言都需要做内存对齐,C++、Java、Python都是一样的。内存的定义 程序运行时所需的内存空间分为 固定…

什么是知识,什么是知识图谱,有什么作用,有哪些应用领域?

知识图谱可以帮助机器理解世界&#xff0c;提高人工智能模型的性能。它还可以用于数据挖掘、信息检索、问答系统和语义搜索等领域&#xff0c;提高系统的准确性和可理解性。知识图谱的建模方式和技术也可以用于生物信息学和社交网络分析等领域。 知识图谱背景 在给出知识图谱…