选择器优先级、字体属性、背景属性、边框属性、display属性、盒子模型、浮动
今日学习内容总结
在昨日的学习中,我们对from表单和css的各类选择器都进行了相应的学习。而今天的学习内容以css为重心。还是学习css的相应内容。
伪元素选择器#
伪类元素选择器是通过css操作文本内容的选择器,作用是为某个元素的前面或者后面添加子元素。格式:
1. 标签::before{属性: 值;}。在标签之前添加子元素
2. 标签::after{属性: 值;}。在标签之后添加子元素
3. content:在伪元素选择器中代表内容;
4. visibility: hidden:将伪元素选择器隐藏
使用案例:
# css
<style>
div:before{
content: 'hhhh';
height: 50px;
height: 100px;
background-color: deepskyblue;
display: block;
}
div:after {
content: "22222";
height: 50px;
width: 100px;
background-color: red;
display: block;
visibility: hidden;
}
</style>
# body
<div>
<p>内容</p>
</div>
实现效果为在内容上方有一个宽100px高为50px的hhhh内容。hhhh就是在div标签之前添加的元素中所代表的的内容。颜色背景为浅蓝色。而在div标签之后添加的内容用visibility功能隐藏了。使用场景:
1.用于后面清除浮动带来的负面影响
2.用于网站的内容防爬
选择器优先级#
两个方向:相同选择器和不同选择器。
1.相同选择器
就近原则 :谁离标签越近就听谁的。
2.不同选择器
行内选择器 > id选择器 > 类选择器 > 标签选择器
字体#
字体样式#
css中的字体样式一般包含有就9中,常见的有7种。这7种依次为:
1.字体样式:font-family;
2.字体大小:font-size;
3.字体加粗:font-weight;
4.字体斜体:font-style;
5.颜色:color;
6.文本装饰线条:text-decoration;
7.文字阴影:text-shadow;
写法案例:
# 文字字体
p { font-family:‘宋体','黑体', 'Arial’ };
# 文字大小
p{font-szie:20px}
# 字体粗细
p { font-weight:bold;}
# 字体颜色的三种方式
# 方式1
color: red;
# 方式2:
color: rgb(128, 128, 128);
# 方式3:
color: #4f4f4f;
# 其实还有很多获取颜色的方式,比如截图软件,或者pycharm提供的取色器
# 字体倾斜
p { font-style: normal; } # 其默认的属性值为normal,即正常显示的字体样式,其另外的两个属性值都讲呈现斜体的效果哦。
字体属性#
字体属性主要体现在文字对齐,文字装饰以及首行缩进上。
# 文字对齐
text-align:center/left/right
# 文字装饰
# a标签默认带下划线 并且有颜色(没有点击过是蓝色 点击过是紫色)
text-decoration: none; 主要就是用于去除a标签的下划线
text-decoration: line-through; 删除线
text-decoration: overline; 上边线
text-decoration: underline; 下划线
# 首行缩进
text-indent: 32px; # 首行缩进32px
其实我们还可以使用浏览器做样式的动态调整,查找到标签的css,然后左键选中,通过方向键上下动态修改数值。
背景属性#
# 背景颜色
background-color : 任意合法的颜色 和 transparent
# 背景图片
background-image : url(想要加载的图片)
# 1. 背景图片平铺
background-repeat :
repeat:默认值水平垂直方向都平铺
repeat-x : 水平方向平铺
repeat-y : 垂直方向平铺
no-repeat : 默认不平铺
# 2. 背景图片的尺寸
background-size :value1 value2 宽度 高度 (单位px)
value% value% 宽度 高度 (单位%)
cover :全覆盖 将背景图等比放大知道背景图完全覆盖到元素的所有区域
contain : 包含 将背景图等比放大,直到下边或者右边有一个边缘碰到元素为止
# 3. 背景图片固定
background-attachment : fixed;(固定)
scorll(滚动)
边框属性#
# 1.自定义调整每个边的边框
border-left/top/right/bottom-color: black;
border-left/top/right/bottom-width: 5px;
border-left/top/right/bottom-style: solid;
# 2.统一调整每个边的边框
border: 5px solid black; 顺序无所谓 只要给了三个就行
"""
dotted 点状虚线边框
dashed 矩形虚线边框
solid 实线边框
"""
# 3.画圆
border-radius: 50%
如果长宽一样那么就是圆 不一样就是椭圆
display属性#
只要块儿级标签可以设置长宽,行内标签是不可以的(长宽有内部文本决定)。
display:inline 让标签具备行内标签的特性(不能设置长宽)
display:block 让标签具备块儿级标签的特性(可以设置长宽)
display:inline-block 使元素同时具有行内元素和块级元素的特点
display:none 隐藏标签(重点) 页面上不会保留位置也不显示
visibility:hidde 也是隐藏标签 但是位置会保留
盒子模型#
所有的标签其实都有一个盒子模型。盒子模型的组成成分:
# 盒子模型
# 内部物品
content(内容)
内部物品与盒子内部的距离 padding(内边距、内填充)
盒子的厚度
border\边框
盒子与盒子之间的距离 margin(外边距)
1.body标签默认自带8px的margin值,我们在编写页面之前应该去掉。
margin 可以单独改变元素的上,下,左,右边距。也可以一次改变所有的属性。
属性 | 描述 |
---|---|
margin | 简写属性。在一个声明中设置所有外边距属性。 |
margin-bottom | 设置元素的下外边距。 |
margin-left | 设置元素的左外边距。 |
margin-right | 设置元素的右外边距。 |
margin-top | 设置元素的上外边距。 |
使用语法:
# 使用单独属性设置四边的距离
#d2 {
border: 1px solid blue; /*为了显示效果,所以让d2有了边框 */
margin-top: 20px; /*上边距为20px*/
margin-right: 30px; /*右边距为30px*/
margin-bottom: 40px; /*下边距40px*/
margin-left: 50px; /*左边距为50px*/
}
# 直接使用margin属性设置所有外边距
#d2 {
border: 1px solid blue; /*为了显示效果,所以让d2有了边框 */
margin: 20px 30px 40px 50px; /*和上图所示效果完全一样,相当于上个案例的简化写法*/
}
使用margin简化写法注意事项:
1. 如果提供全部四个参数值,将按上、右、下、左的顺序作用于四边。
2. 如果只提供一个,将用于全部的四边。
3. 如果提供两个,第一个用于上、下,第二个用于左、右。
4. 如果提供三个,第一个用于上,第二个用于左、右,第三个用于下。
padding用法与margin一致,padding 是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距。
一个元素的内边距区域指的是其内容与其边框之间的空间,内边距控制的是元素内部空出的空间,相反,margin 操作元素外部空出的空间。
padding属性构成
padding-top:内容上边距
padding-bottom:内容下边距
padding-left:内容左边距
padding-right:内容右边距
浮动#
浮动简介#
HTML页面的标准文档流(默认布局)是:从上到下,从左到右,遇块(块级元素)换行。浮动层:给元素的float属性赋值后,就是脱离文档流,进行左右浮动,紧贴着父元素(默认为body文本区域)的左右边框。而此浮动元素在文档流空出的位置,由后续的(非浮动)元素填充上去:块级元素直接填充上去,若跟浮动元素的范围发生重叠,浮动元素覆盖块级元素。
float的四个值:
left :元素向左浮动。
right :元素向右浮动。
none :默认值。
inherit :从父元素继承float属性。
浮动的影响#
浮动后的div宽度会变成0,但是其内边框可能撑起它的宽和高。浮动会造成父标签塌陷(类似于将口袋里面的东西拿到了口袋的外面)。
如果浮动的div前面有同级别html元素,该浮动的div会排在html元素后面浮动,不会覆盖html元素。 浮动的元素有时候也会遮挡住底下的区域,如果区域内有文本内容,那么浏览器会遵循文本内容优先展示的原则,会想法设法让文本展示出来。
解决浮动造成的影响#
前面div的浮动会影响后面的div的布局,如果想消除该影响可以使用clear:left | right | both。规定元素的哪一侧不允许其他浮动元素。
代码示例:
# css
<style type="text/css">
.outside{
font-size:12px;
font-family: Arail;
padding:10px;
background-color:#fffcd3;
border:1px solid black;
width:50%;
}
.inside1{
padding:10px;
border:1px dashed black;
background:#a9d6ff;
margin:5px;
float:left;
/* 1.div1向左漂浮之后,宽度为0
2.div1移到父元素的左边
3.div1的原始位置被空出来,由后面的html元素来补上。
*/
}
.inside2{
padding:10px;
border:1px dashed black;
background:#a9d6ff;
margin:5px;
float:right;
}
.inside3{
padding:10px;
border:1px dashed black;
background:#ffacd3;
clear:both;
/* left消除左边漂浮的影响
right消除右边漂浮的影响
both消除两边漂浮的影响
*/
}
</style>
# body
<div class="outside">
<div class="inside1">内部div1</div>
<div class="inside2">内部div2</div>
<div class="inside3">内部div3</div>
</div>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!