伪元素选择器

未使用元素选择器的效果

第一行:伪元素选择器:选择部分内容

第二行:伪元素选择器:选择部分内容

伪元素选择器:选择部分内容

伪元素选择器:选择部分内容

::selection:选择指定元素中被用户选中的内容

未使用该伪元素选择器时,我们用鼠标去选中元素内容时

使用该伪元素选择器后,我们用鼠标去选中元素内容时

        p::selection{
background-color: purple;
}

::before:可以在内容之前插入新内容

你好吗?第一行:伪元素选择器:选择部分内容

第二行:伪元素选择器:选择部分内容

你好吗?伪元素选择器:选择部分内容

你好吗?伪元素选择器:选择部分内容

	p::before{
content:"你好吗?"
}

::after:可以在内容之后插入新内容

第一行:伪元素选择器:选择部分内容

第二行:伪元素选择器:选择部分内容再见吧!

伪元素选择器:选择部分内容再见吧!

伪元素选择器:选择部分内容再见吧!

	p::after{
content: "再见吧!"
}

::first-line:选择指定选择器的首行

        p::first-line{
background-color: red;
}

::first-letter:选择文本的第一个字符

        p::first-letter{
background-color: yellow;
}

选择器优先级

    内联样式 > id选择器 > 类选择器 > 标签选择器 > 通配符选择器
内联样式 优先级 1000 id 选择器 优先级 100 类选择器 优先级 10 元素选择器 优先级 1 通配符选择器 优先级 0
如果是两种相同优先级 为同一个元素 同一个属性设置 的话,是哪个写在代码靠后 最终就按那个的样式

CSS修改文字属性

文字

字体

文字

font-family: "Microsoft Yahei"

字体大小

文字

font-size:20px

字体粗细

lighter

文字

bolder

文字

font-weight: lighter\bolder

字体颜色

文字

文字

文字

文字

  方式1:
color: red;
方式2:
color: rgb(128, 128, 128);
方式3:
color: #4f4f4f;
方式4:
color: rgba(250,100,100,0.4);
a 表示的是透明度,其默认值为0,取值范围为0~1之间,可以为小数。

文字对齐

text-align:center/left/right (居中,左对齐,右对齐)

文字装饰(重点)

text-decoration: none;  主要就是用于去除a标签的下划线
text-decoration: line-through; 删除线
text-decoration: overline; 上边线
text-decoration: underline; 下划线

首行缩进

text-indent: 20px 首行缩进20px

背景属性

背景颜色

background-color: red;

背景图片

background-image: url(); ()内放入图片地址
如果我们的图片没有图片所在标签大,那么默认自动填充满,整个标签的区域。
background-repeat:no-repeat\repeat-x\repeat-y 是否平铺(不平铺,水平平铺,垂直平铺)
background-position:left top; 图片位置 background-attachment: fixed; 背景附着 """
如果多个属性名具有相同的前缀 那么可以整合到一起编写(前缀名即可)
background:#336699 url('1.png') no-repeat left top;
"""

边框

自定义调整每个边的边框
border-left/top/right/bottom-color: black;
border-left/top/right/bottom-width: 5px;
border-left/top/right/bottom-style: solid;
边框样式有8种:
solid: 实线边框,经典边框。
double: 双线边框,含有两条线。
groove: 槽线边框,看起来就像页面中的一个槽。
outset: 外凸边框,看起来就像从页面凸出来一样。
dotted: 虚线(点线)边框。
dashed: 破折线边框。
inset: 内凹边框,看起来像页面凹进去一样。
ridge: 脊线边框,看起来像页面上一个凸起来的山脊。

简写:border: 5px solid black;  顺序无所谓 只要给了三个就行

display属性

    display: none; ---------------让标签消失(隐藏元素并脱离文档流),即此元素不会被显示。
display: inline; ---------------内联元素(内联表签),此元素前后没有换行符。
display: block; ---------------块级元素(块级标签),此元素前后会带有换行符。
display: inline-block; -------既有inline的属性也有block属性,即行内块元素。
display:inherit;-----------规定应该从父元素继承 display 属性的值。 1、none: 元素不会显示,而且改元素现实的空间也不会保留。但有另外一个 visibility: hidden, 是保留元素的空间的。 2、inline: display的默认属性。将元素显示为内联元素,元素前后没有换行符。我们知道内联元素是
无法设置宽高的,所以一旦将元素的display 属性设为 inline, 设置属性height和width是没有用的。此时
影响它的高度一般是内部元素的高度(font-size)和padding。 3、block: 将元素将显示为块级元素,元素前后会带有换行符。设置为block后,元素可以设置width
和height了。元素独占一行。 4、inline-block:行内块元素。这个属性值融合了inline 和 block 的特性,即是它既是内联元素,
又可以设置width和height。

盒子模型

    CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容
