属性选择器:如,将有title的元素变为红色。
[title]
{
color:red;
}
html:
<h1>可以应用样式:h1>
<h2 title="Hello world">Hello worldh2>
<a title="W3School" href="http://w3school.com.cn">W3Schoola>
<hr />
<h1>无法应用样式:h1>
<h2>Hello worldh2>
<a href="http://w3school.com.cn">W3Schoola>
伪类:
:link :选择未被访问的链接
:visited:选取已被访问的链接
:active:选择活动链接
:hover :鼠标指针浮动在上面的元素
:focus :选择具有焦点的
:first-child:父元素的首个子元素
在这里尝试以下效果:
伪元素:
::first-letter :用于选取指定选择器的首字母
::first-line :选取指定选择器的首行
::before : 选择器在被选元素的内容前面插入内容
::after : 选择器在被选元素的内容后面插入内容
伪类与伪元素
伪类:CSS 伪类 (w3school.com.cn)
伪元素:CSS 伪元素 | 菜鸟教程 (runoob.com)
常用选择器:
CSS 选择器参考手册 (w3school.com.cn)
盒子模型(Box Modle)可以用来对元素进行布局,包括内边距Padding,边框Border,外边距Margin,和实际内容Content这几个部分。
盒子模型分为:
怪异模式是“部分浏览器在支持W3C标准的同时还保留了原来的解析模式”,怪异模式主要表现在IE内核的浏览器。
标准盒模型
width/height=content的宽度/高度;
标准盒模型下盒子的大小 = content + border + padding + margin
width/height=(content + border + padding)
怪异盒模型下盒子的大小=width(content + border + padding) + margin
如果是定义了完整的doctype的标准文档类型,无论是哪种模型情况,最终都会触发标准模式,
如果doctype协议缺失,会由浏览器自己界定,在IE浏览器中IE9以下(IE6.IE7.IE8)的版本触发怪异模式,其他浏览器中会默认为W3c标准模式。
box-sizing
通过属性box-sizing来设置盒子模型的解析模式.
box-sizing:定义引擎如何计算元素的总高度和总宽度
CSS 盒子模型 | 菜鸟教程 (runoob.com)
CSS盒子模型与怪异盒模型 - Cloud% - 博客园 (cnblogs.com)
从元素的布局特性来分,主要可以分为三类元素:块级元素、行内元素、行内块元素。
块级元素
div h1-h6 ul ol li dl dt dd form p
行内元素
span b strong i em ins del u
行内块元素
Img input a
注意:行内元素和行内块水平排列时,元素之间会出现大约6px的空白间隙,这是由于元素间空白字符(换行符、空格或制表符)导致。
flaot:left
和右浮动:float:right
关于为什么说浮动流是“半”脱标准流:因为浮动的盒子的位置会受到前面的标准流的影响。
可以看这里:浮动流的半脱标性_XBQ0510Qi的博客-CSDN博客
4个特性:
清除浮动
语法:
选择器{clear:属性值;}
属性值:
清除浮动的策略:闭合浮动,只在父盒子内部影响,不影响外面的其他盒子。
清除浮动的4种方法
clearFix
给所有浮动元素的父级加一个clearFix
的类名。当一个元素需要清除浮动的时候,直接设置clearFix
类名即可
.clearFix::after{
content:""; /*必须拥有content属性 内容为空*/
display: block; /*必须块标签才能清浮动 */
clear: both; /*清除浮动*/
height: 0;/*高度为0 不占用空间*/
}
/*兼容ie*/
.clearFix{
*zoom:1;
}
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
/* ie6 7 专门清除浮动的样式*/
.clearfix {
*zoom:1;
}
overflow:hidden
子元素浮动后,由于父级元素没有高度,下面的元素会顶上去,造成页面的塌陷。因此,需要给父级加个overflow:hidden属性,这样父级的高度就随子级容器及子级内容的高度而自适应
关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)_overflow: hidden;_星星之火M的博客-CSDN博客
两种不需要清除浮动情况:
float
属性(触发了父元素BFC)一个clear清除浮动的例子:CSS中clear“清除浮动”的作用原理_使用 clear 属性清除浮动的原理?_盗版_好大夫好伐的博客-CSDN博客
清除浮动的原理:
设置了clear属性的元素,相应的会在两侧按照没有浮动元素的样式排下去,所以不会受到浮动元素的影响,从而实现清除浮动
浮动对行内元素和块级元素的不同影响
省流:
display: inline-block
相似,一行可以多个且宽高为内容的宽高详细例子:行内元素和块级元素添加浮动后变化_行内元素加浮动_古塔前端的博客-CSDN博客
脱离标准流(简称“脱标”)
相对定位
position:relative
由于相对定位是不脱离标准文档流的,而且相对定位的元素会占用标准流中的位置,所以当给相对定位的元素设置margin padding等属性时会影响到标准流中的布局,即margin padding等属性先生效,然后再也生效后位置相对定位
相对定位不脱标的例子:
CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)
绝对定位
position:absolute
绝对定位的实例:CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)
绝对定位元素会忽略祖先元素的padding 的实例:
<div class="box3">
<div class="box4">div>
div>
.box3 {
width: 200px;
height: 200px;
background-color: green;
padding: 10px;
}
.box4 {
width: 50px;
height: 50px;
background-color: yellow;
position: absolute;
}
效果:
F12后鼠标点击box3盒子的content,显然外面一圈是padding,而box4以box3的content为参照进行绝对定位。
固定定位
position:fixed
【CSS】细说网页布局中的标准流、浮动流与定位流 - 掘金 (juejin.cn)
CSS中的标准文档流以及脱标(脱离标准文档流)(六) - 简书 (jianshu.com)
标准流以及脱标元素的特点 - 掘金 (juejin.cn)
【CSS】7 页面布局:浮动 - 知乎 (zhihu.com)
CSS中clear“清除浮动”的作用原理_使用 clear 属性清除浮动的原理?_盗版_好大夫好伐的博客-CSDN博客
关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)_overflow: hidden;_星星之火M的博客-CSDN博客
浮动流的半脱标性_XBQ0510Qi的博客-CSDN博客
行内元素和块级元素添加浮动后变化_行内元素加浮动_古塔前端的博客-CSDN博客
定位流和浮动定位 - ilovetesting - 博客园 (cnblogs.com)
CSS position 相对定位和绝对定位 | 菜鸟教程 (runoob.com)