首页 > 其他分享 >CSS|盒子模型

CSS|盒子模型

时间:2023-07-04 16:56:22浏览次数:54  
标签:box 盒子 模型 边框 padding 10px height border CSS

因为最近实习,学的是这种玩意,老师文档写的不错,更点基础的东西。

一. 盒子分类

每个元素都有默认的显示方式, 包括

  • 块盒: 独占一行, 可以设置宽高
  • 行盒: 不独占一行, 不能设置宽高(不生效)高度由字体大小撑开

显示方式是由display属性控制的

display常见的值:

  • block: 块盒
  • inline: 行盒
  • inline-block: 行内块

重要结论

  • 块盒(div)可以设置宽高, 独占一行
  • 行盒(span)设置宽高不生效, 由内容决定, 跟其它的行盒共占一行
  • 行内块(img)可以设置宽高, 又跟其它元素在同一行显示

二. 盒子模型

现实中的盒子有

  • 边框(厚度): border
  • 填充泡沫: padding
  • 内容: content

盒子与盒子之间的距离就是外边距

img

代码中的盒子模型, 打开浏览器, 通过调试窗口, 可以看到:

image-20230704164251656

示例

div {
	width: 100px;
	height: 100px;
	border: 1px solid;
	margin: 10px;
	padding: 10px;
}

1 边框border

语法

border : border-width || border-style || border-color
属性 作用
border-width 定义边框粗细,单位是px
border-style 边框的样式
border-color 边框颜色

边框的样式包括:

  • none:没有边框即忽略所有边框的宽度(默认值)
  • solid:边框为单实线(最为常用的)
  • dashed:边框为虚线
  • dotted:边框为点线

示例

div {
   border: 1px solid red;
}

圆角边框

在新的设计语言里, 圆角边框也是非常常见的表现形式

在CSS3中新增了border-radius

比如:

img

示例

p {
  width: 80px;
  height: 30px;
  background-color: red;
  font-size: 16px;
  color: #fff;
  text-align: center;
  line-height: 30px;
  border-radius: 15px;
}

通过调整border-radius的值改变弧度, 当值为height的一半时, 就是表现为一个半圆形

也可以通过border-radius: 50%画一个圆

div {
  width: 200px;
  height: 200px;
  background-color: skyblue;
  border-radius: 50%;
}

2 内边距padding

内边距也叫内填充, 是内容和边框border之间的距离

属性 作用
padding-left 左内边距
padding-right 右内边距
padding-top 上内边距
padding-bottom 下内边距

简写

按顺时针的方向: 上右下左

示例

div {
  /* 上:10px 右:20px 下:10px 左:20px */
  padding: 10px 20px 10px 20px;
}

一般, 写两个值的情况比较常见

分别表示: 上下和左右

示例

div {
  /* 上:10px 右:20px 下:10px 左:20px */
  padding: 10px 20px;
}

实战案例

新浪导航栏的核心就是因为里面的字数不一样多,所以我们不方便给具体的宽度

这个时候, 我们就可以通过设置padding的方式撑开盒子

代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>新浪导航栏案例</title>
	<style>
	/*清除元素默认的内外边距*/
		* {
			margin: 0;
			padding: 0;
		}
		.nav {
			height: 41px;
			background-color: #FCFCFC;
			/*上边框*/
			border-top: 3px solid #FF8500;
			/*下边框*/
			border-bottom: 1px solid #EDEEF0;
		}
		.nav a {
			/*转换为行内块*/
			display: inline-block;
			height: 41px;
			line-height: 41px;
			color: #4C4C4C;
			/*代表 上下是 0  左右是 20 内边距*/
			padding: 0 20px;
			text-decoration: none;
			font-size: 12px;
		}
		.nav a:hover {
			background-color: #eee;
		}
	</style>
</head>
<body>
	<div class="nav">
		<a href="#">设为首页</a>
		<a href="#">手机新浪网</a>
		<a href="#">移动客户端</a>
		<a href="#">博客</a>
		<a href="#">微博</a>
		<a href="#">关注我</a>
	</div>
</body>
</html>

3 外边距margin

外边距通常用来设置两个盒子之间的距离, 可以用来确定盒子之间的相对位置关系

属性 作用
margin-left 左外边距
margin-right 右外边距
margin-top 上外边距
margin-bottom 下外边距

块盒水平居中

  • 盒子必须指定了宽度(width)
  • 左右的外边距都设置为auto

示例

.container {
  width: 1100px;
  margin: 0 auto;
}

清除默认内外边距

由于浏览器会有一个默认的样式, 为了使我们的网页在所有的浏览器中看起来是一样的效果, 通常我们会先清除一些默认样式, 这个过程叫reset

示例

* {
  margin: 0;
  padding: 0;
}

三. 宽高的计算

1 边框盒与内容盒

