08 CSS05

news2025/7/27 17:18:06

目标:

1、定位
2、装饰
3、选择器拓展

一、定位

1、定位的基本介绍
2、定位的基本使用
3、静态定位
4、相对定位
5、绝对定位
6、子绝父相
7、固定定位
8、元素的层级关系

1、定位的基本介绍

1.1 网页常见布局方式

(1)标准流

· 块级元素独占一行 →垂直布局
· 行内元素/行内块元素一行显示多个 → 水平布局

(2) 浮动

· 可以让原本垂直布局的 块级元素变成水平布局

(3)定位

· 可以让元素自由的摆放在网页的任意位置
· 一般用于盒子之间的层叠情况(比如右上角显示hot)

2、定位的基本使用

(1)设置定位方式

· 属性名:position
· 常见属性值
在这里插入图片描述
在这里插入图片描述

(2)设置偏移值

· 偏移值设置分为两个方向,水平和垂直方向各选一个使用即可
· 选取的原则一般是就近原则(离哪边近用哪个)
在这里插入图片描述

.blue{
	/*1、设置定位方式*/
	position:absolute;
	/*2、设置偏移值*/
	top:150px;
	left:150px;
}

3、静态定位

(1)介绍

静态定位是默认值,就是之前认识的标准流

(2)代码

.blue{
	position:static;
}

(3)注意点

· 静态定位就是标准流,不能通过方位属性进行移动
· 之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定

4、相对定位

(1)介绍

自恋型定位,相对于自己之前的位置进行移动

(2)代码

.blue{
	position:relative;
}

(3)特点

· 需要配合方位属性实现移动
· 相对于自己原来位置进行移动
· 在页面中占位置->没有脱标(脱离标准流)

(4)应用场景

· 配合绝对定位组cp(子绝父相)
· 用于小范围移动

5、绝对定位

(1)介绍

拼爹型定位,相对于非静态定位的父元素进行移动

(2)代码

.blue{
	position:absolute;
}

(3)特点

· 需要配合方位属性实现移动
· 默认相对于浏览器可视区域进行移动
· 在页面中不占位置->已经脱标

(4)应用场景

配合相对定位组cp(子绝父相)

(5)绝对定位相对于谁进行偏移

· 祖先元素中没有定位->默认相对于浏览器进行移动
· 祖先元素中有定位->相对于 最近的 有定位的 祖先元素进行移动

6、子绝父相

(1)场景

让子元素相对于父元素进行移动

(2)含义

· 子元素:绝对定位
· 父元素:相对定位

(3)好处

父元素是相对定位,则对网页布局影响最小

(4)(拓展补充)特殊场景

· 场景:在使用子绝父相的时候,发现父元素已经有绝对定位了,此时直接子绝即可!
· 原因:父元素已经有定位已经满足要求,如果盲目修改父元素定位方式,可能会影响之前写好的布局

(5) 案例1-卡片模块的hot图标定位

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            position: relative;
            width: 228px;
            height: 270px;
            margin: 100px auto;
            
        }

        /* 子绝父相 */
        .box .hot {
            position: absolute;
            top: 8px;
            right: -8px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./img/hot.png" alt="" class="hot">
        <img src="./img/卡片.png" alt="" class="product">
    </div>
</body>
</html>

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

(6) 案例2-子绝父相水平居中

1)解决办法
①子绝父相
②先让子盒子往右移动父盒子的一半

left:50%

③再让子盒子往左移动自己的一半
a.普通做法
margin-left:负的子盒子宽度的一半
缺点:子盒子宽度变化后需要重新改代码
b.优化做法
transform:translateX(-50%)
优点:表示沿着X轴负方向(向左)始终移动自己宽度的一半,子盒子宽度变化不需要更改代码
· 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            position: relative;
            width: 600px;
            height: 400px;
            background-color: pink;
        }

        .son {
            /* 1.子绝父相 */
            position: absolute;
            /* 2.先让子元素往右移动父元素的一半 */
            left:50%;
            /* 3.再让子元素往左移动自己的一半 */
            transform:translateX(-50%);
            width: 200px;
            height: 100px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

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

(7) 案例3-子绝父相水平垂直居中

1)解决办法
①子绝父相
②left:50%;
③top:50%;
④transform:translate(-50%,-50%);
2)代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            position: relative;
            width: 600px;
            height: 400px;
            background-color: pink;
        }

        .son {
            position: absolute;
            left:50%;
            top:50%;
            transform:translate(-50%,-50%);
            width: 200px;
            height: 100px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

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

(8) 案例3-底部半透明遮罩效果

1)注意点:定位的元素会脱标(如:绝对定位),脱标后的元素宽高默认由内容撑开,所以在标准流中不设置宽时自动等于父元素的宽,但是定位后就会失效。
2)代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            /* 父相 */
            position: relative;
            width: 600px;
            height: 300px;
            background: url('./img/照片.PNG');
        }

        .mask {
            /* 子绝 */
            position: absolute;
            bottom: 0px;
            left: 0px;
            /* 
                绝对定位的元素会脱标,脱标之后的元素宽高此时由内容撑开
            */
            width: 100%;
            /* width: 600px; */
            height: 75px;
            background-color: rgba(0,0,0,.5);
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="mask"></div>
    </div>
</body>
</html>

3)效果:
在这里插入图片描述

