HTML+CSS基础用法介绍五

目录:

  • 结构伪类选择器
  • 盒子模型-边框线
  • 盒子模型-内边距
  • 盒子模型-解决盒子被撑大
  • 盒子模型-外边距与版心居中
  • 小知识:清除浏览器中所有标签的默认样式
  • 内容溢出控制显示方式
  • 盒子模型-圆角

🐎正片开始

结构伪类选择器

什么是结构伪类选择器:‌结构伪类选择器是CSS中的一种选择器,用于基于文档结构选择元素。‌ 这些选择器通常用于模仿或替代JavaScript中的事件处理器,使得可以通过CSS样式对文档中的某些结构位置或状态进行样式设计。结构伪类选择器能够选择元素在其生命周期中的特定时刻的状态,比如当用户悬停在链接上时,或者当元素是其父元素的第一个子元素时‌

结构伪类选择器的作用主要体现在以下几个方面:

  1. 减少对HTML属性的依赖‌
  2. 动态样式设计
  3. 文档结构选择‌

一些常见的结构伪类选择器包括:

  • hover‌:选择鼠标悬停在上面的元素。
  • focus‌:选择拥有焦点的元素。
  • active‌:选择被激活的元素(例如,被点击的链接)。
  • visited‌ 和 ‌link‌:分别选择已访问和未访问的链接。
  • first-child‌ 和 ‌last-child‌:选择某个元素的第一个或最后一个子元素。
  • nth-child()‌:选择某个元素的特定索引的子元素‌。

接下来主要介绍 first-child ,last-child, nth-child()

通过以下表格介绍着三个的用法和作用

结构伪类选择器作用
选择器:first-child查找第一个元素对其赋予属性值
选择器:last-child查找最后一个元素对其赋予属性值
选择器:nth-child(N)查找第N个元素(第一个元素N值为1)
  1. 选择器:first-child的使用

代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li:first-child{background-color: red;}</style>
</head>
<body><ul><li>我是第一个</li><li>我是第二个</li><li>我是第三个</li><li>我是第四个</li><li>我是第五个</li><li>我是第六个</li><li>我是第七个</li><li>我是第八个</li><li>我是第九个</li></ul>
</body>
</html>

可能有朋友好奇这么写结构伪类选择器是啥意思?

 <style>li:first-child{background-color: red;}</style>

其实就是在选中<li>标签中进行查找,first-child 单词意思就是说第一个孩子,其实也就是找到所有<li>标签中的第一个<li>标签 然后让其伪类结构选择器的属性,这里的属性就是让其背景变为红色

看看效果
在这里插入图片描述

  1. 选择器:last-child的使用

使用代码如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li:last-child{background-color: blue;}</style></head><body><ul><li>我是第一个</li><li>我是第二个</li><li>我是第三个</li><li>我是第四个</li><li>我是第五个</li><li>我是第六个</li><li>我是第七个</li><li>我是第八个</li><li>我是第九个</li></ul></body>
</html>

对以下代码进行解释

 <style>li:last-child{background-color: blue;}
</style>

last-child 单词的意思是最后一个孩子,也就是说在所有<li>标签中选择最后一个<li>标签对其背景色赋值为蓝色

效果图如下
在这里插入图片描述

  1. 选择器:nth-child(N)的使用

这里的N从1开始取正整数。


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li:nth-child(1){background-color: red;}li:nth-child(2){background-color: blue;}li:nth-child(3){background-color: green;}</style></head><body><ul><li>我是第一个</li><li>我是第二个</li><li>我是第三个</li><li>我是第四个</li><li>我是第五个</li><li>我是第六个</li><li>我是第七个</li><li>我是第八个</li><li>我是第九个</li></ul></body>
</html>

结构伪类选择器代码如下

 <style>li:nth-child(1){background-color: red;}li:nth-child(2){background-color: blue;}li:nth-child(3){background-color: green;}</style>

当N取几时就选中所有<li> 标签中的第几个标签,上述代码分别是选中了第1,2,3个<li>分别背景色会变为红绿蓝。

