行内标签:span u img input select i b...(独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父级宽度 )
块级标签:div p h ul li...(占满一行)多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化
可以通过以下方式转换
{
display: inline; //具有行内标签特性
display: inline-block; //使其按行内元素排列,却可以定义宽高
display: block; //具有块级标签特性
}
方法一:text-align 和 line-height
//必须是行内元素
.block{
text-align: center;
width: 100%;
height: 800px;
background-color: aquamarine;
}
.nav{
line-height: 300px;
width: 300px;
height: 300px;
background-color: pink;
}
方法二:position+负margin
//固定宽高
.block{
position: relative;
width: 100%;
height: 800px;
background-color: aquamarine;
}
.nav{
position: absolute;
top: 50%;
margin-top: -150px;
left: 50%;
margin-left: -150px;
width: 300px;
height: 300px;
background-color: pink;
}
方法三:position+margin auto
//固定宽高
.block{
position: relative;
width: 100%;
height: 800px;
background-color: aquamarine;
}
.nav{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin:auto;
width: 300px;
height: 300px;
background-color: pink;
}
方法四:position+transform
//无宽高
.block{
position: relative;
width: 100%;
height: 800px;
background-color: aquamarine;
}
.nav{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
background-color: pink;
}
方法五:flex
//无宽高
.block{
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 800px;
background-color: aquamarine;
}
.nav{
background-color: pink;
}
原因:css在设置浮动的时候,会脱离文档流,使父元素div宽度高度不能撑开。
解决方式:①父元素使用overflow:hidden
② 在浮动元素的最后面添加一个新元素,应用clear:both
③给父元素定义一个固定高度
语义化是html结构更清晰,便于浏览器解析,利于SEO搜素,使代码更好理解,便于维护。(header、footer、nav...)
行内元素从左至右排列,块级元素从上至下的排列,即为文档流
标签: nav、header、footer、article 、section等。ideo、audio、canvas、localStorage、sessionStorage
颜色rgba、border-radius、box-shadow、transform等
盒模型都包含4个部分:content、padding、border、margin。标准盒模型与IE盒模型的区别在于设置width/height的范围不同。标准盒模型的width = content ; 而IE盒模型的width = content + padding + border
!important > 内联样式 > id选择器 > class选择器/属性选择器/伪类选择器 > 标签选择器/伪元素选择器 > 通配符
①link 是基于XHML标签的,无兼容性;@import是css提供的, 只用IE5以上才兼容
②link 标签引入的css是同步加载的; @import 引入的css只有等页面加载完毕后,才开始加载
③link 标签不仅可以加载css文件,还可以定义RSS、rel连接属性。
④可以使用js操作DOM,插入link标签;而无法使用操作DOM的方式插入@import。
BFC:块级格式上下文,是css的一个布局的概念,是一块独立于外界的一个区域。触发条件: 根元素(html)、float不为none、position设置为absolute或者fixed、overflow值不为visible、display值为inline-block/table-cell/tabel-caption。可解决的问题:清除浮动、margin塌陷问题、可做两栏布局自适应。
BFC,块级格式化上下文,一个创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。
px 是绝对长度单位。em 是相对长度单位,相对于父元素。rem 是相对长度单位,相对于根元素。vw:视窗宽度,1vw等于视窗宽度的1%。
①alt:加载失败时显示 ②title:鼠标进入到图片时会显示
①cookie 一般用来存储验证客户端身份的数据。存储大小不超过4k, 并且在第一次请求之后,浏览器都会在请求头上添加cookie字段带上cookie,发到服务端。过期之前一直有效
②localStorage 是永久存储,大小为5M,只有手动清除数据才会失效。
③sessionStorage 是会话存储,大小为5M,当浏览器窗口关闭时数据失效。
都是三栏布局,即两边宽度固定,中间宽度自适应。
声明位于文档中最前面的位置,在标签之前。此标签可告知浏览器文档使用哪种HTML或XHTML规范。(注:在 HTML 中某些元素可以彼此不正确地嵌套,在 XHTML 中,所有的元素必须正确地嵌套。在XHTML中元素必须被嵌套于 根元素中。在HTML中允许一些不规范的写copy法,但是在XHTML则式不可以的。)
伪类:伪类存在的意义是为了通过选择器,格式化DOM树以外的信息以及不能被常规CSS选择器获取到的信息(:hover、:first-child)
伪元素:伪元素可以创建一些文档语言无法创建的虚拟元素(::before、::aftter)
①display:none会让元素完全从渲染树中消失,渲染时不再占据任何空间,不能点击;
②visibilty:hidden不会让元素从渲染树上消失,渲染元素继续占据空间,只是内容不可见,不能点击;
③opacity:0不会让元素在渲染树中消失,渲染元素继续占据空间,只是内容不可见,可以点击;