CSS笔记

2023-09-19 08:00:18

选择器

通配选择器

*{
}

元素选择器

元素{

}

类选择器

.类名{

}

id选择器

#id名{

}

复合选择器

交集选择器
/*p元素且类名为beauty的元素*/
p.beauty {
    
}
.rich.beauty {
    
}

并集选择器

又称分组选择器

.rich,.beauty,.navtop,#myIMage{
}

后代选择器

<!-- 选中后代中所有li -->
<style>
    ul li{
        
    }
</style>
<ul>
	<li></li>
    <li></li>
    <li></li>
    <div>
        <li></li>
    </div>
</ul>

子代选择器

<!-- 选中div子代中的a元素 -->
<style>
    div>a{
    }
</style>
<div>
    <a href=""></a>
    <a href=""></a>
    <a href=""></a>
    <p>
        <a href=""></a>
    </p>
</div>

兄弟选择器

<style>
    /*向下找紧紧相邻(中间不能被其他元素隔开)的兄弟  --相邻兄弟选择器*/
    div+p{
        
    }
    /*向下找兄弟 --通用兄弟选择器*/
    div~p{
        
    }
</style>

<div></div>
<p></p>
<p></p>
<p></p>

属性选择器

<style>
    /* 选中具有title属性的元素 */
    [title]{
        color:red;
    }
    /* 选中具有title属性,且属性值为nihao1的元素 */
    [title="nihao1"]{
        color:blue;
    }
    /* 选中具有title属性,且属性值以a开头的元素 */
    [title^="a"]{
        color:green;
    }
    /* 选中具有title属性,且属性值以u结尾的元素 */
    [title$="u"]{
        color:skyblue;
    }
    /* 选中具有title属性,且属性值含字母“t”的元素 */
    [title*="t"]{
        color:orchid;
    }
</style>
<div title="nihaot">你好</div>
<div title="nihao1">你好1</div>
<div title="anihtao2">你好2</div>
<div title="nihao3u">你好3</div>

伪类选择器

动态伪类选择器
<style>
    /* 选中没有访问过的a元素 */
    a:link{
        color:red;
    }
    /* 选中访问过的a元素 */
    a:visited{
        color:green;
    }
    /* 鼠标悬浮状态a元素 */
    a:hover{
        color:brown;
    }
    /* 激活状态(鼠标点下去,但是没有抬起来)的a元素 */
     a:active{
        color: chocolate;
    }
    /* 被获取焦点的元素 ---表单类元素才能用*/
    input:focus{
        color:antiquewhite;
        background-color: black;
    }
</style>
<a href="#">链接1</a>
<a href="www.baidu.com">链接2</a>
<input type="text">
结构伪类选择器
<style>
    /* 选中div的第一个儿子元素且它是p元素 
    一下例子中,假如第一个p之前有个别的元素,就选不中了*/
    div>p:first-child{
        color:red;
    }
</style>
<div>
    <p>第一段</p>
    <p>第二段</p>
    <p>第三段</p>
    <p>第四段</p>
</div>
<style>
    /* 选中div的后代p元素中 第一个p元素
    且p的父级是谁无所谓,但p必须是其父级的第一个元素*/
    div p:first-child {
        color: red;
    }
    div
</style>
<div>
    <p>第一段①</p>
    <marquee>
        <p>第一个②</p>
        <p>第二个</p>
    </marquee>
    <p>第一段</p>
    <p>第二段</p>
    <p>第三段</p>
    <p>第四段</p>
</div>
<style>
    /* 第一个p元素
    且p的父级是谁无所谓,但p必须是的第一个元素*/
    div p:first-child {
        color: red;
    }
    div
</style>
<div>
    <p>第一段①</p>
    <marquee>
        <p>第一个②</p>
        <p>第二个</p>
    </marquee>
    <p>第一段</p>
    <p>第二段</p>
    <p>第三段</p>
    <p>第四段</p>