效果图
在这里插入图片描述
选择器:nth-child(公式)

公式作用
2n选中偶数
2n+1;2n-1选中奇数标签
5n选中5的倍数的标签
n+5选中(5,6,7…)一系列标签
-n+5选中(5,4,3,2,1…)一系列标签

这里的n从0开始取正整数

公式(2n)和(2n+1;2n-1)的用法

代码如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/*选中偶数标签*/li:nth-child(2n){background-color: red;}/*选中奇数标签*/li:nth-child(2n+1){background-color: blue;}</style></head><body><ul><li>我是第一个</li><li>我是第二个</li><li>我是第三个</li><li>我是第四个</li><li>我是第五个</li><li>我是第六个</li><li>我是第七个</li><li>我是第八个</li><li>我是第九个</li></ul></body>
</html>

效果图如下偶数标签背景色为红色,奇数标签背景色为蓝色
在这里插入图片描述
其他公式用法和上面用法相同,依葫芦画瓢即可。

盒子模型-边框线

  1. 这是同时设置四个方向的边框线

属性名:border
属性值:边框线粗细 线条样式 颜色 (不区分顺序)

常用线条样式

属性值线条样式
solid实线
dashed虚线
dotted点线

代码用法如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.solid{width: 200px;height: 200px;background-color: green;border: 4px solid blue;}.dashed{width: 200px;height: 200px;background-color: green;border: 6px dashed red;}.dotted{width: 200px;height: 200px;background-color: green;border: 8px dotted #000;}</style>
</head><body>这是实线: <div class="solid"></div>这是虚线:<div class="dashed"></div>这是点线:<div class="dotted"></div>
</body>
</html>

效果图
在这里插入图片描述

  1. 设置指定方向的边框线

属性名:border-方位(left,right,top,bottom)
属性值:边框线粗细 线条样式 线条颜色(不区分顺序)

用法如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color:pink;/* 这是设置上边框线  */border-top: 2px solid red;/* 这是设置下边框线  */border-bottom: 3px dashed green;/* 这是设置左边框线  */border-left: 4px dotted blue; /* 这是设置右边框线 */border-right: 5px solid orange;}</style>
</head>
<body>指定方向设置边框线测试如下:<div></div>
</body>
</html>

效果展示
在这里插入图片描述

盒子模型-内边距

  1. 设置某个方向的内边距

作用:设置内容与盒子边缘之间的距离
属性名:padding-方向(top, bottom,left,right)

代码用法如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: orange;/* 设置指定方向内边距 */padding-top: 10px;padding-bottom: 20px;padding-left: 30px;padding-right: 40px;}</style>
</head>
<body><div></div>
</body>
</html>

效果图如下

在这里插入图片描述

  1. 同时设置多个方向的内边距

padding多值写法

取值个数实例含义
一个值padding:10px;四个方向内边距均为10px
两个值padding:10px 80px;上下:10px,左右:80px
三个值padding:10px 40px 90px;上:10px,左右:40px,下:90px
四个值padding:10px 20px 30px 40px;上:10 px,下:30px,左:40px,右:20px
  1. 测试padding一个值的情况

代码如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: orange;/* 设置指定方向内边距 */padding: 40px;}</style></head><body><div></div></body>
</html>

效果图如下
在这里插入图片描述
当为padding设置一个像素值时则四个方向内边距都是这个像素值

  1. 测试padding两个值的情况

代码如下

<!-- 1. 测试padding两个值的情况 -->
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: red;/* 设置指定方向内边距 */padding: 40px 80px;}</style></head><body><div></div></body>
</html>

效果图
在这里插入图片描述
当为padding设置两个值时,第一个值为上内边距设置40px,第二个值对应的就是右内边距的像素值80px,因为左,下内边距没有被设置,则浏览器会把下内边距设置为和上内边距一样的像素值40px,同理,左内边距也被设置为和右内边距相同的值80px

盒子模型-解决盒子被撑大

    <style>div{width: 200px;height: 200px;background-color: pink;padding: 20px;}</style>

