标签的分类:
-
块级元素(独自站一行 可以设置宽高 对齐属性)
如:h1
p
div
ul
ol
li
特点:默认的宽是100%;
自动换行(一行只放一个 不管宽度多少)
可以容纳内联元素和其他块元素
-
行内元素 (内容撑开页面,不可以设置宽高)
如a
strong
em
b
i
del
s
span
等 特点:不占独立的区域; 仅仅依靠自身的字体大小和图片支撑结构
不可以设置宽度, 高度 ,对齐属性(text-align 因为宽没用了也没用了,不支持上下margin);
默认的宽度就是他自身的内容的宽度;
元素内部换行符号 解析成空格
行内元素只能容纳文本或者其他行内元素 (a特殊)
-
行内块元素(
inline-block
可以设置宽高) 如:
img
input
td
特点: 和相邻的行内元素(行内块)在一行上 但是之间会有白色空隙;
默认宽度就是它本身内容宽度
元素内部换行符号 解析成空格
高度行高 外边距和内边距都可以控制;
a标签 span行内元素 也是不会被图片撑开 ; 宽度是 图片的宽度, 但是高度还是自己的很多时候,适当时需要变化成块级元素
注:
- 行内元素与块级元素的区别之一:
对于行内元素来说margin只有margin-left和margin-right有效,padding只有padding-left和padding-right有效
行内块元素和内容有关系的; 如果没有内容 又没有设置宽或者高 就是空的;
行内元素和行内块元素 的宽度 内容多少就是多少,内容为空就是0
虽然块级元素内部可以放 块级元素和行内元素以及行内块元素;但是 对于p和 h1标签而言 文字才能组成段落 ,所以在p标签和 h1 标签中也一般不装块级元素
虽然行内元素只能容纳文本或者其他行内元素,但是a特殊 是可以放块级元素的-----一般页面logo的设计
(a放块级元素的时候是不是将自己变成行内块元素或者是块级元素)
补充:块级元素 内部文字水平居中
而且:行内元素和行内块元素可以看成是文本 可以使用text-align居中对齐;
宽高默认值整理:
-
宽度width:摘自:https://blog.csdn.net/weixin_41030302/article/details/103180436
首先,明确一点:
HTML
元素属性width
的默认值是auto
auto
的四种表现:- fill-available —— 意为 充分利用可用空间,比如块级元素 div 的宽度默认为父级元素的 100% ,这种表现也被称为块级元素的流动性。
- shrink-to-fit —— 意为 收缩至合适,比如
inline-block
元素 - min-content —— 意为 收缩至最小,在古老的表格布局中会出现(擎天柱的效果)。
- max-content —— 意为 超出容器限制。
正是由于
auto
有四种表现,从而造成了不同的元素的默认宽度有不同的表现。-
块级元素:默认值auto,表现为父元素的100%
-
行内块元素以及行内: 表现为内容宽度;
width设置100%:是其父元素的百分比;
所以对于块级元素,如果想设置子元素宽度和父元素相等 , 可以不用写,默认就是这个
高度不行,必须要设置height:100%
当这个父元素是body的时候,该元素就会随着 浏览器宽度变化而变化了
-
高度height:摘自:https://segmentfault.com/a/1190000020247492
明确高是不能继承的
高的默认值:高度是由子元素来决定的
一个元素的height:
①可以不设置(默认)
②可以设置百分比
③设置固定的px的高度
④可以设置auto
总结:
-
如果不设置,那么他的高度是由子元素来决定的
-
如果设置成auto,和不设置是一样的,那么他的高度是由子元素来决定的
-
如果设置成百分比,那么他的高度是由父元素来决定的
给一个元素的height设置%的前提是该元素的父级的高度是确定的
这种确定:包括 爷爷是固定高度,父级元素设置%,(这时候父级元素也算高度确定)
此时子级元素 设置% 还是有效;
但是 如果从body后所有级别都设置百分比就不行了
要想设置子元素高度和父元素高度相等
因为没有默认了:所以必须要写
height:100%
-
如果设置成固定的px,那么就是他自己来决定的