Margin(外边距) - 清除边框外的区域,外边距是透明的
Border(边框) - 围绕在内边距和内容外的边框。
Padding(内边距) - 清除内容周围的区域,内边距是透明的。
Content(内容) - 盒子的内容,显示文本和图像。

浮动

通过浮动可使一个元素向其父元素的左侧或右侧移动
float 设置元素的浮动
none 默认值,元素不浮动
left 向左浮动
right 向右浮动
注意:
元素设置浮动后,水平布局的等式不需要强制成立
元素设置浮动以后,会完全从文档流中脱离,不再占用文档流的位置 所以元素下边的还在文档流中的元素会自动向上移动。 浮动的特点: 1.浮动元素会完全脱离文档流,不再占据文档流中的位置
2.设置浮动以后元素会向父元素的左侧或右侧移动
3.浮动元素默认不会从父元素中移出
4.浮动元素向左或向右移动时,不会超过它前边的其他浮动元素(水平方向)
5.如果浮动元素的上边是一个没有浮动的块元素,则浮动元素无法上移
6.浮动元素不会超过它上边浮动的兄弟元素,顶多就是一样高(垂直方向) 脱离文档流的特点(元素设置浮动从文档流中脱离以后,元素的一些特点也会发生改变) 块元素
1.块元素不再独占页面一行
2.脱离文档流以后,块元素的宽度和高度默认都被内容撑开
行内元素
行内元素脱离文档流后会变成块元素,特点与块元素相同(脱离文档流后,不需要再区分块和行内了)

浮动的影响

浮动会造成父标签塌陷

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>浮动</title>
<style>
#main1{
width: 400px;
height: 300px;
background:rgb(182, 182, 182) ;
}
#child1{
width: 100px;
height: 100px;
background: pink;
}
#child2{
width: 100px;
height: 100px;
background: yellow;
}
</style>
</head>
<body>
<div id="main1">
<div id="child1"></div>
<div id="child2"></div>
</div>
</body>
</html>

没设置浮动时,2个色块并列显示

给child1添加浮动后

  #child1{
width: 100px;
height: 100px;
background: pink;
float:left;
}

浮动
#main1 { width: 400px; height: 300px; background: rgba(182, 182, 182, 1) }
#child1 { width: 100px; height: 100px; background: rgba(255, 192, 203, 1); float: left }
#child2 { width: 100px; height: 100px; background: rgba(255, 255, 0, 1) }

黄色盒子“消失”不显示。(其实黄色盒子并没有消失,它只是被粉色盒子挡住。)

给child1、child2都设置浮动

 #child1{
width: 100px;
height: 100px;
background: pink;
float:left;
}
#child2{
width: 100px;
height: 100px;
background: yellow;
float:left;
}

2个色块并排显示。

浮动
#main1 { width: 400px; height: 300px; background: rgba(182, 182, 182, 1) }
#child1 { width: 100px; height: 100px; background: rgba(255, 192, 203, 1); float: left }
#child2 { width: 100px; height: 100px; background: rgba(255, 255, 0, 1); float: left }

在不清除浮动的情况下添加p标签:

 <div id="main1">
<div id="child1"></div>
<div id="child2"></div>
<p>P标签</p>
</div>

此时的p标签显示在右上角而不是紧挨着2个色块下方,(正常情况下P标签应该在2个色块的下面)那么这时就需要用到清除浮动以保证页面的正常显示。

浮动
#main1 { width: 400px; height: 300px; background: rgba(182, 182, 182, 1) }
#child1 { width: 100px; height: 100px; background: rgba(255, 192, 203, 1); float: left }
#child2 { width: 100px; height: 100px; background: rgba(255, 255, 0, 1); float: left }
.p1 { background: rgba(182, 255, 182, 1) }

P标签

清除浮动

1.添加clear属性:(给不需要浮动的元素添加)

p{
background:rgb(182, 255, 182);
clear: both;
}

2.使用after伪元素选择器:(最常用的)

.clearfix::after {
content: '';
clear: both;
display: block;
}
哪个标签塌陷了就给谁添加上clearfix类名即可
<div id="main" class='clearfix'>
<div id="child1"></div>
<div id="child2"></div>
<p class="p1">P标签</p>
</div>

定义父级元素的高度:

当父级元素有固定高度时,浮动元素会跟随父级元素显示宽高。