可以看见在代码中我设置div尺寸为200px200px,但是实际变成了239.99239.99,我们就当初240*240来看这是为什么呢?
在这里插入图片描述

那是因为我们加了padding:20px;这个属性,导致<div> 尺寸被撑大了,那为什么宽高各加40px呢?因为上下左右内边距是20px。

最终<div>标签的宽高计算如下
宽=左内边距+右内边距+里面框的宽度=20px+20px+200px=240px;
高=上内边距+下内边距+里面框的高度= 20px+20px+200px=240px;

盒子不被撑大解决方法如下
加上:box-sizing:border-box;

接下来在试试,代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: pink;padding: 20px;box-sizing: border-box;}</style>
</head>
<body><div></div>
</body>
</html>

效果展示
在这里插入图片描述
此时就解决了被撑大问题。

盒子模型-外边距与版心居中

作用:拉开两盒子之间的距离
属性名:margin
用法与padding用法相同,都可以设置某个单独方向,以及同时设置全部方向,只是这两个属性作用不同

指定某个方向设置外边距

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 600px;height: 200px;background-color: orange;/* 设置指定方向外边距 */margin-top: 100px;margin-bottom: 60px;margin-left: 30px;margin-right: 40px;}</style>
</head>
<body><div></div>
</body>
</html>

效果展示
在这里插入图片描述
版心居中小知识
只需要在margin属性的第二值用上auto即可版心居中

代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 600px;height: 200px;background-color: orange;/* 设置版心居中 */margin: 60px auto;}</style>
</head>
<body><div></div>
</body>
</html>

居中效果图
在这里插入图片描述

清除默认样式

在没有清除之前会有默认样式如下图所示

在这里插入图片描述

清除默认样式代码如下

    <style>*{margin: 0; /*清除外边距*/padding: 0; /*清除内边距*/list-style: none;/*清除无序序列前面的小点点*/box-sizing: border-box; /*将来设置内边距时,防止盒子被内容撑大*/}</style>

清除后效果图
在这里插入图片描述

内容溢出控制显示方式

属性名:overflow

属性值

属性值效果
hidden溢出隐藏
scroll溢出滚动(无论是否溢出,都显示滚动条位置)
auto溢出滚动(溢出才显示滚动条位置)

接下来对这三种属性值的使用情况如下
代码部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.hldden{width: 200px;height: 200px;background-color: pink;overflow: hidden; }.scroll{width: 200px;height: 200px;background-color: pink;overflow: scroll;}.auto{width: 200px;height: 200px;background-color: pink;overflow: auto;}</style>
</head>
<body>1. 测试hidden属性值,此时已经溢出,但溢出部分被隐藏<div class="hldden"><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p></div><br><br>2.测试scroll属性值,此时未溢出情况,但也显示滚动条<div class="scroll">       <p>测试中</p><p>测试中</p><p>测试中</p></div><br>2.1 测试scroll属性值,此时有溢出情况,显示滚动条<div class="scroll"><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p></div><br>3.测试auto属性值,此时未溢出情况,没显示滚动条<div class="auto">       <p>测试中</p><p>测试中</p><p>测试中</p></div><br>3.1 测试auto属性值,此时有溢出情况,显示滚动条<div class="auto"><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p><p>测试中</p></div>
</body>
</html>

效果图
在这里插入图片描述

盒子模型-圆角

作用:为元素外边框设置为圆角

属性名: border-radius

属性值:数字+px/百分比

注意:属性值是圆角半径

<!--用法如下-->
border-radius:10px(左上角)  20px(右上角)  30px(左下角)  40px(右下角);
  1. 当只给属性border-radius赋值一个值时的情况
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 100px;background-color:cadetblue;border-radius: 30px;}</style>
</head>
<body><div></div>
</body>
</html>

效果图
在这里插入图片描述
可以看见所有角都是一样的,都是30px。

  1. 当只给属性border-radius赋值两个值时的情况
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 100px;background-color:cadetblue;border-radius: 10px 40px;}</style>
</head>
<body><div></div>
</body>
</html>

