Correcting teacher:PHPz
Correction status:qualified
Teacher's comments:发现问题,解决问题是最好的学习方式
伪是形容词, 类:class,指定了它的权重
伪类比较常用
1.元素的位置来匹配一个或多个元素
2.表单中根据元素的状态,如表单控件是否禁用或是否有效
结构伪类,举例子如下:
<style>
.list :nth-of-type(3) {
background-color: hotpink;
}
</style>
不增加元素属性的情况下保证了html代码干净的情况下选择到某一元素.
通过这种方式选中更简洁.
<ul class="list">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<p>demo1</p>
<li>item4</li>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
</ul>
寻找p元素,把list改成p元素type为1即可 .list > p:nth-of-type(1)
.list > :nth-of-type(3) {
background-color: hotpink;
}
第一张是默认输出没有p元素所以demo1没有改色
第二张是加入p元素输出就可以变色了
输出:
.list :nth-of-type(3) {
background-color: hotpink;
}
<ul class="list">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>
item4
<ul>
<li>item4-1</li>
<li>item4-2</li>
<li>item4-3</li>
</ul>
</li>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
</ul>
输出:
:nth-of-type()分组匹配,在匹配之前将元素根据类型进行分组后再匹配。
<ul class="list">
<li>item1</li>
<li>item2</li>
<p>demo1</p>
<li>item3</li>
<li>item4</li>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
</ul>
<style>
.list > p:nth-of-type(3) {
background-color: hotpink;
}
</style>
输出:
但是要找到p元素整篇代码只有一个p元素,把.list标签尾部的3改为1即可。
.list > p:nth-of-type(1) {
background-color: hotpink;
}
输出:
输出:
它第一步会先找p标签,然后自动分组,然后再找到第三个p。
.list > :nth-of-type(3):not(li:nth-of-type(3)) {
background-color: hotpink;
}
输出:
:nth-of-type(参数)
参数公式= an + b
a,n,b=[0,1,2,3,4…]
(0n+3)即是0n+3,n是从0开始。所以0n+3=3
.list > :nth-of-type(0n + 3) {
background-color: cornflowerblue;
}
输出:
1n+b:1*n会选到所有元素 ,1n会选到所有元素
1n+3代表偏移量,这个3代表从3开始。1n+0和1也会全选,因为0是非法值,当1计算出一个值才算有效值 。
所以下面的代码输出效果是一样的。
.list > :nth-of-type(1n + 3) {
background-color: cornflowerblue;
}
.list > :nth-of-type(n + 3) {
background-color: orange;
}
如用2n的话则会选择偶数行列,因为2x0=0,2x1=2,2x2=4,2x3=6,…以此类推。
.list > :nth-of-type(2n) {
background-color: blueviolet;
}
输出:
.list > :not-of-type(-n+3){
background-color: crimson;
}
.list > :nth-last-of-type(-n + 3) {
background-color: darkgreen;
}
字题图标可在阿里图标库里找到,把下载好的文件解压后拉进文件夹。然后回到html用代码引用。
<link rel="stylesheet" href="font_icon - 副本/iconfont.css" />
<p>
<span class="iconfont icon-gouwuche"><span>购物车</span></span>
</p>
输出:
<script src="font_icon - 副本/iconfont.js"></script>
<svg class="icon">
<use xlink:href="#icon-jingdongicon-"></use>
</svg>
输出:
盒模型常用属性
1. width (宽)
2. height(高)
3. border(边框)
4. padding(内边距)
5. margin(外边距)
<body>
<div class="box"></div>
box {
width: 200px;
height: 200px;
border: 1px solid;
}
输出:
background-color: goldenrod;
border: 5px dashed currentColor;
输出:
background-clip: border-box;
background-clip: content-box;
输出:
padding:20px;
输出:
box-sizing: content-box;
box-sizing: border-box;
输出:
.box {
padding: 5px 10px 15px 20px;
padding: 5px 10px 15px;
padding: 5px 10px;
padding: 10px;
}
高度宽度
.box {
border-top-width: 20px;
样式 double(双重)
border-top-style: double;
前景色
border-top-color: cadetblue;
以上代码可以一条进行简化
border-top: 20px double cadetblue;
buttom(底部)
border-bottom: 20px double cyan;
全部一样
border: 20px double cyan;
}
三行代码解决元素样式方案
* {
padding: 0px;
margin: 0px;
盒子大小的计算方式
box-sizing: border-box;
}
.box {
width: 10em;
10个em=160px,1em=16px
1个em = font-size大小
height: 5em;
box-sizing: border-box;
background-color: darkgreen;
:root {
font-size: 10px;
}
需要个160*80的盒子
.box {
width: 16rem;
height: 8rem;
}
body {
font-size: 16px;
}
.box {
width: 20vw;
盒子宽度永远是视口的五分之一:20%
height: 10vh;
}
高度永远是视口高度的10%
输出:
px(像素),em(元素和负极相关) , rem(只和根元素相关),vh,vw(与视口相关)
btn是基本样式,后面是修饰
<button class="btn small">按钮1</button>
<button class="btn middle">按钮2</button>
<button class="btn large">按钮3</button>
根元素设置10像素好布局
<style>
html {
font-size: 10px;
}
基本样式
.btn {
background-color: seagreen;
color: white;
border: none;
outline: none;
}
hover所有元素都能用,不是只能添加进a标签
.btn:hover {
cursor: pointer;
opacity: 0.8;
transition: 0.3s;
}
小按钮
.btn.small {
font-size: 1.2rem;
padding: 0.4rem 0.8rem;
}
中按钮
.btn.middle {
font-size: 1.6rem;
padding: 0.4rem 0.8rem;
}
大按钮
.btn.large {
font-size: 1.8rem;
padding: 0.4rem 0.8rem;
}
我只要动态的改变rem的大小, 就可以动态的调整每个按钮的大小
移动优先,从最小的屏幕开始进行媒体查询
@media (min-width: 480px) {
html {
font-size: 12px;
}
}
@media (min-width: 640px) {
html {
font-size: 14px;
}
}
@media (min-width: 720px) {
html {
font-size: 16px;
}
}
@media (max-width: 720px) {
html {
font-size: 16px;
}
}
@media (max-width: 640px) {
html {
font-size: 14px;
}
}
@media (max-width: 480px) {
html {
font-size: 12px;
}
}
@media (min-width: 720px) {
html {
font-size: 16px;
}
}
@media (min-width: 480px) and (max-width: 640px) {
body {
background-color: yellow;
}
}