伪元素选择器,选择器优先级,CSS修改文字属性,CSS修改字体属性,CSS修改其他属性的更多相关文章

  1. 【CSS进阶】伪元素的妙用2 - 多列均匀布局及title属性效果

    最近无论是工作还是自我学习提升都很忙,面对长篇大论的博文总是心有余而力不足,但又不断的接触学习到零碎的但是很有意义的知识点,很想分享给大家,所以本篇可能会很短. 本篇接我另一篇讲述 CSS 伪元素的文 ...

  2. css让文字竖着排列 writing-mode 属性

    writing-mode 属性 writing-mode 属性定义了文本在水平或垂直方向上如何排布. 语法格式如下: writing-mode: horizontal-tb | vertical-rl ...

  3. css选择器(常规选择器,伪类选择器,伪元素选择器,根元素选择器)

    前言 CSS的一个核心特性是能向文档中的一组元素类型应用某些规则,本文将详细介绍CSS选择器 选择器 [通配选择器] 星号*代表通配选择器,可以与任何元素匹配 *{color: red;} [元素选择 ...

  4. css伪元素选择器(伪对象选择器)checked + 伪元素练习

    伪对象也叫伪元素,在过去,伪类和伪元素都被书写成前面只加一个冒号,实际上应该是: :weilei ::伪元素 而现在我们为了兼容旧的书写方式,用一个冒号引导伪类也是能被解析的. 伪类一般反应无法在CS ...

  5. CSS(二)- 选择器 - 伪元素和伪类(思维导图)

    伪元素 伪元素可以创建一些文档语言无法创建的虚拟元素.比如:文档语言没有一种机制可以描述元素内容的第一个字母或第一行,但伪元素可以做到(::first-letter.::first-line).同时, ...

  6. css知多少(6)——选择器的优先级(转)

    css知多少(6)——选择器的优先级   1. 引言 上一节<css知多少(5)——选择器>最后提到,选择器类型过多将导致一些问题,是什么问题呢?咱们直接举例子说明. 上图中,css中的两 ...

  7. 使用原生js来控制、修改CSS伪元素的方法总汇, 例如:before和:after

    在网页中,如果需要使用辅助性/装饰性的内容的时候,我们不应该直接写在HTML中,这样会影响真正的内容,这就需要使用伪元素了,这是由于css的纯粹语义化是没有意义的.在使用伪元素的时候,会发现js并不真 ...

  8. CSS伪类与CSS伪元素的区别及由来

    关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...

  9. CSS中的伪类与伪元素

    在前端开发中,大家或多或少的有接触过CSS伪类和伪元素,使用伪元素的时候,总感觉和伪类很相似,但又不能详细的说出两者的区别和联系,那么两者到底有什么区别和联系呢? 在 W3C 中定义: 伪类:用于向某 ...

  10. CSS——伪元素

    CSS伪元素 伪元素的语法: selector:pseudo-element {property:value;} 作    用 添加特殊样式 :first-line 伪元素 "first-l ...

随机推荐

  1. 读懂jstack

    1 jstack jstack是JDK自带的一种线程栈跟踪工具,用于生成java虚拟机当前时刻线程快照.在定位线程卡顿.死锁.block等原因的时候非常有用.使用方法是: jstack [-l] pi ...

  2. List、Set、Map 和 Queue 之间的区别?

    List 是一个有序集合,允许元素重复.它的某些实现可以提供基于下标值的常量 访问时间,但是这不是 List 接口保证的.Set 是一个无序集合.

  3. Java 线程数过多会造成什么异常?

    1.线程的生命周期开销非常高 2.消耗过多的 CPU 资源 如果可运行的线程数量多于可用处理器的数量,那么有线程将会被闲置.大量空 闲的线程会占用许多内存,给垃圾回收器带来压力,而且大量的线程在竞争  ...

  4. SpringAOP+RabbitMQ+WebSocket实战

    背景 最近公司的客户要求,分配给员工的任务除了有微信通知外,还希望PC端的网页也能实时收到通知.管理员分配任务是在我们的系统A,而员工接受任务是在系统B.两个系统都是现在已投入使用的系统. 技术选型 ...

  5. 学习GlusterFS(二)

    环境准备 3台机器,每个机器双网卡,每个机器还需要额外添加1个10GB的磁盘用于测试 机器系统版本是centos6.6 1 2 3 4 5 [root@gluster-1-1 ~]# uname -r ...

  6. ACM - 动态规划 - UVA437 The Tower of Babylon

    UVA437 The Tower of Babylon 题解 初始时给了 \(n\) 种长方体方块,每种有无限个,对于每一个方块,我们可以选择一面作为底.然后用这些方块尽可能高地堆叠成一个塔,要求只有 ...

  7. STM32 之 HAL库(固件库)

    1 STM32的三种开发方式 通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的.一般大多数都会选用标准库和HAL库,而极少部分人会通过直 ...

  8. Vuet.js规则详解,它是你不知道的强大功能?

    Vuet.js是什么? Vuet.js是给Vue.js提供状态管理的一个工具,与vuex不同,它是一种崇尚规则定制的状态管理模式.事先将状态更新的规则写好,然后将规则注入到组件中,然后状态按照预订的规 ...

  9. pydev+eclipse写python代码

    首先,下载pydev:PyDev for Eclipse - Browse /pydev at SourceForge.net (建议下载到本地,之前看其他文章时,进行了如下安装: 启动 Eclips ...

  10. 【uniapp 开发】日期工具类 -- DateUtil

    日期格式转毫秒值 var time = '2019-08-08 12:09:34'; var time222 = time.replace("-", "/"). ...