css选择器
基础选择器
标签选择器
标签选择器用于将HTML的标签作为选择器,能快速为页面中同类型的标签统一设置样式,但不能设计差异化样式。
p { font-size: 12px; color: red }
类选择器
类选择器以" . " 进行标识,可以用于给多个HTML标签设置相同的样式,也可以给一个标签指定多个类名,从而达到更多的选择目的。
<style>
.wrap { margin:0; padding:0; }
.myclass { font-size: 12px; color: red }
</style>
<div class="wrap myclass"> 你笑起来真好看。</div>
id选择器
id 选择器以" # " 进行标识,可以为标有特定 id 的 HTML 元素指定特定的样式。id属性唯一。
<style>
#wrap { margin:0; padding:0; }
</style>
<div id="wrap"> 你笑起来真好看。</div>
通配符选择器
通配符选择器使用 " * " 定义,它表示选取页面中所有元素(标签)。
* {
margin: 0;
padding: 0;
}
复合选择器
后代选择器
后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
/* 元素1 元素2 { 样式声明 }
表示选择元素 1 里面的所有元素 2 (后代元素)。*/
div p { font-size: 12px; color: red; }
/* 选择 div 里面所有的 p 标签元素 */
子选择器
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。
/*元素1 > 元素2 { 样式声明 }
选择元素1 里面的所有直接后代(子元素) 元素2。*/
div > p { font-size: 12px; color: red; }
/* 选择 div 里面所有最近一级 p 标签元素 */
并集选择器
并集选择器可以选择多组标签, 同时为他们定义相同的样式,通过英文逗号" , "连接而成。通常用于集体声明。
/*元素1,元素2,元素3 { 样式声明 } */
div,.myclass,#psd { 样式声明 } /* 选择 div、.myclass和#psd元素 */
伪类选择器
伪类选择器书写最大的特点是用冒号(:)表示,比 如 :link 、 :last-child 。伪类选择器很多,这里主要介绍链接伪类和结构伪类。
链接伪类选择器:
/*让超链接点击之前是红色*/
a:link {color: red;}
/*让超链接点击之后是橙色*/
a:visited {color: orange;}
/*鼠标悬停,放到标签上的时候是绿色*/
a:hover {color: green;}
/*鼠标点击链接,但是不松手的时候*/
a:active {color: black;}
/* 为了确保生效,请按照 LVHA 的循顺序声明
:link-:visited-:hover-:active
记忆法:love hate */
盒子模型
标准盒子模型
1.width和height设置内容框的宽度和高度;
2.padding表示一个css框的内边距——这一层位于内容框的外边缘与边界的内边缘之间;
3.border是一个分隔层,位于内边距的外边缘以及外边距的内边缘之间;
4.margin代表css框周围的外部区域,成为外边距,他在布局中推开其他的css框。
box-sizing属性
/* 关键字 值 */
box-sizing: content-box;
box-sizing: border-box;
/* 全局 值 */
box-sizing: inherit;
box-sizing: initial;
box-sizing: unset;
溢流
auto: 当内容过多,溢流的内容被隐藏,然后出现滚动条来让我们滚动查看所有的内容。
hidden: 当内容过多,溢流的内容被隐藏。
visible: 当内容过多,溢流的内容被显示在盒子的外边(这个是默认的行为)
背景裁剪
.default { background-clip: border-box; }
.padding-box { background-clip: padding-box; }
.content-box { background-clip: content-box; }
css浮动
float和display不要写在同一个元素内
让两个有宽高的盒子平排 我们可以让这两个盒子转成行内块,但是盒子之间有空白
浮动的诞生就可以让元素平排 并且还可以设置宽高
浮动特点
1.相互贴靠(怎么贴靠)
2.浮动的元素可以设置宽高
3.脱离标准流(脱标)
清除浮动(带来的影响)方法
1.给浮动元素的父亲设置高度 ——有高度的盒子可以关闭浮动
2.clear:both 在父亲末尾增加一个元素 给这个元素设置属性clear:both
3.给浮动元素的父级 增加一个overflow:hidden
4.是第二种清除浮动的升级版 可以使用
5.最优方法 可以反复使用
<body>
<div class="wrap">
<div class="box1"></div>
<div class="box2"></div>
<div class="cleardiv"></div>
</div>
<div class="wrap2">
</div>
</body>
/* 5 */
.cleardiv:after{
content:'';
display: block;
clear: both;
}