7、固定定位

(1)介绍

死心眼型定位,相对于浏览器进行移动

(2)代码

.blue{
	position:fixed;
}

(3)特点

· 需要配合方位属性实现移动
· 相对于浏览器可视区域进行移动
· 在页面中不占位置->已经脱标(脱离标准流)

(4)应用场景

1、让盒子固定在屏幕中的某个位置;

定位小结 在这里插入图片描述

8、元素的层级关系

8.1 元素的层级关系

(1)不同布局方式元素的层级关系

标准流 < 浮动 < 定位

(2)不同定位之间的层级关系

· 相对、绝对、固定默认层级相同
· 此时HTML中写在下面的元素层级更高,会覆盖上面的元素

8.2 更改定位元素的层级

· 场景:改变定位元素的层级
· 属性名:z-index
· 属性值:数字
数字越大,层级越高

二、装饰

1、垂直对齐方式
2、光标类型
3、边框圆角
4、overflow溢出部分显示效果
5、元素本身隐藏

1、垂直对齐方式

· 属性名:vertical-align
· 属性值
在这里插入图片描述

· (补充拓展)项目中vertical-align可以解决的问题
1.文本框和表单按钮无法对齐问题
2.input和img无法对齐问题
3.div中的文本框,文本框无法贴顶问题
4.div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题
5.使用line-height让img标签垂直居中问题

注意点:学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题

2、光标类型

· 场景:设置鼠标光标在元素上时显示的样式
· 属性名:cursor
· 常见属性值:
在这里插入图片描述

3、边框圆角

· 场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
· 属性名:border-radius
· 常见取值:数字+px 、百分比
· 原理:
在这里插入图片描述
· 赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角
· 画一个正圆:
1.盒子必须是正方形
2. 设置边框圆角为盒子宽高的一半 → border-radius:50%
· 胶囊按钮:
1.盒子要求是长方形
2. 设置→ border-radius:盒子高度的一半

4、overflow溢出部分显示效果

· 溢出部分:指的是盒子 内容部分 所超出盒子范围的区域
· 场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条……
· 属性名:overflow
· 常见属性值:
在这里插入图片描述

5、元素本身隐藏

