html css的一些基础 盒子模型

html css的一些基础 盒子模型


html css 盒子模型 基础
html实体(转移字符)
比如 浏览器会把多个空格解析为一个空格
  空格
> 大于号
< 小于号
© 版权符号
...
meta标签 写在head标签内
主要用于设置网页中的一些元数据 不是给用户看的
chaset 指定网页的字符集
name 指定的数据的名称
--keywords 表示网页的关键字
--description 用于指定网站的描述 网站的描述会显示在搜索引擎的搜索结果中
--title 会作为搜索结果的超链接上的文字显示

content 指定的数据的内容
<meta charset="UTF-8">
<meta name="keywords" content="Niko,blog,css">

将页面在3秒后重定向到百度
<meta http-equiv="refresh" content="3;url=http://www.baidu.com">
在网页中HTML专门用来负责网页的结构 所以在使用html标签时 应该关注的是标签的语义 而不是它的样式。


标题标签:
h1 ~ h6 一共六级标题 重要性递减
都是块元素
h1在网页中的重要性仅次于title标签 SEO关注 一般情况下一个页面只会有一个h1

hgroup用来为标签分组 可以将一组相关的标题放一起
<hgroup>
	<h1>大标题</h1>
	<h2>小标题</h2>
</hgroup>

p标签表示页面中的一个段落 块元素

em标签用于表示语音语调的一个加重 行内元素
strong表示强调 重要内容 行内元素
...
遇到看文档就行

-----------------------------------------------

在页面中一般通过块元素对页面进行布局
行内元素主要用来包裹文字
一般会在块元素中放行内元素 不会再行内元素中放块元素
块元素中进本上什么都能放
--p元素中不能放任何块元素

浏览器解析网页时 会自动对网页中不符合规范的内容进行修正
	比如:
	标签写在根元素外部
	p元素内嵌套了块元素
	根元素出现了除head和body以外的子元素
	......

语义化标签:
<body>
	<header></header>
	<main></main>
	<footer></footer>

	<nav></nav>
	<aside></aside>
	<article></article>

	<section></section>
</body>

header 表示网页的头部
main在一个页面只能有一个 表示网页的主体部分
footer 表示网页的底部
header和footer可以表示一个部分的头部和底部 所以可以多个

nav 表示网页中的导航
aside 表示和主主体相关的内容 (侧边栏)
article 表示文章

section表示一个独立的区块 上面的标签都不能表示时使用

这几个都是html5新增的 用的少 seo里用处也不大 本身也没有任何样式
div 块元素
span 行内元素
这两个没有任何语义

a标签的其他用处
<a href="#bottom">去底部</a>

<a id="bottom" href="#">回到顶部</a>

audio video 标签

<audio src="...mp3" controls autoplay loop></audio>

还可以通过source指定文件路径 可以解决一些兼容问题
<audio>
	对不起 您的浏览器不支持播放 请升级浏览器!
	<source src="...mp3">
	<source src="...ogg">
	ie8:
	<embed src="...mp3" type="audio/mp3" width="100" height="100">
</audio>

videoaudio 使用相同
长度单位
	像素 px
	不同屏幕的像素大小不同 所以同样的200px在不同设备下显示效果不一样

	百分比
	可以将属性值设置为相对其父元素属性的百分比

	em
	相对于元素自己的字体大小来计算
	1em = 1font-size

	rem
	相对于根元素的字体大小来计算
	html{font-size:20px;}

颜色单位
	red,blue
	rgb值 rgb(255,255,255)
	rgba a表示不透明度 rgb(255,255,255,.5)
	十六进制RGB值 #ff0000 如果颜色两位两位重复 可以简写
		#aabbcc --> #abc
	HSL值 HSLA值
		H 色相(0-360)
		S 饱和度 颜色的浓度 0% - 100%
		L 亮度 颜色的亮度 0% - 100%
文档流
	--网页是一个多层的结构 一层一层叠加
	--通过css可以分别为每一层来设置样式
	--作为用户来讲只能看到最上面一层
	--这些层中 最底下的一层称为文档流 文档流是网页的基础 我们所创建的元素默认都是在文档流中进行排列
	--对于我们来说元素主要有两个状态 在文档流中 & 不在文档流中

	元素在文档流中的特点:
	--块元素
		--块元素会在页面中独占一行
		--默认宽度是父元素的全部(会把父元素撑满)
		--默认高度是被子元素内容撑开的

	--行内元素
		--行内元素不会独占页面的一行,只占自身大小
		--在页面中自左向右水平排列 如果一行之中不能容纳下所有的行内元素 内元素会换到第二行继续自左向右排列
		--默认宽高和高度都是被子元素内容撑开的