效果图
在这里插入图片描述

可以看见左上角的弧度和右下角的弧度一致,右上角的和左下角的一致。因为我只给border-radius属性赋了两个值,按照赋值规则,第一个值是给左上角的,第二个则是给右上角的,如果没有被主动赋值的角,会和对角的弧度效果一致。

正圆形状:给正方形的盒子设置圆角属性值为宽或高的一半即可或者写50%
胶囊形状:给长方形 盒子设置圆角属性值为盒子高度的一半即可。

  1. 圆形状(制作头像)
<!-- 头像制作 -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>img{border-radius:50%;}div{padding-top: 30px;box-sizing: border-box;height: 300px;font-size: 30px;line-height: 0px;background-color:darkgray;}</style></head>
<body><div><img src="1.png" width="200"><p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;头像</p></div></body>
</html>

效果图
在这里插入图片描述

  1. 胶囊形状

代码如下

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 100px;background-color:burlywood;border-radius:50px;}</style>   </head><body><div></div></body>
</html>

效果图展示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/54388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全新一区PID搜索算法+TCN-LSTM+注意力机制!PSA-TCN-LSTM-Attention多变量时间序列预测(Matlab)

全新一区PID搜索算法TCN-LSTM注意力机制&#xff01;PSA-TCN-LSTM-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 全新一区PID搜索算法TCN-LSTM注意力机制&#xff01;PSA-TCN-LSTM-Attention多变量时间序列预测&#xff08;Matlab&#xff09;效果一览基本…

66 使用注意力机制的seq2seq_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录动机加入注意力总结代码定义注意力解码器训练小结练习 我们来真的看一下实际应用中&#xff0c;key&#xff0c;value&#xff0c;query是什么东西&#xff0c;但是取决于应用场景不同&#xff0c;这三个东西会产生变化。先将放在seq2seq这个…

Linux dlsym符号查找疑惑分析

dlsym 函数是 Linux 下动态链接库&#xff08;shared library&#xff09;编程中的一个重要函数。它用于在运行时获取动态链接库中符号的地址&#xff0c;通常用于获取函数指针或变量的地址。 以下是 dlsym 函数的基本用法和示例。 1. 函数原型 void *dlsym(void *handle, c…

