CSS样式基础内容6

news2024/12/28 5:47:27

目录

定位

为什么需要定位?

 定位的四种方式

静态定位

相对定位

绝对定位(脱标)

子绝父相

固定定位(脱标)

固定定位---固定到版心右侧

粘性定位

定位的叠放顺序z-index

绝对定位盒子水平垂直居中

定位特殊特性

淘宝轮播图

 元素的显示与隐藏

土豆案例(原先黑色半透明的盒子遮罩看不见,鼠标经过大盒子,就会显示出来)


定位

为什么需要定位?

1.某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子

2.当我们滚动窗口的时候,盒子是固定屏幕某个位置的

3.浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子

4.定位可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子

定位=定位模式+边偏移

定位模式用于指定一个元素在文档中的定位方式,边偏移则决定了该元素的最终位置

 定位的四种方式

静态定位

元素的默认定位方式,无定位;

静态定位按照标准流特性摆放位置,它没有位偏移

静态定位在布局时很少用到

相对定位

元素在移动位置的时候,是相对于它原来的位置来说的

原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它(不脱标,继续保留原来位置)

<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>相对定位</title>
    <style>
        .box1 {
            position: relative;
            top: 100px;
            left: 100px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .box2 {
            width: 200px;
            height: 200px;
            background-color: deeppink;
        }
    </style>
</head>

绝对定位(脱标)

绝对定位是元素在移动位置的时候,相对于它祖先元素来说的

1.如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位

2.如果祖先元素有定位(相对、绝对、固定定位),则以最近一级有定位的祖先元素为参考点移动位置(子元素就在父元素内进行移动)

3.绝对定位不再占有原先的位置(脱标)

子绝父相

子级使用绝对定位,父级则需要相对定位

 1.子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子

2.父盒子需要加定位限制子盒子在父盒子内显示

3.父盒子布局时,需要占有位置,因此父亲只能是相对定位

固定定位(脱标)

固定定位是元素固定于浏览器可视区的位置,主要适用场景:可以在浏览器页面滚动时元素的位置不会改变

以浏览器的可视窗口为参照点移动元素

固定定位不再占用原来的位置,也是脱离标准流

固定定位---固定到版心右侧

1.让固定定位的盒子left:50%,走到浏览器可视区(版心)的一半位置

2.让固定定位的盒子margin-left:版心宽度的一半距离,多走版心宽度的一半位置

<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>固定定位小技巧</title>
    <style>
        .w {
            width: 800px;
            height: 1400px;
            margin: 0 auto;
            background-color: pink;
        }

        .fixed {
            position: fixed;
            /* 1.走浏览器宽度的一半 */
            left: 50%;
            /* 2.利用margin走版心盒子宽度的一半距离 */
            margin-left: 405px;
            width: 50px;
            height: 150px;
            background-color: skyblue;
        }
    </style>
</head>

粘性定位

可以被认为是相对定位和固定定位的混合

1.以浏览器的可视窗口为参照点移动元素

2.粘性定位占有原先的位置

3.必须添加top、left、right、bottom其中一个才有效

<!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>粘性定位</title>
    <style>
        body {
            height: 3000px;
        }

        .nav {
            position: sticky;
            /* 距离页面上部0像素之后就不再向上翻动了 */
            top: 0;
            width: 800px;
            height: 50px;
            background-color: pink;
            margin: 100px auto;
        }
    </style>
</head>

<body>
    <div class="nav">我是导航栏</div>
</body>

</html>

定位的叠放顺序z-index

在使用定位布局时,可能会出现盒子重叠的情况,此时可以使用z-index来控制盒子的前后次序

1.数值可以是正整数、负整数或0,默认是auto,数值越大,盒子越靠上

2.如果属性值相同,则按照书写顺序,后来居上

3.只有定位的盒子才有z-index属性

<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>定位的叠放顺序</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            position: absolute;
            top: 0;
            left: 10px;
        }

        .xiongda {
            background-color: red;
            z-index: 1;
        }

        .xionger {
            background-color: green;
            top: 50px;
            left: 50px;
            z-index: 2;
        }

        .qiangge {
            background-color: blue;
            left: 100px;
            top: 100px;
        }
    </style>
</head>

<body>
    <div class="box xiongda">熊大</div>
    <div class="box xionger">熊二</div>
    <div class="box qiangge">光头强</div>
</body>

</html>

绝对定位盒子水平垂直居中

<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>绝对定位水平垂直居中</title>
    <style>
        .box {
            position: absolute;
            /* 1.left走50% 父容器宽度的一半 */
            left: 50%;
            /* 2.margin 负值 往左边走 自己盒子宽度的一半 */
            margin-left: -100px;

            top: 50%;
            margin-top: -100px;
            width: 200px;
            height: 200px;
            background-color: pink;
            /* margin: auto; */
        }
    </style>
