伪类选择器、清除浮动

html-css08

伪类选择器、清除浮动,第1张

CSS 伪类 用于向某些选择器添加特殊的效果。(折角、抬头、箭头)

锚伪类 就是在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:已被访问状态,未被访问状态,鼠标悬停状态、活动状态(选定)。

a:link{color: #FF0000}/* 未访问的链接 */

a:visited{color: #00FF00}/* 已访问的链接 */

a:hover{color: #FF00FF}/* 鼠标移动到链接上 */(hover可用于所有元素,不只是链接)

a:active{color: #0000FF}/* 选定的链接 */

注:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的a:active 必须被置于 a:hover 之后,才是有效的。链接可以设置字体颜色,字体大小,字体类型,背景颜色等等。

①选择<li>列表中的第一个元素并设置其样式:

li:first-child{background:yellow}

注:和②的区别是,无论是<ul>,还是<ol>,第一个元素样式都是一样

②设置每个<ul>的首个子元素,并设置其样式:

ul>:first-child{background:yellow}

注:只有<ul>中第一个元素改变

③没太理解(如下图)

:first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。

:first-of-type 匹配的是某父元素下相同类型子元素中的第一个,比如 p:first-of-type,就是指所有类型为p的子元素中的第一个。这里不再限制是第一个子元素了,只要是该类型元素的第一个就行了。

一.加一个空元素,<div class="clear"></div>,然后在css里面写语句clear{clear:both}就可以可清除浮动。(之前7.20写过)

二.在css样式中添加语句overflow:hidden或overflow:auto可以清除浮动,例如为父元素设置容器宽高或设置 *zoom:1。(浮动元素又回到了容器层,把容器高度撑起)等方法

为什么要清除浮动,在非IE浏览器下,当容器的高度为auto,且容器的内容中有浮动的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响布局的现象。这个现象叫浮动溢出,为了防止这个现象的出现而进行的CSS处理。

display 设置或检索对象是否及如何显示。

display: none 隐藏对象

display:block 除了转换为块级元素之外,同时还有显示元素的意思。

登录后复制

特点: display 隐藏元素后,不再占有原来的位置。

后面应用及其广泛,搭配 JS 可以做很多的网页特效。实际开发场景:

配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

二、visibility 可见性 (了解)

visibility 属性用于指定一个元素应可见还是隐藏。

visibility:visible  元素可视

visibility:hidden  元素隐藏

登录后复制

特点:visibility 隐藏元素后,继续占有原来的位置。(停职留薪)

如果隐藏元素想要原来位置, 就用 visibility:hidden

如果隐藏元素不想要原来位置, 就用 display:none (用处更多 重点)

三、overflow 溢出(重点)

overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度) 时,会发生什么。

属性值 描述

visible 不剪切内容也不添加滚动条

hidden 不显示超过对象尺寸的内容,超出的部分隐藏掉

scroll 不管超出内容否,总是显示滚动条

auto 超出自动显示滚动条,不超出不显示滚动条

一般情况下,我们都不想让溢出的内容显示出来,因为溢出的部分会影响布局。

但是如果有定位的盒子, 请慎用overflow:hidden 因为它会隐藏多余的部分。

四、显示与隐藏总结

属性 区别 用途

display 显示 (重点) 隐藏对象,不保留位置 配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

visibility 可见性 (了解) 隐藏对象,保留位置 使用较少

overflow 溢出(重点) 只是隐藏超出大小的部分 1. 可以清除浮动 2. 保证盒子里面的内容不会超出该盒子范围

css

javascript

一般来说,是不给你a设置全局的,但是,如果你硬要这么问的话。你可以将你不需要的a:hover,加上一个class(比如:aa),然后

.aa:hover{

样式就根据原来复制一遍就好了(是a的样式,不是a:hover的)。

}