</div>
:last-child 选中最后一个元素
:nth-child(n) 选中第n个元素
:nth-child(2n) 选中第偶数个元素(也可以用even)代替
:nth-child(2n+1) 选中第奇数个元素
:ntl-child(-n+5) 选中前五个元素
:first-of-type 所有同类型兄弟元素中的第一个
:last-of-type 所有同类型兄弟元素中的最后一个
:nth-of-type(n) 所有同类型兄弟元素中的第n个
否定伪类选择器
<style>
    /*选中的是div的儿子p元素,但是排除类名为fail的元素*/
    div>p:not(.fail){}
    /*选中的是div的儿子p元素,但是排除title属性值以“你要加油”开头的*/
    div>p:not([title^="你要加油"]){}
    /*选中的是div的儿子p元素,但排除第一个儿子元素*/
    div>p:not(:first-child){}
</style>
<div>
    <p>张三:98分</p>
    <p>李四:88分</p>
    <p>王五:78分</p>
    <p>马六:68分</p>
    <p class="fail" title="你要加油啊!孙七">孙七:58分</p>
    <p class="fail" title="你要加油啊!老八">老八:48分</p>
</div>
UI伪类选择器
/* 选中的是勾选的复选框或单选按钮 */
input:checked{}
/* 选中的是被禁用的input元素 */
input:disabled{}
/* 选中的是可用的input元素 */
input:enabled{}
目标伪类
:target 选中锚点指向的元素
<style>
    div{
        height: 50px;
        background-color:gainsboro;
    }
    div:target{
        background-color: blue;
    }
</style>
<a href="#one">去看第1个</a>
<a href="#two">去看第2个</a>
<a href="#three">去看第3个</a>
<a href="#four">去看第4个</a>
<a href="#five">去看第5个</a>
<a href="#six">去看第6个</a>
<hr>
<div id="one">第1个</div><br>
<div id="two">第2个</div><br>
<div id="three">第3个</div><br>
<div id="four">第4个</div><br>
<div id="five">第5个</div><br>
<div id="six">第6个</div>
语言伪类
<style>
    /* 根据指定的语言选择元素(本质是看lang属性的值) */
    div:lang(en){
        color: red;
    }
</style>
<div>第一个div</div>
<div lang="en">second div第二个</div>
<p>前端</p>
<span>span标签</span>

伪元素选择器

<style>
    /* 选中div中的第一个 文字、字符、字母 */
    div::first-letter{
        color:red;
        font-size: 20px;
    }
    /* 选中div中第一行文字 */
    div::first-line{
        background-color: antiquewhite;
    }
    /* 选中div中被鼠标选择的文字 */
    div::selection{
        background-color: aquamarine;
    }
    /* 选中的是input中的提示文字 */
    input::placeholder{
        color: skyblue;
    }
    /* 选中的是p元素中最开始的位置,随后创建一个子元素 */
    p::before{
        content:"¥"
    }
    /* 选中的是p元素中最后的位置,随后创建一个子元素 */
    p::after{
        content:".00"
    }
</style>
<div>
    Lorem, ipsum dolor sit amet consectetur adipisicing elit. Voluptas itaque similique aliquid atque rerum inventore mollitia, amet fugiat facilis ut cum nisi q
</div>
<br>
<input type="text" placeholder="请输入文字">
<p>199</p>
<p>299</p>
<p>399</p>
<p>499</p>

选择器优先级

ID选择器 > 类选择器 > 元素选择器 >通配选择器

权重(a,b,c)

a:ID选择器的个数

b:类、伪类、属性、选择器的个数

c:元素、伪元素、选择器的个数

颜色

第一种表示:颜色名

第二种表示:rgb与rgba

/*rgb:无透明度*/
background-color: rgb(138,34,226);
/*rgba:有透明度*/
background-color: rgba(138,34,226,0.5);

第三种表示:HEX与HEXA

/*HEX:无透明度*/
background-color: #363B40;
/*HEXA:有透明度*/
background-color: #363B40EE;

第四种表示:HSL与HSLA

/*HSL:无透明度【色相、饱和度、亮度】*/
background-color: #363B40;
/*HSL:有透明度*/
background-color: #363B40EE;

文本

文本间距

/*字母间的间距*/
letter-spacing:**px;
/*单词间的间距*/
word-spacing:**px;

文本修饰

上划线 下划线 删除线

text-decoration:overline;
text-decoration:underline;
text-decoration:line-throught;
/*【线条也可以控制比如:删除的红色的虚线*/
text-decoration:line-throught dotted red;

文本缩进

div{
    text-size:20px;
    text-indent:40px;
}