</head>

定位特殊特性

1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度

2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小 

3.脱标的盒子不会触发外边距塌陷

4.浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片);但是绝对定位和固定定位会压住下面标准流的位置;(浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的,文字会围绕浮动元素)

!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>浮动产生原来的目的是做文字环绕效果</title>
    <style>
        img {
            float: left;
        }
    </style>
</head>
<body>
        1993年,在古装片《战神传说》中扮演一个武功超群的渔民;同年,主演动作喜剧片《至尊三十六计之偷天换日》,在片中饰演赌术高明的千门高手钱文迪;此外,他还主演了爱情片《天长地久》,在片中塑造了一个风流不羁的江湖浪子形象。 1994年,刘德华投资并主演了剧情片《天与地》,在片中饰演面对恶势力却毫不退缩的禁毒专员张一鹏。1995年,主演赛车励志片《烈火战车》,在片中饰演叛逆、倔强的阿祖,并凭借该片获得第15届香港电影金像奖最佳男主角提名;同年在动作片《大冒险家》中演绎了立仁从小时候父母双亡到长大后进入泰国空军的故
        <img src="images/img.jpg" alt="">
        ,饰演重义气的黑帮成员韦吉祥;同年,出演喜剧片《赌侠1999》;此外,他还担任剧情片《去年烟花特别多》的制作人。 1993年,在古装片《战神传说》中扮演一个武功超群的渔民;同年,主演动作喜剧片《至尊三十六计之偷天换日》,在片中饰演赌术高明的千门高手钱文迪;此外,他还主演了爱情片《天长地久》,在片中塑造了一个风流不羁的江湖浪子形象。 1994年,刘德华投资并主演了剧情片《天与地》,在片中饰演面对恶势力却毫不退缩的禁毒专员张一鹏。1996年,主演黑帮题材的电影《新上海滩》,在片中饰演对冯程程痴情一片的丁力。1997年,担任剧情片《香港制造》的制作人;同年,主演爱情片《天若有情之烽火佳人》,在片中饰演家世显赫的空军少尉刘天伟;12月,与梁家辉联袂主演警匪动作片《黑金》,在片中饰演精明干练、嫉恶如仇的调查局机动组组长方国辉。1998年,主演动作片《龙在江湖》,饰演重义气的黑帮成员韦吉祥;同年,出演喜剧片《赌侠1999》;此外,他还担任剧情片《去年烟花特别多》的制作人。
</body>
</html>

淘宝轮播图

<!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>淘宝轮播图</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style: none;
        }

        .tb-promo {
            position: relative;
            width: 520px;
            height: 280px;
            background-color: pink;
            margin: 100px auto;
        }

        .tb-promo img {
            width: 520px;
            height: 280px;
        }

        /* 并集选择器可以集体声明相同的样式 */
        .prev,
        .next {
            position: absolute;
            /* 绝对定位的盒子垂直居中 */
            top: 50%;
            margin-top: -15px;

            /* 加了绝对定位的盒子可以直接设置高度和宽度 */
            width: 20px;
            height: 30px;
            background: rgba(0, 0, 0, .3);
            text-decoration: none;
            text-align: center;
            line-height: 30px;
            color: #fff;
        }

        .prev {
            left: 0;
            border-radius: 0 15px 15px 0;
        }

        .next {
            /* 如果一个盒子既有left属性也有right属性,则默认会执行left属性;同理top和bottom同时存在,会执行top */
            right: 0;
            border-radius: 15px 0 0 15px;
        }

        .promo-nav {
            position: absolute;
            bottom: 10px;
            left: 50%;
            margin-left: -35px;
            width: 70px;
            height: 13px;
            background: rgba(255, 255, 255, .3);
            border-radius: 7px;
        }

        .promo-nav li {
            float: left;
            width: 8px;
            height: 8px;
            background-color: white;
            border-radius: 50%;
            margin: 3px;
        }

        /* 不要忘记权重的问题 */
        .promo-nav .selected {
            background-color: #ff5000;
        }
    </style>
</head>

<body>
    <div class="tb-promo">
        <img src="images/tb.jpg" alt="">
        <!-- 左侧按钮箭头 -->
        <a href="#" class="prev"> &lt; </a>
        <!-- 右侧按钮箭头 -->
        <a href="#" class="next"> &gt; </a>
        <!-- 小圆点 -->
        <ul class="promo-nav">
            <li class="selected"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
</body>

</html>

 元素的显示与隐藏

1.display:none;隐藏对象

2.display:block; 除了转换为块级元素之外,同时还有显示元素的意思

