CSS 结构伪类选择器 伪元素选择器 盒子模型

目录

  • 1. 结构伪类选择器
    • 1.1 :nth-child(公式)
  • 2. 伪元素选择器
  • 3. 盒子模型
    • 3.1 盒子模型的重要组成部分
    • 3.2 盒子模型 - 边框线
    • 3.3 盒子模型 - 内边距
    • 3.4 盒子模型 - 尺寸计算
    • 3.5 盒子模型 - 外边距
    • 3.6 盒子模型 - 元素溢出
    • 3.7 外边距问题 - 合并现象
    • 3.8 外边距问题 - 塌陷问题
    • 3.9 行内元素 - 内外边距问题
    • 3.10 盒子模型 - 圆角
    • 3.11 盒子模型 - 阴影
  • 4. 清除默认样式


正文开始。

1. 结构伪类选择器

作用:根据元素的结构关系查找元素。

选择器说明
E:first-child查找第一个 E 元素
E:last-child查找最后一个 E 元素
E:nth-child(N)查找第 N 个 E 元素(第一个元素 N 值为1)

例如:
在这里插入图片描述

1.1 :nth-child(公式)

作用:根据元素的结构关系查找多个元素

功能公式
偶数标签2n
奇数标签2n+1;2n-1
找到5的倍数的标签5n
找到第5个以后的标签(包括第五个)n+5
找到第5个以前的标签(包括第五个)-n+5

例如:
在这里插入图片描述

2. 伪元素选择器

作用:创建虚拟元素(伪元素),用来摆放装饰性的内容。

选择器说明
E::before在 E 元素里面最前面添加一个伪元素
E::after在 E 元素里面最后面添加一个伪元素

注意

  • 必须设置content:””属性,用来设置伪元素的内容,如果没有内容,则引号留白即可。
  • 伪元素默认是行内显示显示模式
  • 权重和标签选择器相同

例如:
在这里插入图片描述

3. 盒子模型

作用:布局网页,摆放盒子和内容

3.1 盒子模型的重要组成部分

  • 内容区域:width & height
  • 内边距:padding(出现在内容与盒子边缘之间)
  • 边框线:border
  • 外边距:margin(出现在盒子外面)

例如:

<style>
	div {
		/* 内容区域 */
		width: 200px;
		height: 200px;
		bacdground-color: red;
		/* 内边距 */
		padding: 20px;
		/* 边框线 */
		border: 1px solid black;
		/* 外边距 */
		margin: 30px;
	}
</style>

3.2 盒子模型 - 边框线

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

属性值线条样式
solid实线
dashed虚线
dotted点线
<style>
	div {
		width: 200px;
		height: 200px;
		bacdground-color: red;
		
		/* 粗细为2像素的红色虚线边框 */
		border: 2px dashed red;
		
		/* 粗细为2像素的红色实线边框 */
		/* border: 2px solid red; */
		
		/* 粗细为2像素的红色点线边框 */
		/* border: 2px dotted red; */
	}
</style>

CSS 中允许单独对某一方向的边框线进行设置:

  • 属性名:border-方位名词
  • 属性值:边框线粗细 线条样式 颜色
方位名词说明
top顶部
right右侧
left左侧
bottom底部

例如:

<style>
	div {
		width: 200px;
		height: 200px;
		background-color: red;

		border-top: 1px solid black;
		border-right: 2px dashed red;
		border-left: 3px dotted green;
		border-bottom: 2px dashed pink;
	}
</style>

3.3 盒子模型 - 内边距

作用:设置内容与盒子边缘之间的距离
属性名:padding / padding-方位名词

例如:

<style>
	div {
		width: 200px;
		height: 200px;
		background-color: red;

		/* 所有方向一起设置 */
		/*padding: 20px;*/

		padding-top: 10px;
		padding-right: 20px;
		padding-left: 5px;
		padding-bottom: 30px;
	}
</style>

盒子模型内边距的多值写法

取值个数示例含义
一个值padding: 10px;四个方向内边距均为10px
两个值padding:10px 40px;上下:10px;左右:40px
三个值padding: 10px 40px 20px;上:10px;左右:40px;下:20px
四个值padding: 10px 40px 20px 30px;上:10px;右:40px;下:20px;左:30px

3.4 盒子模型 - 尺寸计算

默认情况下盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸

所以给盒子设置border / padding属性会撑大盒子,我们可以通过以下两种方法来避免:

  • 手动减掉border / padding的尺寸
  • 内减模式box-sizing:border-box使 border / padding 不对盒子大小产生影响。

3.5 盒子模型 - 外边距