文本对齐-水平

text-align:center;

文本属性-行高

line-height:**px;
line-height:normal;
line-height:1.5;
line-height:150%;

列表

ul{
    /* 列表符号 */
    /* list-style-type: decimal; */
    /* 列表符号的位置 */
    /* list-style-position: inside; */
    /* 自定义列表符号 */
    /* list-style-image: url("./images/首页文章列表符号.png"); */
    /* 复合属性 */
    list-style: decimal inside url("./images/首页文章列表符号.png");
}

表格相关属性

边框相关属性

这里的属性,其他元素也能用,比如span

border-width: 1px;
border-color: balck;
border-style: solid;
/* 简写属性 */
border: 1px solid black;

表格独有的属性

table{
    border: 2px solid black;
    width:500px;
    /* 控制表格的列宽 */
    table-layout: fixed;
    /* 控制单元格之间的距离【合并单元格情况下,此效果失效】 */
    border-spacing: 5px;
    /* 合并相邻的单元格的边框 */
    border-collapse: collapse;
    /* 隐藏没有内容的单元格【合并单元格情况下,视觉上不奏效】 */
    empty-cells: hide;
    /* 设置表格标题的位置 */
    caption-side: top;
}

背景相关属性

/* 设置背景颜色,默认值是transparent */
background-color:skyblue;
/* 设置背景图片 */
background-image:url(../images/bg.jpg);
/* 设置背景图片的重复方式 */
background-repeat:no-repeat;
/* 控制背景图片的位置方式1:关键词 */
background-position:center;
/* 控制背景图片的位置方式1:用具体的像素值 */
background-positon:300px;
/* 复合属性 */
background:green url(../images/bg.jpg) no-repeat 300px;

鼠标相关属性

div{
    /* 设置鼠标移入div时鼠标的形状 */
	cursor: pointer;
}

处理内容溢出

overflow:hidden;
overflow:scroll;
overflow:auto;

隐藏元素的两种方式

div{
    /*页面上不占位*/
    display:none;
    /*页面上站位*/
    visibility:hidden;
}

浮动

float

元素浮动后的特点

1、脱离文档流

2、浮动后默认宽与高都是被内容撑开(尽可能小),而且可以设置宽高

3、不会独占一行,可以与其他元素共用一行

4、不会margin合并,也不会margin塌陷,能够完美的设置四个方向的margin和padding

5、不会像行内块一样被当做文本处理(没有行内块的空白问题)

浮动后的影响:

对兄弟元素的影响:后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟无影响。

对父元素的影响:不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元素。

解决浮动的影响:

定位

相对定位

position:relative
left:10px;
/*top、bottom、left、right 参考原始的位置*/

应用场景:

1、微调元素的位置的时候

2、能和绝对定位一起使用

绝对定位

参考的是它的包含块。如果没有脱离文档流时候父元素就是它的包含块。脱离文档流时候第一个开启定位的祖先元素就是它的包含块。

position:absolute
top:10px;
/*top、bottom、left、right*/

绝对定位的特点:

1、脱离文档流,会对后面的兄弟元素、父元素有影响

2、left不能和right一起设置,top和bottom不能一起设置

3、绝对定位、浮动不能同时设置,如果同时设置,浮动失效,以定位为主

4、绝对定位的元素,也能通过margin调整定位,但是最好不要这么做

5、无论是什么元素(行内、行内块、块级)设置为绝对定位之后,都变成了定位元素

定位元素的默认宽高都是被内容撑开的,且能再设置宽高

固定定位

参考视口

position:fixed;
top:10px;
/*top、bottom、left、right*/

固定定位的特点:

1、脱离文档流,会对后面的兄弟元素、父元素有影响

2、left不能和right一起设置,top和bottom不能一起设置

3、固定定位、浮动不能同时设置,如果同时设置,浮动失效,以定位为主

4、固定定位的元素,也能通过margin调整定位,但是最好不要这么做

5、无论是什么元素(行内、行内块、块级)设置为固定定位之后,都变成了定位元素

定位元素的默认宽高都是被内容撑开的,且能再设置宽高

粘性定位

参考离它最近的能滚动的祖先元素,当它的父容器也被推走的时候它也会跟着走。

position:sticky;
top:10px;