通过设置box-sizing的属性可以控制实际大小

  • border-box: 边框盒, 表示宽高为边框盒的大小
  • content-box(默认): 内容盒, 表示宽高为内容盒的大小

示例

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #content-box {
        width: 100px;
        height: 100px;
        padding: 10px;
        border: 10px solid #000;
      }

      #border-box {
        width: 100px;
        height: 100px;
        padding: 10px;
        border: 10px solid #000;
        box-sizing: border-box;
      }
    </style>
  </head>
  <body>
    <div id="content-box"></div>
    <div id="border-box"></div>
  </body>
</html>

content-box:
img

border-box:
img

总结

  • content-box: 向外扩张, widthheight是内容盒的宽高, 实际占据的宽高要加上padding和border
  • border-box: 向内收缩, widthheight是边框盒的宽高, 实际占据的宽高不需要加padding和border

四. 盒阴影

有时, 为了增加3D立体效果, 可以添加盒阴影

box-shadow

box-shadow - CSS:层叠样式表 | MDN

img

示例

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      body {
        background-color: #f7f7f7;
      }
      div {
        width: 100px;
        height: 100px;
        background-color: #fff;
        box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.5);
      }
    </style>
  </head>
  <body>
    <div></div>
  </body>
</html>

标签:box,盒子,模型,边框,padding,10px,height,border,CSS
From: https://www.cnblogs.com/tangjielin/p/17526171.html

相关文章

  • 充血模型和贫血模型的理解
     一、贫血模型1.介绍贫血模型是指领域对象里只有get和set方法(POJO),所有的业务逻辑都不包含在内而是放在BusinessLogic层。 2.优点各层单向依赖,结构清楚,易于实现和维护。设计简单易行,底层模型非常稳定。3.缺点domainobject的部分比较紧密依赖的持久化domainlogic被分......
  • 易基因: RRBS揭示基于DNA甲基化驱动基因的肾透明细胞癌预后模型的鉴定和验证|项目文章
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。肾细胞癌(RCC)是最常见的肾癌亚型,每年超400万例新发病例,是泌尿系统恶性肿瘤导致的第二大死因。2%-70%的RCC为透明细胞RCC(Clearcellrenalcellcarcinoma,ccRCC)。DNA甲基化(DNAmethylation,DNAm)是主要的表观遗传修饰之一......
  • 如何利用图新地球软件将纬地数据与实景三维模型进行叠加?
    概述:纬地是公路设计的常用软件,在国内的普及率很高。传统的纬地数据文件以二维线条形式呈现在CAD中。本文提出了一种新思路、新方法,即将纬地的设计成果与无人机航拍的高精度倾斜摄影模型叠加在一起,辅助设计方案复核。​ 纬地平纵横叠加实景三维模型方法:工具软件:图新地球桌面......
  • 读取efficienthrnetH-2预训练模型的网络结构
    ['features.0.1.weight:torch.Size([24,3,3,3])','features.0.2.weight:torch.Size([24])','features.0.2.bias:torch.Size([24])','features.0.2.running_mean:torch.Size([24])','features.0.2.running_var:torch.Size......
  • cesium三维模型加文字标签
    给三维模型加文字标签,可以在找不到模型的时候双击标签,直接定位模型,但是模型是放在地球平面上的,它的中心点是底部中心点,label也显示在这个底部的中心点,想把这个label调整到合适的位置,可以使用 eyeOffset属性,设置文字的三维偏移,靠近还是远离眼睛,用的是z轴,负数表示靠近,正数表示远......
  • CSS文字超出宽度---换行总结
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Three.js教程:网格模型
    推荐:将NSDT场景编辑器加到你的3D工具链工具集:NSDT简石数字孪生网格模型(三角形概念)本节课给大家演示网格模型Mesh渲染自定义几何体BufferGeometry的顶点坐标,通过这样一个例子帮助大家建立**三角形(面)**的概念三角形(面)网格模型Mesh其实就一个一个三角形(面)拼接构成。使......
  • flex布局四个div盒子前三个盒子左对齐,后面的盒子右对齐
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>flex布局</title><style>*{margin:0;padding:0;}.box{ disp......
  • 预训练模型 | Transformer模型的规模大小
    Transformer有两个模型的规模大小标准:base、big。具体去thumt的models文件夹下的Transformer模型实现可以看到其参数大小。我们可以从Transformer模型的原论文(AttentionIsAllYouNeed)中看到,Transformer有两个模型的规模大小标准:base、big。Transformer模型的超参数Tran......
  • CSS|CSS基础
    HTML|CSS基础一.CSS简介1.什么是CSSCSS(CascadingStyleSheets),通常称为CSS样式表或层叠样式表2.CSS的作用CSS的作用就是用来规定每个HTML元素表现的样子,比如字体的大小颜色摆放位置...CSS也被称为网页的化妆师3.CSS的书写位置外联内嵌行内样式表......