<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>显示隐藏对象之display</title>
    <style>
        .peppa {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 隐藏并且不占用原先的位置 */
            /* display: none; */
            /* 可以显示出来 */
            display: block;

        }

        .george {
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div class="peppa">佩奇</div>
    <div class="george">乔治</div>
</body>

</html>

1.visibility属性用于指定一个元素应可见还是隐藏

2.visibility:visible元素可见

3.visibility:hidden元素隐藏        隐藏但是仍然占有原来的位置

1.overflow属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度)时,会发生什么

2.overflow的属性有visible和hidden两种属性

<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>显示隐藏元素之overflow</title>
    <style>
        .peppa {
            /* overflow: hidden; */

            /* 溢出的部分显示滚动条 */
            /* overflow: scroll; */
            /* auto在需要时剪切内容并添加滚动条,即溢出的时候才显示滚动条 */
            overflow: auto;
            width: 200px;
            height: 200px;
            border: 3px solid pink;
            margin: 100px auto;
        }
    </style>
</head>

如果有定位的盒子,请慎用overflow:hidden;因为它会隐藏多余的部分

土豆案例(原先黑色半透明的盒子遮罩看不见,鼠标经过大盒子,就会显示出来)

<!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>土豆网案例</title>
    <style>
        .tudou {
            position: relative;
            width: 444px;
            height: 320px;
            background-color: pink;
            margin: 30px auto;
        }

        .tudou img {
            width: 100%;
            height: 100%;
        }

        .mask {
            display: none;
            position: absolute;
            /* 此时已经不保留位置了,所以需要使用display */
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, .4) url(images/arr.png) no-repeat center;
        }

        /* 当我们鼠标经过了土豆这个盒子,就让遮罩层显示出来 */
        /* 经过的是土豆这个盒子,最后显示出来的是mask这个遮罩 */
        .tudou:hover .mask {
            /* 显示元素 */
            display: block;
        }
    </style>
</head>

<body>
    <div class="tudou">
        <div class="mask"></div>
        <img src="images/tudou.jpg" alt="">
    </div>
</body>

</html>

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

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

相关文章

C#/WPF入门到多项目实战开发教程2——

登录界面 布局 右上角退出按钮 编辑图标和名称 用户名设置 布局 用户名框设置 密码框设置&#xff0c;使用模板进行设置 验证码框设置&#xff0c;使用模板进行设置 登录按钮 创建登录模板按钮 绑定模板 失败提醒 第三方登录设置 使用字体图标去替代一般图标&#xff0c;字体…

QThread的应用——在线程里面更新QProgressBar进度条

在线程里面更新QProgressBar进度条 编写QT软件的时候&#xff0c;经常会遇到点击某个按钮&#xff0c;进行一个比较耗时的计算。为了在计算过程中&#xff0c;软件界面就继续响应用户的点击&#xff0c;不会有卡死的感觉&#xff0c;一般会将这个耗时的计算放在另外一个线程里…

“打家劫舍”系列总结,偷不偷这个房间呢?(Java实现)

目录 前言 一、打家劫舍 ——>房子是线性的 1.1、dp定义 1.2、递推公式 1.3、初始化 1.4、遍历顺序 1.5、解题代码 二、打家劫舍II ——>房子是环型 2.1、分析 2.2、解题代码 三、打家劫舍III ——>房子是树形 3.1、dp含义 3.2、递推公式 3.3、解题代码…

【Trusted Firmware-A 移植】

Trusted Firmware-A 移植Trusted Firmware-A 简介步骤一、解压标准 tf-a 源码包,进入 tf-a 源码目录下&#xff1a;二、将 ST 官方补丁文件打到 tf-a 源码中&#xff1a;三、配置交叉编译工具链四、添加设备树文件五、编译源码六、固件烧写结果Trusted Firmware-A 简介 嵌入式…

Magisk工具使用指南

对于一般玩机用户,Magisk官方提供的发布版本即可满足要求,但对于高级开发者来说这远远不够,我们不仅仅是满足于使用,更要学会定制面具,最好的能完全理解面具的核心架构以便于自己也能写出来一套和面具差不多的工具,这才是我们研究面具最根本的原因所在。因为做移动安全,…

edp 基本信号-参数及命令

基本信号及概念通信双方及通道下图为edp规范中的总体框图。通过此框图我们可以了解到&#xff1a;交互的双方&#xff1a;1&#xff09;source device 即 显卡的显示控制部分2) sink device 即 显示屏 双方间的通道&#xff1a;1&#xff09; HPD 即热插拔&#xff0c;通过sink…

mysql之6中索引失效情况

对索引使用左或者左右模糊匹配 mysql> explain select * from user where name王五; -------------------------------------------------------------------------------------------- | id | select_type | table | type | possible_keys | key | key_len | ref …

2023.1.30---TF-A相关