· 场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏
· 常见属性:
visibility: hidden
display: none
· 区别:
visibility:hidden 隐藏元素本身,并且在网页中 占位置
display: none 隐藏元素本身,并且在网页中 不占位置
· 注意点:
开发中经常会通过 display属性完成元素的显示隐藏切换
display:none;(隐藏)、 display:block;(显示)
· 案例
需求:通过代码完成:默认son元素隐藏,当鼠标移入father后让son显示的效果
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            width: 400px;
            height: 400px;
            background-color: pink;
        }

        .son {
            /* 元素本身隐藏 */
            display: none;
            width: 100px;
            height: 100px;
            background-color: blue;
        }

        .father:hover .son {
            /* 元素本身显示 */
            display: block;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

效果:
鼠标未悬停在粉色区域
鼠标悬停在粉色区域

6、(补充拓展)元素整体透明度

· 场景:
让某元素整体(包括内容)一起变透明
· 属性名:
opacity
· 属性值:
0~1之间的数字
1:表示完全不透明
0:表示完全透明
· 注意点:
opacity会让元素整体透明,包括里面的内容,如:文字、子元素等等。

7、(补充拓展)边框合并

· 场景
让相邻表格边框进行合并,得到细线边框效果
· 代码
border-collapse:collapse

注意:是给table加的属性

8、(补充拓展)用CSS画三角形技巧(面试题)

· 场景
在网页中展示出小三角形时,除了可以使用图片外,还可以使用代码完成。
· 实现原理:
利用盒子边框完成
· 实现步骤:
1.设置一个盒子
2. 设置四周不同颜色的边框
3. 将盒子宽高设置为0,仅保留边框
4. 得到四个三角形,选择其中一个后,其他三角形(边框)设置颜色为透明
在这里插入图片描述

三、选择器拓展

1、链接伪类选择器
2、焦点伪类选择器
3、属性选择器

1、链接伪类选择器

(1)场景

常用于选中超链接的不同状态

(2)选择器语法

在这里插入图片描述

(3)注意点

· 如果需要同时实现以上四种伪类状态效果,需要按照LVHA顺序书写
(记忆口诀:男盆友送了你一个LV包包,你开心的HA哈笑)
· 其中:hover伪类选择器使用更为频繁,常用于选择各类元素的悬停状态

2、焦点伪类选择器

(1)场景

用于选中元素获取焦点时状态,常用于表单控件

(2)选择器语法

在这里插入图片描述

(3)效果

表单控件获取焦点时默认会显示外部轮廓线

3、属性选择器

(1)场景

通过元素上的HTML属性来选择元素,常用于选择input标签

(2)语法

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

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

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

相关文章

CVTE前端面经(2023)

CVTE前端面经项目介绍&#xff08;重点&#xff09;在数据B中找到数组A对应的值&#xff0c;并把数组B对应的值放在数据最前面css1 定位2 外边距3 css高级应用3.1. 过渡3.2. 变形2. 浮动2.1 浮动元素特点2. 2 清除浮动3. html5语义标签4. 实现圣杯布局的两种方式4.1 定位浮动4.…

不会吧,难道真的有程序员不知道怎么接单赚钱吗?

随着大环境逐渐转好&#xff0c;跳槽、新工作、兼职等等机会都浮出水面。抛开跳槽、新工作不谈&#xff0c;今天就专门来说说程序员接单赚钱有哪些靠谱的平台。 首先分享一波关于接私活有哪些注意事项&#xff0c;给大家提个醒&#xff0c;避免盲目入坑。 一、程序员接单须知…

搬得进来,搬得出去!快来过一把数据迁移的“瘾”

欢迎访问OceanBase官网获取更多信息&#xff1a;https://www.oceanbase.com/ 经过前几次“剧透”&#xff0c;我们知道了 OceanBase 开发者大会有嘉宾、有演讲&#xff0c;有开源生态专场&#xff0c;也知道我们还会有 3 场 Hands-on Workshop 动手实验营&#xff0c;从部署到…

从LiveData迁移到Kotlin的 Flow,才发现是真的香!

LiveData 对于 Java 开发者、初学者或是一些简单场景而言仍是可行的解决方案。而对于一些其他的场景&#xff0c;更好的选择是使用 Kotlin 数据流 (Kotlin Flow)。虽说数据流 (相较 LiveData) 有更陡峭的学习曲线&#xff0c;但由于它是 JetBrains 力挺的 Kotlin 语言的一部分&…

一文搞定!postman接口自动化测试【附项目实战详解】

目录&#xff1a;导读 | 接口结果判断 功能区 脚本相关 代码模板 | 集合(批量)测试 变化的参数数据 定期任务 接口执行顺序 数据传递 | 解决依赖问题 假设场景 Postman 中的操作 运行 写在最后 附带项目实战教程地址&#xff1a;postman接口自动化测试使用教程项…

[计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 第二章 计算机的发展及应用(学习复习笔记)

第1章 计算机系统概论 1.1 计算机系统简介 1.1.1 计算机的软硬件概念 计算机系统由“硬件”和“软件”两大部分组成。 硬件 是指计算机的实体部分&#xff0c;它由看得见摸得着的各种电子元器件&#xff0c;各类光、电、机设备的实物组成如主机、外部设备等 软件 软件看不见…

【protoc自定义插件】「go语言」实现rpc的服务映射成http的服务,protoc生成gin的插件,(详解实现原理及过程)

文章目录前言一、工程实践中如何更好的使用proto文件&#xff1f;二、protoc命令如何查询依赖的proto文件以及执行原理1. protoc命令如何查询依赖的proto文件2. protoc执行的插件加载原理是什么&#xff1f;3. proto文件中的package和go_package的作用三、protoc插件开发原理体…

春招冲刺(十): Vue2 技术复盘

vue2 技术复盘 Q1&#xff1a;MVVM框架的理解&#xff1f; MVVM模型&#xff1a; M&#xff1a;模型&#xff08;Model&#xff09;&#xff0c;data中的数据V&#xff1a;视图&#xff08;View&#xff09;&#xff0c;模板代码VM&#xff1a;视图模型&#xff08;ViewModel…

Me-and-My-Girlfriend-1靶场通关

Me-and-My-Girlfriend-1靶场通关 靶机ip:192.168.112.135 信息收集 端口&#xff1a;22、80 还是从80WEB服务器端口入手 对服务器目录进行扫描&#xff0c;扫出以下目录 访问80端口WEB服务&#xff0c;显示一段文字只允许本地用户访问。 一眼伪造ip&#xff0c;查看页面…

基于土壤数据与机器学习算法的农作物推荐算法代码实现

1.摘要 近年来&#xff0c;机器学习方法在农业领域的应用取得巨大成功&#xff0c;广泛应用于科 学施肥、产量预测和经济效益预估等领域。根据土壤信息进行数据挖掘&#xff0c;并在此基础上提出区域性作物的种植建议&#xff0c;不仅可以促进农作物生长从而带来经济效益&#…

为什么想到微前端,是巨石应用?

为什么想到微前端&#xff0c;是巨石应用&#xff1f; 现代的前端应用的发展趋势正在变得越来越富功能化&#xff0c;富交互化&#xff0c;也就是传说中的SPA(单页面应用)&#xff1b;这样越来越复杂的单体前端应用&#xff0c;背后的后端应用则是数量庞大的微服务集群。被一个…

STM32和emWin必须知道的那些事

emWin 是由德国 SEGGER 公司开发&#xff0c;可为图形 LCD 设计提供高级支持&#xff0c;极大简化了 LCD 设计。 为恩智浦ARM 微控制器用户免费提供的 emWin 图形库。在国内做嵌入式系统的大部分都使用 emwin&#xff0c; 其简单来说就是一套图形库。STemWin是SEGGER公司授权给…

HTML DOM 事件监听器

通过JavaScript&#xff0c;我们可以给页面的某些元素添加事件的监听器&#xff0c;当元素触发相应事件的时候监听器就会捕捉到这个事件并执行相应的代码。addEventListener() 方法实例当用户点击按钮时触发监听事件&#xff1a;document.getElementById("myBtn").ad…

Balsamiq Wireframes 安装配置

文章目录Balsamiq Wireframes 安装配置一、简介二、软件特色1、零学习曲线&#xff0c;随时随地提供强大功能2. 专为协作而设计3. 每个人的第一个 UX工具三、Balsamiq Wireframes功能介绍1、工具列2、快速添加工具3、UI库4、帆布5、导航器面板6、键盘快捷键&#xff1a;四、安装…

经纬恒润再传佳讯,斩获大奖

阳春二月&#xff0c;经纬恒润屡传佳讯&#xff0c;凭借产品、研发等多方面的出色表现&#xff0c;再次斩获东风柳汽“优秀供应商”和广汽传祺“科技创新奖”&#xff0c;以实力印证良好口碑&#xff0c;不忘初心&#xff0c;载誉而行&#xff01; 东风柳汽&#xff1a;优秀供…

【信号量机制及应用】

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 目录 一、信号量机制 二、信号量的应用 >利用信号量实现进程互斥   >利用信号量实现前驱关系   >利用记录型信号量实现同步 三、例题 四、参考 一、信号量机制 信号量是操作系统提…

现在招个会自动化测试的人是真难呀~你会个锤子的自动化测试

现在招个会自动化测试的人是真难呀~ 前一段时间公司计划要招2个自动化测试到岗&#xff0c;同事面试了十几个来应聘的人&#xff0c;发现一个很奇怪的现象&#xff0c;在面试的时候&#xff0c;如果问的是框架API、脚本编写这些问题&#xff0c;基本上所有人都能对答如流&…

centos6下为Rstudio安装多版本R

之前的R版本太旧,不少包装不上,需要安装新版本的R: R --version R version 3.6.0 (2019-04-26) -- "Planting of a Tree"于是下载最新版R: 因为没有证书,需要加上最后面的参数. wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.2.2.tar.gz --no…

MySQL OCP888题解042-审计日志格式

文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1&#xff1a;审计日志3.1.1、审计日志是什么3.1.2、审计日志格式4、总结1、原题 1.1、英文原题 Consider the MySQL Enterprise Audit plugin. You are check…

好使!NAS中傻瓜式配置反向代理及SSL证书,提升网络安全性!

对于有NAS或者有个人主机的朋友来说&#xff0c;将机器映射到外网是基本操作。 但是一般来说&#xff0c;能直接从外网访问的往往仅有80和443端口。事实上&#xff0c;运营商一般把家庭宽带的这两个端口都封了&#xff0c;所以如果我们想要从外网访问自己家中机器部署的服务&a…