CSS进阶+设计

一、CSS伪类与伪元素

①伪类定义

伪类用于定义元素的特殊状态。

例如,它可以用于:

  • 设置鼠标悬停在元素上时的样式
  • 为已访问和未访问链接设置不同的样式
  • 设置元素获得焦点时的样式
②所有CSS伪类
选择器例子例子描述
:activea:active选择活动的链接。
:checkedinput:checked选择每个被选中的 <input> 元素。
:disabledinput:disabled选择每个被禁用的 <input> 元素。
:emptyp:empty选择没有子元素的每个 <p> 元素。
:enabledinput:enabled选择每个已启用的 <input> 元素。
:first-childp:first-child选择作为其父的首个子元素的每个 <p> 元素。
:first-of-typep:first-of-type选择作为其父的首个 <p> 元素的每个 <p> 元素。
:focusinput:focus选择获得焦点的 <input> 元素。
:hovera:hover选择鼠标悬停其上的链接。
:in-rangeinput:in-range选择具有指定范围内的值的 <input> 元素。
:invalidinput:invalid选择所有具有无效值的 <input> 元素。
:lang(language)p:lang(it)选择每个 lang 属性值以 "it" 开头的 <p> 元素。
:last-childp:last-child选择作为其父的最后一个子元素的每个 <p> 元素。
:last-of-typep:last-of-type选择作为其父的最后一个 <p> 元素的每个 <p> 元素。
:linka:link选择所有未被访问的链接。
:not(selector):not(p)选择每个非 <p> 元素的元素。
:nth-child(n)p:nth-child(2)选择作为其父的第二个子元素的每个 <p> 元素。
:nth-last-child(n)p:nth-last-child(2)选择作为父的第二个子元素的每个<p>元素,从最后一个子元素计数。
:nth-last-of-type(n)p:nth-last-of-type(2)选择作为父的第二个<p>元素的每个<p>元素,从最后一个子元素计数
:nth-of-type(n)p:nth-of-type(2)选择作为其父的第二个 <p> 元素的每个 <p> 元素。
:only-of-typep:only-of-type选择作为其父的唯一 <p> 元素的每个 <p> 元素。
:only-childp:only-child选择作为其父的唯一子元素的 <p> 元素。
:optionalinput:optional选择不带 "required" 属性的 <input> 元素。
:out-of-rangeinput:out-of-range选择值在指定范围之外的 <input> 元素。
:read-onlyinput:read-only选择指定了 "readonly" 属性的 <input> 元素。
:read-writeinput:read-write选择不带 "readonly" 属性的 <input> 元素。
:requiredinput:required选择指定了 "required" 属性的 <input> 元素。
:rootroot选择元素的根元素。
:target#news:target选择当前活动的 #news 元素(单击包含该锚名称的 URL)。
:validinput:valid选择所有具有有效值的 <input> 元素。
:visiteda:visited选择所有已访问的链接。

例如(:hover 鼠标悬停其上可以变换颜色)

以上显示网页导航窗格相关代码,如上图,原本设置的颜色为darkolivegreen,将鼠标悬停后会变成olive,并且字体颜色color会变成设置的white。

效果如下:

原图:

鼠标悬停后:

③什么是伪元素?

CSS 伪元素用于设置元素指定部分的样式。

例如,它可用于:

  • 设置元素的首字母、首行的样式
  • 在元素的内容之前或之后插入内容

 例如:(::first-line 选择每个<p>元素的首行。)

效果:

如图,第一行字体颜色发生改变。

例如:如图:

由代码可知,<h2>里的内容仅包括“《小猫的深夜歌谣》瓦季姆莱文”,使用(::after)伪元素后效果如下。

瓦季姆莱文后显示了其国籍“(Russia)”。

二、关系选择器

①类型
名称语法作用
子元素选择器父元素>子元素{  }通过指定的父元素找到子元素
后代选择器父元素  子元素{   }(父元素,子元素之间空格)通过指定的祖先元素找到指定的子元素
下一个兄弟选择器兄+弟 {    }选择与当前元素紧挨着的下一个同级元素
下面所有兄弟选择器兄~弟 {   }选择当前元素下的所有同级元

②举例

(子元素选择器)

效果如图:

例如:(下一个兄弟选择器)

如图可知,<p>标签内的一段字形将会改变,可以与上一效果图进行对比。(也可以知道,<span>标签内的效果仍然存在)

效果如下:

三、CSS布局

①以浮动为例

代码如下:

使用float属性并排浮动内容框,width根据几个内容框决定,三个就是33.33%,四个就是25%。

效果如图:

②display: inline-block

display:inline-block 允许在元素上设置宽度和高度。如果设置了 display: inline-block,将保留上下外边距/内边距.

padding设置了文本距离block的距离,margin设置了框距离网页边界的距离。

border-radius可以设置框的边界形状,background-color设置框的背景,color则是文字的颜色。

效果如图:

 ③水平和垂直对齐
1.居中对齐

要使块元素(例如 <div> )水平居中,使用 margin: auto

设置元素的宽度将防止其延伸到容器的边缘然后,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配。

例如:

效果如下:

注意:如果未设置 width 属性(或将其设置为 100%),则居中对齐无效。

若要居中对齐文本,则使用text-align:center。

居中对齐图片代码如下:

需要将图片左右外边距设置为auto,并设置成块元素。

效果如下:

2.左和右对齐
使用 position

对齐元素的一种方法是使用 position: absolute;

代码如下,实现图片左对齐,文本框右对齐。

效果如下:

使用float

效果如图:

四、盒模型

所有 HTML 元素都可以视为方框。在 CSS 中,在谈论设计和布局时,会使用术语“盒模型”或“框模型”。

CSS 框模型实质上是一个包围每个 HTML 元素的框。它包括:外边距、边框、内边距以及实际的内容。下图展示了框模型:

CSS 框模型

对不同部分的说明:

  • 内容 - 框的内容,其中显示文本和图像。
  • 内边距 - 清除内容周围的区域。内边距是透明的。
  • 边框 - 围绕内边距和内容的边框。
  • 外边距 - 清除边界外的区域。外边距是透明的。
①margin:

margin 属性是以下各外边距属性的简写属性:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

如果 margin 属性有四个值:

  • margin: 25px 50px 75px 100px;
    • 上外边距是 25px
    • 右外边距是 50px
    • 下外边距是 75px
    • 左外边距是 100px

如果 margin 属性设置三个值:

  • margin: 25px 50px 75px;
    • 上外边距是 25px
    • 右和左外边距是 50px
    • 下外边距是 75px

如果 margin 属性设置两个值:

  • margin: 25px 50px;
    • 上和下外边距是 25px
    • 右和左外边距是 50px
②padding:

属性值与margin相同。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值