盒模型-块元素
	--css将页面中所有的元素都设置为了一个矩形的盒子
	--对页面的布局变成将不同的盒子摆放到不同的位置
	--每一个盒子都由以下几个部分组成:
		--内容区 content
		--内边距 padding
		--边框 border
		--外边距 margin

	元素中的所有元素和文本内容都在内容区排列 内容区的带线啊哦由width和height两个属性来设置
	.box{
		width:100px; 设置内容区的宽度
		height:100px; 设置内容区的高度
	}

	边框属于盒子边缘 边框的大小会影响到整个盒子的大小
	设置边框至少需要三个样式
	border-width
		有默认值 一般都是3个像素
	border-color
		有默认值 自动使用color的颜色值
	border-style
		默认值是none 表示没有边框

	内边距
		内容区和边框之间的距离是内边距
		内边距的设置会影响到盒子的大小
		背景颜色会延伸到内边距上

	外边距
		外边距不会影响盒子可见框的大小
		外边距会影响盒子的位置
		影响盒子实际占用网页的大小

	一个元素在其父元素中,水平布局必须要满足以下的等式
	margin-left + border-left + padding-left + width + padding-right + border-right + margin-right = 其父元素内容区的宽度(必须满足)
	以上等式必须满足 如果相加结果使等式不成立,则称为过度约束,等式会自动调整:
	--调整情况:
		--如果这七个值中没有为 auto 的情况,则浏览器会自动调整margin-right 值以使等式满足
		--这七个值中有三个值可设置为auto
		width(默认为auto)
		margin-left
		margin-right
		--如果某个值为auto,则自动调整为auto的那个值使等式成立
		--如果一个宽度和一个外边距设置为auto,则宽度调整为最大,设置为auto的外边距会自动为0
		--如果三个值都为auto,外边距都是0,宽度最大
		--如果两个外边距设置为auto 宽度固定,则会将两个外边距设置为相同的值,这个特点经常被用来使一个元素在其父元素中水平居中
		.inner{
			width:100px;
			margin:0 auto;
		}

	超出父元素内容区宽度时,margin-right会设置为负值

	垂直外边距的折叠
		--相邻的垂直方向外边距会发生重叠的现象
		--兄弟元素
			--兄弟元素之间的相邻垂直外边距会去两者之间绝对值较大的(两者都是正值或都是负值)
			--如果相邻的外边距一正一负,则取两者的和
			--无需处理
		--父子元素
			--父子元素间相邻外边距,子元素会传递给父元素(上外边距)
			--父子外边距的折叠会影响到页面的布局 必须处理

	默认情况下,盒子可见框的大小由内容区、内边距和边框共同决定
		box-sizing 用来设置盒子尺寸的计算方式(设置width和height的作用)
		可选值:
		--content-box: 默认值,宽度和高度用来设置内容区的大小
		--border-box: 宽度和高度用来设置整个盒子可见框的大小
			此时width 和 height指的是内容区 和 内边距 和 边框 的总大小
盒模型-行内元素
	--行内元素不支持设置宽度和高度 其内容区就是被内容撑开的
	--行内元素可以设置padding,但是垂直方向padding不会影响页面的布局
	--行内元素可以设置border,但是垂直方向的border不会影响页面的布局
	--行内元素可以设置margin,但是垂直方向的border不会影响页面的布局

可以使用display设置元素显示的类型
	可选值
	--inline 将元素设置为行内元素
	--block 将元素设置为块元素
	--inline-block 将元素设置为行内块元素
		--即可以设置宽度和高度 又不会独占一行
	--table 将元素设置为一个表格
	--none 元素不在页面中显示
outline 用来设置元素的轮廓线,用法和border一样
	轮廓和边框不同的地方在于:轮廓不会影响到可见框的大小
	.box{
		outline:1px solid red;
	}
	一般用于设置鼠标移入效果之类的 不会影响到页面布局
box-shadow用来设置元素的阴影效果,不会影响到页面布局
  第一个值:水平偏移量
  正值向右
  负值向左
  第二个值:垂直偏移量
  正值向下
  负值向上
  第三个值:阴影的模糊半径
  第四个值:阴影的颜色
  .box {
  box-shadow: 10px 10px 50px rgba(0, 0, 0, 0.3);
}
border-radius用来设置圆角 圆角设置的是圆的半径大小
border-top-left-radius :10px 20px; 一个角的椭圆圆角
border-radius : 20px / 40px; 四个角同时设置椭圆圆角
border-radius : 50% 圆;
© 2025 Niko Xie