如何实现事件流操作

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了通道相关的内容,本章回中将介绍StreamProvider组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 在Flutter中Stream是经常使用的组件,对该组件的监听可void main() {///让状态栏和程序的appBar融为一体…

海龟绘图画小汽车

1、效果图&#xff1a; 2、完整代码 import turtlet turtle.Turtle() #创建一个新的画布对象t.penup() t.goto(0,80) t.pendown()t.fillcolor("red") t.begin_fill() t.lt(180) t.fd(60) t.lt(45) t.fd(113) t.rt(45) t.fd(80) t.lt(90) t.fd(80) t.…

常见的VPS或者独立服务器的控制面板推荐

随着越来越多的企业和个人转向VPS和独立服务器以获得更高的性能和灵活性&#xff0c;选择合适的控制面板变得尤为重要。一个好的控制面板可以大大简化服务器管理&#xff0c;提高工作效率。本篇文章将介绍2024年最值得推荐的VPS控制面板&#xff0c;帮助您做出明智的选择。 1.…

论文阅读(十一):CBAM: Convolutional Block Attention Module

文章目录 IntroductionConvolutional Block Attention ModuleExperimentsConclusion 论文题目&#xff1a;CBAM: Convolutional Block Attention Module&#xff08;CBAM&#xff1a;卷积注意力机制&#xff09;   论文链接&#xff1a;点击跳转   代码链接&#xff1a;Git…

关于BSV区块链覆盖网络的常见问题解答(上篇)

​​发表时间&#xff1a;2024年9月20日 在BSV区块链上的覆盖网络服务为寻求可扩展、安全、高效交易处理解决方案的开发者和企业家开辟了新的视野。 作为开创性的曼达拉升级的一部分&#xff0c;覆盖网络服务提供了一个强大的框架&#xff0c;用于管理特定类型的交易和数据访问…

新编英语语法教程

新编英语语法教程 1. 新编英语语法教程 (第 6 版) 学生用书1.1. 目录1.2. 电子课件 References A New English Grammar Coursebook 新编英语语法教程 (第 6 版) 学生用书新编英语语法教程 (第 6 版) 教师用书 1. 新编英语语法教程 (第 6 版) 学生用书 https://erp.sflep.cn/…

3.点位管理改造-列表查询——帝可得管理系统

目录 前言一、与页面原型差距1.现在&#xff1a;2.目标&#xff1a;3. 存在问题&#xff1a; 二、修改1.重新设计SQL语句2.修改mapper层&#xff0c;使用Mybatis中的嵌套查询3.修改service层4. 修改controller层5.前端修改6.补充区域查看详情7.数据完整性 前言 提示&#xff1…

《OpenCV 计算机视觉》—— 视频背景建模

文章目录 一、背景建模的目的二、背景建模的方法三、背景建模的步骤四、注意事项五、代码实现 一、背景建模的目的 视频背景建模的主要目的是从视频序列中提取出静态背景&#xff0c;以便将动态的前景对象与静态的背景进行分离。这有助于进一步分析和处理视频内容&#xff0c;…

【Mybatis篇】Mybatis的关联映射详细代码带练 (多对多查询、Mybatis缓存机制)

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】,【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;一.关联映射概述 &#x1f6a…

RTSP协议讲解

1.RTSP协议 rtsp&#xff0c;英文全称 Real Time Streaming Protocol&#xff0c;RFC2326&#xff0c;实时流传输协议&#xff0c;是 TCP/IP 协议体系中的一个应用层协议。 RTSP 交互流程 1&#xff09;OPTIONS C--->S 客户端向服务器端发现 OPTIONS&#xff0c;请求可用…

html中的文本标签(含标签的实现案例)

目录 1.标题标签 2.标题标签的align属性 3.段落标签 4.水平线标签hr 5.换行标签br 6.文本样式标签font ​编辑7.文本格式化标签 8.文本语义标签 1&#xff09;时间time标签 2&#xff09;文本高亮Mark标签 3&#xff09;cite标签 9.特殊字符标签 10.图像标签img 附录&#xff…

基于微信小程序的旅游拼团系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

gitee公钥设置、创建库及使用

简介 一、如何安装git 使用gitee&#xff0c;需要先安装git工具。 工具网站地址&#xff1a;https://git-scm.com/downloads 安装完成后&#xff0c;在terminal命令行输入git --version可以查看到git的版本。 二、登录gitee 我们先在 gitee上注册账号并登录。gitee官网&#x…

震动传感器介绍及实战

目录 前言 震动传感器 1.震动传感器配图 2.震动传感器原理图 3.震动传感器使用 1-震动传感器的意义 2-震动传感器的应用场景 3- SW-18010P震动传感器使用方法 震动传感器控制灯 操作 增加延时 使用SPC-ISP生成演示函数 总结 前言 我们上节已经简单了解了LED的使用…

二、变量与基本类型

变量与基本类型 变量定义声明和使用 基本类型数字类型介绍运算算术运算符位运算符赋值运算符运算符优先级 布尔类型字符类型字符串类型 变量 定义 变量&#xff0c;指值可以变的量。变量以非数字的符号来表达&#xff0c;一般用拉丁字母。变量的用处在于能一般化描述指令的方式…

MongoDB集群模式详解及应用实战

目录 本节课内容&#xff1a; 集群搭建 1.创建3个目录&#xff1a; 2.编辑配置文件 ​编辑 3.启动&#xff1a; 4.看看&#xff1a; 5.另外&#xff0c;两个如上1&#xff0c;2&#xff0c;3步骤操作 &#xff0c;但是日志目录&#xff0c;端口什么的需要改一下即可。 …

10以内数的分解

// 10以内数的分解.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> using namespace std; int main(int argc, char* argv[]){for (int i 2; i < 10; i){for (int j 1; j < i; j){printf("%d%d%d ",j…