完成TF-A源码的移植过程在tf-a源码目录下将补丁文件打到tf-a源码中2.在上级目录中的Makefile.sdk文件中&#xff0c;配置交叉编译工具链&#xff0c;找到CROSS_COMPILE将红色部分改为arm-linux-gnueabihf-3.在fds目录下添加设备树文件4.在上级目录中的Makefile.sdk文件中&#…

全世界游客访问最多的城市,重庆以5.9亿游客量排名第一

经过全面开放和“阳康”&#xff0c;旅游市场已经开始复苏。现在恰逢寒冬&#xff0c;海南等国内许多旅游胜地成为热门旅游目的地&#xff0c;泰国等国际旅游频频上热搜。旅游市场目前现状如何跟随《旅游市场数据报告》一起来了解吧。全国5A景区数量全国共有318个景区被评为AAA…

重温数据结构与算法之约瑟夫问题

文章目录前言一、暴力法二、动态规划三、实战3.1 力扣 1823. 找出游戏的获胜者3.2 洛谷 P1996 约瑟夫问题参考前言 约瑟夫问题&#xff0c;是一个计算机科学和数学中的问题&#xff0c;在计算机编程的算法中&#xff0c;类似问题又称为约瑟夫环&#xff0c;又称“丢手绢问题”…

K8s关键性概念图解

Kubernetes可以看做云原生时代的操作系统&#xff0c;统一管理下层的基础设施&#xff0c;如计算资源、网络资源、存储资源等等。将集群中存在的各种复杂关系抽象成各种API资源&#xff0c;以统一的方式暴露出各种接口&#xff0c;也便于未来的扩展以及开发团队根据自己的需要定…

JS创建ZIP文件,JSZip的使用

Hi I’m Shendi 最近编写压缩工具&#xff0c;需要使用js创建zip文件&#xff0c;使用 JSZip 插件 官网&#xff1a; https://stuk.github.io/jszip/ Github&#xff1a; https://github.com/Stuk/jszip https://sdpro.top/blog/html/article/1012.html 下载 NPM : npm inst…

论文笔记:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

目录 文章摘要 1 Neural Radiance Field Scene Representation (基于神经辐射场的场景表示) 2 Volume Rendering with Radiance Fields (基于辐射场的体素渲染) 2.1 经典渲染方程 2.2 经典的体素渲染方法 2.3 基于分段采样近似的体素渲染方法 3 Optimizing a Neural Rad…

高通开发系列 - linux kernel启动阶段串口无打印采用LED点灯

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景kernel启动汇编探测kernel启动C函数阶段探测这篇文章之前请参考下:高通开发系列 - MSM8909指示灯操作 问题背景 最近在基于…

38. 外观数列

打卡!!!每日一题 今天给大家带来一道比较有意思的题目&#xff0c;先看看题目描述 题目描述&#xff1a; 题目示例&#xff1a; 大家题目读完可能还没太理解什么意思&#xff0c;我简单给大家翻译翻译&#xff1a; n&#xff1a;表示我们要计算多少次 每一次都是对前面一个…

详细介绍Sentence-BERT:使用连体BERT网络的句子嵌入

Sentence-BERT:Sentence Embeddings using Siamese BERT-Networks 使用连体BERT网络的句子嵌入 BERT和RoBERTa在诸如语义文本相似性&#xff08;STS&#xff09;的句子对回归任务上创造了新的最优的性能。然而&#xff0c;它要求将两个句子都输入网络&#xff0c;这导致了巨大的…

代码随想录--二叉树章节总结Part IV 完结篇

代码随想录–二叉树章节总结Part IV 完结篇&#x1f389; 1.Leetcode501 二叉树中的众数 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如…

大数据行业如何获取高薪岗位offer?

在互联网行业需要保持不断的学习。学习大数据先思考自身未来想往哪个方向发展&#xff0c;想要入门快、基础深厚&#xff0c;并且需求多应用广建议从JAVA开始学起&#xff0c;找到适合自己的学习方法。 大数据行业人才稀缺&#xff0c;据第三方统计2020年全国招收程序员394699…

mybatis-plus2

目录 一、乐观锁 二、乐观锁与悲观锁的区别 1.乐观锁和悲观锁的应用场景 三、条件查询构造器 四、分页查询 五、逻辑删除 六、在Mybatis-plus中使用xml配置 一、乐观锁 乐观锁插件 | MyBatis-PlusMyBatis-Plus 官方文档https://baomidou.com/pages/0d93c0/ 当要更新一条…

16. JSON解析

1. 什么是 JSON &#xff1f; JSON 指的是 JavaScript 对象表示法&#xff08;JavaScript Object Notation&#xff09;。 JSON 是轻量级的文本数据交换格式。 JSON 独立于语言&#xff1a;JSON 使用 Javascript语法来描述数据对象&#xff0c;但是 JSON 仍然独立于语言和平台…