作用:拉开两个盒子之间的距离
属性名:margin
属性值:与 padding 写法、含义相同

<style>
	div {
		width: 200px;
		height: 200px;
		background-color: red;

		/* 外边距为20像素 */
		/* margin: 20px; */
		
		/* 垂直方向外边距为零,水平方向使盒子在浏览器中居中 */
		/* 版心居中的前提是盒子有宽度 */
		margin: 0 auto;
	}
</style>

外边距的多值写法:与 padding 多值写法相同。

3.6 盒子模型 - 元素溢出

作用:控制溢元素的内容的显示方式
属性名:overflow

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

例如:
在这里插入图片描述

3.7 外边距问题 - 合并现象

场景垂直排列的兄弟元素,上下 margin 会合并
现象:取两个 margin 中较大值生效

3.8 外边距问题 - 塌陷问题

场景父子级的标签,子集的添加上外边距会产生塌陷问题。
现象:导致父级一起向下运动

解决方法:

  • 取消子集 margin,父级设置 padding(推荐)
  • 父级设置 overflow:hidden
  • 父级设置 border-top

3.9 行内元素 - 内外边距问题

场景:行内元素添加margin / padding时,无法改变元素垂直位置
解决方法:给行内元素添加line-height可以改变垂直位置

3.10 盒子模型 - 圆角

作用:设置元素的外边框为圆角。
属性名:border-radius
属性值:数字+px / 百分比(圆角半径)
多值写法:从左上角顺时针赋值,没有赋值的角与对角取值相同

常见应用:

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

3.11 盒子模型 - 阴影

作用:给元素设置阴影效果
属性名:box-shadow
属性值:X轴偏移量 Y轴偏移量 模糊半径 扩散半径 颜色 内外阴影

注意:

  • X轴偏移量和Y轴偏移量必须书写
  • 默认是外阴影,内阴影需要添加inset

例如:

box-shadow: 2px 4px 10px 1px rgba(0,0,0,0.5);

4. 清除默认样式

作用:清除默认的样式。

例如:

