第二周 蓝旭培训预习CSS进阶

CSS伪类和伪元素

伪类

伪类
伪类描述
:active在用户激活(例如点击)元素的时候匹配
:any-link匹配一个链接的:link和:visited状态
:autofill匹配<input>元素等表单元素是由auto complete填充时的样式
:checked匹配处于选中状态的单选或复选框
:defaut匹配一组相似的元素中默认的一个或者更多的ui元素
:disabled匹配处于关闭状态的用户界面元素
:empty匹配除了可能存在的空格外,没有子元素的元素
:enabled匹配处于关闭状态的用户界面元素
:first-child匹配兄弟元素中的第一个元素
:first-of-type匹配兄弟元素中第一个某种类型的元素
:focus

当一个元素有焦点的时候匹配 

:focus-visible当元素有焦点,且焦点对用户可见的时候匹配
:focus-within匹配有焦点的元素,以及子代元素有焦点的元素
:hover当用户悬浮到一个元素之上的时候匹配
:indeterminate匹配未定态值的UI元素,通常为复选框、单选框
:invalid匹配诸如<input>的任意内容未通过验证状态
:last-child匹配兄弟元素中最末的那个元素
:last-of-type匹配兄弟元素中最后一个某种类型的元素
:link匹配未曾访问的链接
:is()匹配传入的选择器列表中的任何选择器
:not匹配作为值传入自身的选择器未匹配的物件
:nth-child

匹配兄弟元素中的元素(可以是非同类元素)

兄弟元素按照an+b形式的式子进行匹配

:nth-of-type

匹配某种类型的一列兄弟元素

兄弟元素按照an+b形式的式子进行匹配

:nth-last-child

匹配一列兄弟元素(可以是非同类元素),从后往前倒数

兄弟元素按照an+b形式的式子进行匹配

:nth-last-of-type匹配某种类型的一系列兄弟元素,从后往前倒数
:only-child匹配没有兄弟元素的元素
:only-of-type匹配兄弟元素中某类型仅有的元素
:optional匹配不是必填的form元素
:required匹配必填的form元素
:read-only匹配用户不可更改的元素
:read-write匹配用户可以更改的元素
:valid

匹配诸如<input>

元素处于可用状态的元素

:target

匹配当前URL目标的元素(例如如果它有一个匹配当前URL分段的

元素)。

:visited匹配已访问链接
伪元素
伪元素描述
::after匹配出现在原有元素的实际内容之后的一个可样式化元素
::before匹配出现在原有元素的实际内容之前的一个可样式化元素
first-letter匹配元素的第一个首字母
::first-line匹配包含此伪元素的元素第一行
::selection匹配文档中被选择的部分
::placeholder匹配一个表单元素的占位文本

关系选择器

  • 标签选择器

作用:对页面中所有的此标签设置样式

语法:标签名{css属性名: 属性值:}

示例:

p{
    color: green;
}
  • 类选择器

作用:对页面中所有代此类名的标签设置样式

语法:.类名{CSS属性名: 属性值;}

示例:

.red{
    color: red;
}

说明

所有标签上都有ID属性

便签属性class的值就是类名

一个标签同时可以有多个类名,类名之间以空格隔开

类名可以重复,一个类选择器可以同时选中多个标签

  • id选择器

作用:对此页面中带有此id属性名的标签设置样式

语法:#id属性值{CSS属性名: 属性值;}

示例:

#blue {
    color: blue;
}

说明:

所有标签上都有ID属性

ID不能重复,它在页面中是唯一的

一个标签上只能有一个ID选择器,一个ID选择器只能选中一个标签

  • 通配符选择器

作用对页面中所有的选择器设置样式

语法: *{CSS属性名: 属性值;}

示例:

/*内外边距清除 */
* {
    margin: 0;
    padding: 0;
}

说明:开发中用的很少,一般用法如示例所示

复合选择器

  • 后代选择器