粘性定位的特点:

1、不脱离文档流

2、最常用的是top值

3、粘性定位和浮动可以同时设置,但是不推荐这么做

4、固定定位的元素,也能通过margin调整定位,但是最好不要这么做

更多推荐

服务器的架构有哪些

服务器的架构有哪些1、单体架构软件设计经典的3层模型是表现层,业务逻辑层,数据访问层。典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。2、垂直架构垂直架构是将一个大项目,按照业务场景纵向拆分为互不相干的单体架构的项目。3、前后端分离前后端分离是横向

近年来国内室内定位领域硕士论文选题的现状与趋势

目录一、前言二、选题的目的和意义三、选题现状分析四、选题趋势分析一、前言本博文采用了图表统计法分析了近5年来100余篇高被引室内定位领域硕士论文选题的现状,并从选题现状中得出了该领域选题的大致趋势。本文还通过分析该领域硕士毕业论文选题的现状和趋势,对未来该领域选题提出了自己的见解和展望。二、选题的目的和意义无论是大学生

成为威胁:网络安全中的动手威胁模拟案例

不断变化的网络威胁形势要求组织为其网络安全团队配备必要的技能来检测、响应和防御恶意攻击。然而,在研究中发现并继续探索的最令人惊讶的事情是,欺骗当前的网络安全防御是多么容易。防病毒程序建立在庞大的签名数据库之上,只需更改程序内的文本这样简单的操作就很容易崩溃。这同样适用于网络签名以及端点检测和响应。防御技术主要关注某些行

区块链安全,哈希函数暴露的攻击向量与对策

区块链安全,哈希函数暴露的攻击向量与对策简介LengthExtensionAttack是一种与某些特定类型的哈希函数(如MD5,SHA-1和SHA-2)的特性有关的攻击。简单来说,这种攻击利用了一个事实,即知道H(message)和message的长度,我们可以轻松计算出H(message||padding||exte

QTday3

#include"widget.h"Widget::Widget(QWidget*parent):QWidget(parent){this->setFixedSize(600,450);//将窗口固定大小this->setWindowIcon(QIcon(":/wodepeizhenshi.png"));//设置窗口图

驱动开发---基于gpio子系统编写LED灯的驱动

一、GPIO子系统相关API1.解析GPIO相关的设备树节点structdevice_node*of_find_node_by_path(constchar*path)功能:根据设备树节点路径解析设备树节点信息参数:path:设备树所在的节点路径/mynode@0X12345678返回值:成功返回目标节点首地址,失败返

第33节——useRef

一、概念useRef,他的作用是“勾住”某些组件挂载完成或重新渲染完成后才拥有的某些对象,并返回该对象的引用。该引用在组件整个生命周期中都固定不变,该引用并不会随着组件重新渲染而失效。返回一个可变的ref对象,该对象只有个current属性,初始值为传入的参数(initialValue)。返回的ref对象在组件的整个生

【ROS】机器人使用Nomachine进行远程控制

官网:NoMachine-FreeRemoteDesktopforEverybody支持的系统:WindowsMacLinux树莓派其他ARM板IOSAndroid由于网速问题,可以使用我下载好的:(8.8.1_1)链接:https://pan.baidu.com/s/16v6jn8a-dcVbIxGI3bI2QA提取

60+开源数据集资源大合集(医学图像、卫星图像、语义分割、自动驾驶、图像分类等)

1.医学图像疟疾细胞图像数据集下载链接:http://suo.nz/2VQTUt皮肤癌MNIST:HAM10000下载链接:http://suo.nz/33n6Xy该数据集收集了来自不同人群的皮肤镜图像,通过不同的方式获取和存储。最终数据集包含10015张皮肤镜图像,可用作学术机器学习目的的训练集。案例包括色素病变领域

记一次 Java Testcontainers CPU 100% 问题排查过程

以为代码进入了死循环,结果并没有!文章目录背景与问题排查过程代码路经确认内存分析咨询okio社区等等,好像并没有死循环能否从内存快照发现其他问题?背景与问题本问题来源于ShardingSphereissue:Integrationtestsoccasionallystuckinwaitingforcontainerre

C++之template可变模板参数应用总结(二百二十八)

简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言:人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮1.前言本篇目的:C++之

热文推荐