<style>
	/* 清除内外间距 */
	* {
		margin: 0;
		padding: 0;
	}
	/* 清除列表的项目符号 */
	li {
		list-style: none;
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏推广的新篇章:Xinstall助力实现全渠道效果统计与提升

随着游戏市场的日益繁荣&#xff0c;游戏推广已成为各大游戏公司争夺市场份额的关键环节。然而&#xff0c;面对众多推广渠道和复杂的用户行为&#xff0c;如何精准地评估推广效果、优化投放策略&#xff0c;成为了游戏推广人员亟待解决的问题。此时&#xff0c;Xinstall作为一…

如何使用Windows电脑部署Lychee私有图床网站并实现无公网IP远程管理本地图片

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-MSVdVLkQMnY9Y2HW {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

网络工程师实验命令(华为数通HCIA)

VRP系统的基本操作 dis version #查看设备版本信息 sys #进入系统视图 system-name R1 #改设备名字为R1进入接口配置IP地址 int g0/0/0 ip address 192.168.1.1 255.255.255.0 #配置接口地址为192.168.1.1/255.255.255.0 ip address 192.168.1.2 24 sub #此…

flutter生成二维码并截图保存到图库

引入库&#xff1a;flutter_screenutil、image_gallery_saver、qr_flutter弹窗布局 import dart:async; import dart:typed_data; import package/generated/l10n.dart; import package:jade/configs/PathConfig.dart; import package:jade/utils/ImageWaterMarkUtil.dart; im…

车载以太网AVB交换机 gptp透明时钟 8口 千兆/百兆可切换 SW1100TR

SW1100车载以太网交换机 一、产品简要分析 8端口千兆和百兆混合车载以太网交换机&#xff0c;其中包含2个通道的1000BASE-T1采用罗森博格H-MTD接口&#xff0c;5通道100BASE-T1泰科MATEnet接口和1个通道1000BASE-T标准以太网(RJ45接口)&#xff0c;可以实现车载以太网多通道交…

Flink系列之:Flink SQL Gateway

Flink系列之&#xff1a;Flink SQL Gateway 一、Flink SQL Gateway二、部署三、启动SQL Gateway四、运行 SQL 查询五、SQL 网关启动选项六、SQL网关配置七、支持的端点 一、Flink SQL Gateway SQL 网关是一项允许多个客户端从远程并发执行 SQL 的服务。它提供了一种简单的方法…

Unity图集编辑器

图集编辑器 欢迎使用图集编辑器新的改变编辑器图片 欢迎使用图集编辑器 Unity图集操作很是费劲 无法批量删除和添加图集中的图片 新的改变 自己写了一个图集编辑器 客&#xff1a; 支持批量删除 左键点击图片代表选中 右键点击图标定位到资产支持批量添加 选中图片拖拽到编…

Linux 系统 部署weblogic(新手版)

Linux 系统 部署weblogic&#xff08;新手版&#xff09; 一、 1、如果原环境有jdk则需要卸载。 先用命令查看 rpm -qa|grep java 如果有jdk则需要卸载rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64rpm -e --nodeps java-1.8.0-openjdk-headl…

京东云0基础搭建帕鲁服务器_4核16G和8核32G幻兽帕鲁专用服务器

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程&#xff0c;非常简单&#xff0c;京东云推出幻兽帕鲁镜像系统&#xff0c;镜像直接选择幻兽帕鲁镜像即可一键自动部署&#xff0c;不需要手动操作&#xff0c;真正的新手0基础部署幻兽帕鲁&#xff0c;阿腾云atengyun.…

【Java面试题】Redis上篇(基础、持久化、底层数据结构)

文章目录 基础1.什么是Redis?2.Redis可以用来干什么&#xff1f;3.Redis的五种基本数据结构&#xff1f;4.Redis为什么这么快&#xff1f;5.什么是I/O多路复用&#xff1f;6.Redis6.0为什么使用了多线程&#xff1f; 持久化7.Redis的持久化方式&#xff1f;区别&#xff1f;8.…

【JavaEE】初识线程,线程与进程的区别

文章目录 ✍线程是什么&#xff1f;✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么&#xff1f; ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…

Github 2024-03-28Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-28统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目9非开发语言项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:…

vue组件弹窗窗

import { createApp } from vue; import { Popup } from vant;const app createApp(); app.use(Popup); 有这样的一个效果 在手机上很美观 不错 建议大家使用

HarmonyOS实战开发-实现一个计步器卡片应用

介绍 本篇Codelab基于Stage模型实现带有卡片的计步应用&#xff0c;用于介绍卡片的开发及生命周期实现。需要完成以下功能&#xff1a; 消息通知栏&#xff0c;通知用户今天所行走步数。元服务卡片&#xff0c;在桌面上添加2x2或2x4规格元服务卡片&#xff0c;能看到步数变化…

论文问卷的六类分析思路

很多同学在写论文时&#xff0c;会选择通过收集问卷来获取研究所需的数据。然而&#xff0c;问卷收集完成后&#xff0c;如何对这些数据进行有效的分析&#xff0c;成为了一个重要的问题。这么多的问卷数据摆在面前&#xff0c;该如何进行分析呢&#xff1f; SPSSAU从问卷设计…

docker 部署 gitlab-ce 16.9.1

文章目录 [toc]拉取 gitlab-ce 镜像创建 gitlab-ce 持久化目录启停脚本配置配置 gitlab-ce编辑 gitlab-ce 配置文件重启 gitlab-ce配置 root 密码 设置中文 gitlab/gitlab-ce(需要科学上网) 拉取 gitlab-ce 镜像 docker pull gitlab/gitlab-ce:16.9.1-ce.0查看镜像是不是有 Vo…

图论之路径条数专题

一直忙着金工实习蓝桥杯&#xff0c;好久没有看图论了&#xff0c;今天就小试几题享受下被虐的快感。 1.最短路拓扑 首先来几个结论&#xff1a; 1.最短路图没有环&#xff08;可以用反证法证明&#xff09; 2.dis[u]edge[u,v]dis[v]&#xff0c;那么u,v端点的边一定在最短路…

【已修复】iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印

iPhone13 Pro 长焦相机水印&#xff08;黑斑&#xff09;修复 洗水印 问题描述 iPhone13 Pro 后摄3倍相机有黑色斑点&#xff08;水印&#xff09;&#xff0c;如图所示&#xff0c; 后摄相机布局如图所示&#xff0c; 修复过程 拆机过程有风险&#xff0c;没有把握最好不要…

Git--08--Git分支合并操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Git分支合并操作案例流程客户端&#xff1a;GitExtensions操作步骤&#xff1a;A操作步骤&#xff1a;B操作步骤&#xff1a;C操作步骤&#xff1a;D操作步骤&#…

NanoMQ的安装与部署

本文使用docker进行安装&#xff0c;因此安装之前需要已经安装了docker 拉取镜像 docker pull emqx/nanomq:latest 相关配置及密码认证 创建目录/usr/local/nanomq/conf以及配置文件nanomq.conf、pwd.conf # # # # MQTT Broker # # mqtt {property_size 32max_packet_siz…