作用:根据HTML标签的嵌套关系,选择父元素后代元素中满足条件的元素

语法:选择器1 选择器2 {CSS属性名: 属性值;}

示例

div p{
    color: red;
}

说明:

后代包括:儿子,孙子,重孙子......

选择器与选择器之间通过空格隔开

  • 子代选择器

作用:根据HTML标签的嵌套关系,选择父元素子代中元族元素的条件

语法:选择器1>选择器2 {CSS属性名: 属性值;}

示例

div > a {
    color: seagreen;
}

说明:子代只包括:儿子

  • 并集选择器

作用:同时选择多组标签,设置相同的样式(简化代码)

语法:选择器1,选择器2 {CSS属性名: 属性值;}

示例

span,
h1 {
    color: springgreen;
}

说明

每组选择器通过,分隔

选择器一般一行一个,看着方便(示例所示)

  • 交集选择器

作用:选择页面中,同时满足多个选择器的标签

语法:选择器1,选择器2 {CSS属性名: 属性值;}

示例

p.box {
     color: springgreen;
}

说明:

选择器之间是紧挨的

选择器中如果有标签选择器,标签选择器必须写在最前面

  • hover伪类选择器

作用:选中鼠标悬停在元素上的状态,设置样式

语法:选择器:hover {css属性名: 属性值;}

示例

p: hover {
    color: red;
}

CSS布局

  • 普通流布局
  • 浮动布局
  • 定位布局
  • Flexbox布局
  • Grid布局

CSS盒模型

盒子的概念

页面中每个标签都可看作一个盒子

浏览器在显示网页时,会将网页中的元素看作一个个的矩形区域,也是“盒子”

内容区域内  content

内边距区域  padding

边框区域     border

外边距区域  margin

div {
    width: 300px;
    height: 300px;
    background-color: pink;
    border: 1px solid #000;
    padding: 20px;
    margin: 50px;

外边距折叠现象

1、合并现象

场景:垂直布局的块级元素,上下的margin会合并

结果:最终,两者距离为margin的最大值

解决方法:只给其中的一个盒子设置margin

2塌陷现象

场景:互相嵌套的块级元素,子元素的margin-top会作用于父元素上。

结果:导致父元素一起往下移动

解决方法:

给父元素设置border-top或者padding-top

给父元素设置overflow: hidden

转换行内块元素

设置浮动

行内元素的垂直外边距

行内标签的margin-top /padding-top和 bottom不生效

若想改变行内标签的垂直位置,可用line-height

CSS调试方法

  • 使用浏览器开发者工具:现代浏览器(如Chrome、Firefox、Safari等)都内置了强大的开发者工具。通过开发者工具,你可以检查元素的CSS属性、应用的样式规则、计算后的样式等。此外,你还可以实时编辑CSS样式,查看修改后的效果,这对于快速定位和解决问题非常有帮助。
  • 验证CSS语法:使用在线的CSS验证工具或编辑器内置的验证功能来检查CSS语法是否正确。语法错误可能导致样式不生效或出现意外的布局问题。
  • 逐步排除法:当遇到复杂的CSS问题时,可以尝试逐步排除法。通过注释或删除部分CSS规则,观察页面的变化,从而确定问题所在。这种方法需要耐心和细心,但通常能够找到问题的根源。
  • 利用CSS调试工具:除了浏览器自带的开发者工具外,还有一些专门的CSS调试工具,如Firebug、CSS Debugger等。这些工具提供了更丰富的功能和更直观的界面,可以帮助你更高效地调试CSS。
  • 审查CSS选择器的优先级:CSS选择器的优先级规则可能会导致某些样式不生效或被覆盖。了解并审查选择器的优先级是解决这类问题的关键。
  • 检查盒模型:盒模型是CSS布局的基础。了解元素的盒模型属性(如margin、padding、border、width和height)以及它们之间的关系。

 

 

 

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值