CSS属性:定位属性+案例讲解:博雅互动 前端开发入门笔记(五)

CSS中的定位属性用于指定HTML元素在文档中的位置。常用的定位属性有以下几种:

  1. position:用于定义元素的定位方式。

    • static(默认值):元素遵循正常的文档流,不进行特殊的定位。
    • relative:相对定位,通过设置top、bottom、left、right等属性相对于元素在正常文档流中的位置进行偏移。
    • absolute:绝对定位,相对于最近的具有定位属性(relative、absolute、fixed、sticky)的父元素进行定位。
    • fixed:固定定位,相对于浏览器窗口进行定位,即使页面滚动,元素也会保持在固定位置。
    • sticky:粘性定位,在滚动过程中表现为相对定位和固定定位的混合。当页面滚动到指定位置时,元素将固定在该位置。
  2. top、bottom、left、right:与定位属性配合使用,用于指定元素相对于其定位父元素的偏移距离。可以使用像素(px)、百分比(%)或其他单位进行指定。

  3. z-index:用于控制元素在重叠文档流中的层叠顺序。值越大,元素越靠前显示。

这些定位属性可以结合使用,以实现更灵活的布局效果。需要注意的是,定位属性会改变元素的定位方式,可能影响到其他元素的布局。因此,在使用定位属性时要谨慎,并合理考虑页面结构和布局需求。

当涉及到定位属性时,还有一些其他的CSS属性可以与之配合使用,以进一步控制元素的位置和行为。

  1. display:用于定义元素的显示类型。

    • block:块级元素,独占一行,默认宽度为其父元素的100%。
    • inline:内联元素,不会独占一行,宽度由内容决定。
    • inline-block:内联块级元素,不会独占一行,宽度由内容决定,但可以设置宽度、高度和margin等属性。
    • none:隐藏元素,元素不在文档中占据空间。
  2. float:用于将元素浮动到其容器的左侧或右侧。

    • left:元素向左浮动,后续元素会环绕在其右侧。
    • right:元素向右浮动,后续元素会环绕在其左侧。
    • none(默认值):元素不浮动。
  3. clear:用于控制元素在浮动元素旁边的行为。

    • left:不允许左侧有浮动元素。
    • right:不允许右侧有浮动元素。
    • both:不允许左右两侧有浮动元素。
    • none(默认值):允许出现浮动元素。
  4. overflow:用于定义当内容溢出元素框时如何处理溢出部分。

    • visible(默认值):内容不会被裁剪,可能会显示在元素框外。
    • hidden:内容被裁剪,超出元素框的部分将被隐藏。
    • scroll:显示滚动条,以便查看超出元素框的内容。
    • auto:根据内容是否超出元素框来决定是否显示滚动条。

https://web.qianguyihao.com/02-CSS%E5%9F%BA%E7%A1%80/09-CSS%E6%A1%88%E4%BE%8B%E8%AE%B2%E8%A7%A3%EF%BC%9A%E5%8D%9A%E9%9B%85%E4%BA%92%E5%8A%A8.html#%E5%89%8D%E8%A8%80

这些属性可以与定位属性结合使用,以实现更多样化的布局效果。通过合理利用这些属性,可以灵活地控制元素在页面中的位置和行为。

当涉及到定位属性时,还有一些其他的CSS属性可以进一步增强元素的布局和样式:

  1. width、height:用于设置元素的宽度和高度。可以使用像素(px)、百分比(%)或其他单位进行指定。

  2. margin:用于设置元素的外边距,控制元素与周围元素之间的空间。可以设置上下左右四个方向的外边距值,也可以通过缩写方式同时设置四个方向的外边距。

  3. padding:用于设置元素的内边距,控制元素内容与边框之间的空间。同样可以设置上下左右四个方向的内边距值,也可以通过缩写方式同时设置四个方向的内边距。

  4. border:用于设置元素的边框样式。可以设置边框的宽度、样式和颜色。

  5. background:用于设置元素的背景样式。可以设置背景颜色、图片、重复方式等。

  6. transform:用于对元素进行变换,如旋转、缩放、平移等效果。

  7. transition:用于设置元素的过渡效果,可以使元素从一个状态平滑地过渡到另一个状态。可以控制过渡的属性、持续时间、延迟时间等。

这些属性可以与定位属性相互配合使用,通过调整元素的大小、外边距、内边距、边框样式和背景样式,以及应用变换和过渡效果,可以创建出各种独特的布局和视觉效果。请根据具体需求选择合适的属性来达到预期的效果。

CSS的定位属性有三种,分别是绝对定位、相对定位、固定定位

当涉及到CSS的定位属性时,这里有更详细的说明:

  1. 绝对定位(position: absolute):

    • 使用绝对定位的元素会完全脱离文档流,不会对其他元素造成影响。
    • 可以通过设置top、bottom、left、right属性来指定元素相对于其最近的已定位父元素的偏移量。也可以使用负值来偏移元素的位置。
    • 如果没有已定位的父元素,绝对定位元素将相对于文档的根元素进行定位。
    • 绝对定位常用于创建重叠布局、悬浮导航栏、弹出式菜单等效果。
  2. 相对定位(position: relative):

    • 相对定位的元素仍然占据原来的空间,并在正常文档流中保持位置。
    • 通过设置top、bottom、left、right属性来指定元素相对于自身在正常文档流中的位置进行偏移。
    • 相对定位的元素对其他元素的布局会产生影响,其他元素仍然会根据相对定位元素在正常文档流中的位置进行布局。
    • 相对定位常用于微调元素的位置、创建动画效果等。
  3. 固定定位(position: fixed):

    • 固定定位的元素会相对于浏览器窗口进行定位,始终保持在同一个位置。
    • 通过设置top、bottom、left、right属性来指定元素相对于浏览器窗口的偏移量。
    • 固定定位的元素不会随页面滚动而移动,适用于创建固定的导航栏、悬浮工具条等效果。
    • 在移动设备上,固定定位的元素常用于创建页头、页脚或菜单。

除了定位属性外,还可以使用z-index属性来控制元素的堆叠顺序。z-index值较大的元素将覆盖在其他元素之上。这在处理重叠元素时非常有用。

值得一提的是,使用定位属性时,需要慎重考虑其对文档流和其他元素的影响,以确保布局和视觉效果的一致性和可靠性。


另外,需要注意以下几点:

  1. 在使用定位属性时,最好使用比较精确的像素值来定位元素,而不是使用百分比等相对值。否则可能出现不同浏览器、不同设备上元素显示不一致的情况。

  2. 对于绝对定位和固定定位的元素,如果没有设置宽度和高度,那么它们的大小将自动调整为包含内容的大小。因此,如果需要为这些元素设置特定的尺寸,需要为它们设置显式的宽度和高度。

  3. 对于相对定位的元素,如果没有设置偏移量,则在正常文档流中保持不动。

  4. 在使用定位属性时,要记得考虑浏览器窗口大小、滚动条位置等因素的影响,以确保页面布局的稳定性和可靠性。

  5. 最后,使用定位属性时应该尽量避免滥用,以免造成代码的复杂性和难以维护性。

导航栏的制作

在此我们只讲基础知识的使用,不涉及浏览器的优化。

class==header这个div是顶部的通栏,我们在里面放一个1000px宽的div,作为通栏的版心,我一般把这个版心称为class=inner_c,c指的是center。

class=inner_c不需要给高,因为它可以被内容撑高。

现在我们需要在class=inner_c里放三个东西:左侧的logo、中间的导航栏、右侧的“加入我们”。

接下来我们开始做右侧的「加入我们」,「加入我们」的背景是带圆角的矩形,这个圆角,实现的方式有两种:要么切图,要么用CSS3实现(IE 7、IE 8不兼容)。我们暂时使用切图来实现。

我们最好把「加入我们」这个超链接放到div里,然后设置div的margin和padding,而不是直接设置的边距。

我们起个名字叫class=jrwm是没有问题的,这在工作当中很常见,如果写成class=join_us反倒很别扭。

暂时我们的做法是:

(1)给class=jrwm_box这个div里放一个class=jrwm的div。class=jrwm用来放绿色的背景图片。
(2)在class=jrwm里放一个超链接,并将超链接转为块级元素。
最终,导航栏的代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">*{margin: 0px;padding: 0px;}body{font-size: 14px;font-family: "Microsoft YaHei","SimSun";height: 8888px;}.header{height: 58px;background-color: #191D3A;}/*版心*/.inner_c{width: 1000px;margin: 0 auto; /*让导航条、内容区域等部分的版心在父亲里居中*/}/*导航条的logo*/.header .logo{float: left;margin-right: 40px;}.header .nav{float: left;}.header .nav ul{list-style: none; /*去掉列表前面的圆点*/}.header .nav ul li{float: left;width: 100px;line-height: 58px; /*让行高等于这一行的高度,保证里面的文字垂直居中*/border-left: 1px solid #252947; /*每个li之间有间隔线*/}.header .nav ul li.last{border-right: 1px solid #252947;/*最后一个li的右边加间隔线*/}.header .nav ul li a{display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/height: 58px;text-decoration: none; /*去掉超链的下划线*/color:#818496;text-align: center;  /*让这个div内部的文本居中*/}.header .nav ul li a.current{color:white;background: #252947;}.header .nav ul li a:hover{color: white;background: #252947;}.header .jrwm_box{float: left;height: 58px;width: 100px;padding-left: 48px;padding-top: 12px;}/*放背景图片的div*/.header .jrwm_box .jrwm{height: 34px;background-image: url(images/jrwm.png);background-repeat: no-repeat;text-align: center; /*让这个div内部的超链接居中*/}.header .jrwm_box .jrwm a{display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/line-height: 34px; /*让行高为背景图片的高度,可以保证超链接的文字在背景图片里垂直居中*/text-decoration: none; /*去掉超链的下划线*/color: white;}</style>
</head>
<body><div class="header"><div class="inner_c"><div class="logo"><img src="images/logo.png " alt=""></div><div class="nav"><ul><li><a href="#" class="current">首页</a></li><li><a href="#">博雅游戏</a></li><li><a href="#">博雅新闻</a></li><li><a href="#">关于我们</a></li><li><a href="#">客服中心</a></li><li class="last"><a href="#">投资者关系</a></li></ul></div><div class="jrwm_box"><div class="jrwm"><a href="https://www.google.com/" target="_blank">加入我们</a></div></div></div></div>
</body>
</html>

banenr图

"banner图"通常指的是网页或应用程序界面上的横幅广告或标识,用于吸引用户的注意和传达信息。它通常位于网页的顶部或侧边,具有鲜明的设计和吸引人的视觉效果。banner图可以包含文字、图像、标志、产品展示等内容,用于宣传、推广或增强品牌形象。它在网页设计和数字营销中起到重要的作用,帮助吸引用户的眼球并引导他们进行进一步的操作。

因为涉及到 js 的内容,这里先不讲内容区域轮播图的效果。

我们首先在导航条和banner图之间加一道墙,即class=cl,然后采用隔墙法对其设置clear: both;的属性。

然后设置banner的背景图片属性,添加banner图。

内容区域的制作
导航栏+banner+内容区域的完整代码如下:


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">*{margin: 0px;padding: 0px;}/*清除浮动的影响*/.cl{clear: both;}body{font-size: 14px;font-family: "Microsoft YaHei","SimSun";height: 8888px;}.header{height: 58px;background-color: #191D3A;}/*版心*/.inner_c{width: 1000px;margin: 0 auto; /*让导航条、内容区域等部分的版心在父亲里居中*/}/*导航条的logo*/.header .logo{float: left;margin-right: 40px;}.header .nav{float: left;}.header .nav ul{list-style: none; /*去掉列表前面的圆点*/}.header .nav ul li{float: left;width: 100px;line-height: 58px; /*让行高等于这一行的高度,保证里面的文字垂直居中*/border-left: 1px solid #252947; /*每个li之间有间隔线*/}.header .nav ul li.last{border-right: 1px solid #252947;/*最后一个li的右边加间隔线*/}.header .nav ul li a{display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/height: 58px;text-decoration: none; /*去掉超链的下划线*/color:#818496;text-align: center;  /*让这个div内部的文本居中*/}.header .nav ul li a.current{color:white;background: #252947;}.header .nav ul li a:hover{color: white;background: #252947;}.header .jrwm_box{float: left;height: 58px;width: 100px;padding-left: 48px;padding-top: 12px;}/*放背景图片的div*/.header .jrwm_box .jrwm{height: 34px;background-image: url(images/jrwm.png);background-repeat: no-repeat;text-align: center; /*让这个div内部的超链接居中*/}.header .jrwm_box .jrwm a{display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/line-height: 34px; /*让行高为背景图片的高度,可以保证超链接的文字在背景图片里垂直居中*/text-decoration: none; /*去掉超链的下划线*/color: white;}.banner{height: 465px;background: url(images/banner.jpg) no-repeat center top;}.content{padding-top: 50px;}.content .product{height: 229px;border-bottom: 1px solid #DBE1E7;}.content .product ul{list-style: none;}.content .product ul li{float: left;width: 218px;margin-right: 43px;}.content .product ul li.last{margin-right: 0;width: 217px;}.content .product ul li img{width: 218px;height: 130px;}.content .product ul li.last img{width: 217px;}.content .product ul li h3{text-align: center;line-height: 38px;font-size: 14px;font-weight: bold;}.content .product ul li p.djbf{text-align: center;line-height: 16px;}.content .product ul li p.djbf a{font-size: 12px;color:#38B774;text-decoration: none;background:url(images/sanjiaoxing.png) no-repeat right 5px;padding-right: 12px;}</style>
</head>
<body><div class="header"><div class="inner_c"><div class="logo"><img src="images/logo.png " alt=""></div><div class="nav"><ul><li><a href="#" class="current">首页</a></li><li><a href="#">博雅游戏</a></li><li><a href="#">博雅新闻</a></li><li><a href="#">关于我们</a></li><li><a href="#">客服中心</a></li><li class="last"><a href="#">投资者关系</a></li></ul></div><div class="jrwm_box"><div class="jrwm"><a href="https://www.google.com/" target="_blank">加入我们</a></div></div></div></div><!-- 在导航条和banner之间隔一堵墙 --><div class="cl"></div><div class="banner"></div><!-- 内容区域 --><div class="content inner_c"><div class="product"><ul><li><p><img src="images/pro1.jpg" alt="" /></p><h3>BPT宣传片</h3><p class="djbf"><a href="#">点击播放</a></p></li><li><p><img src="images/pro2.jpg" alt="" /></p><h3>BPT宣传片</h3><p class="djbf"><a href="#">点击播放</a></p></li><li><p><img src="images/pro3.jpg" alt="" /></p><h3>BPT宣传片</h3><p class="djbf"><a href="#">点击播放</a></p></li><li class="last"><p><img src="images/pro4.jpg" alt="" /></p><h3>BPT宣传片</h3><p class="djbf"><a href="#">点击播放</a></p></li></ul></div></div>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无声的世界,精神科用药并结合临床的一些分析及笔记(九)

住院计划表 她宫颈癌的手术决定在中心妇产医院进行&#xff0c;由于她抑郁症的爆发&#xff0c;也需要在安定医院调理&#xff0c;我决定制定一个住院计划&#xff0c;征求她和大夫的同意&#xff1a; 节点1&#xff1a;在安定医院治疗抑郁症&#xff0c;调整心理状态&#x…

AMEYA360:君正低功耗AIoT图像识别处理器—X1600/X1600E

• 高性能 XBurst 1 CPU&#xff0c;主频1.0GHz • 超低功耗 • 内置LPDDR2(X1600&#xff1a;32MB&#xff0c;X1600E&#xff1a;64MB) • 实时控制核XBurst 0&#xff0c;面向安全管理和实时控制 • 丰富的外设接口 应用领域 • 基于二维码的智能商业 • 智能物联网 • 高端…

C++ 类和对象(上)------超详细解析,小白必看系列

目录 一、前言 二、面向过程和面向对象初步认识 三、类的引入 三、类的定义 四、类的访问限定符及封装 &#x1f4a6;访问限定符 &#xff08;重点&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; &#x1f4a6;封装 五、类的作用域 六、类的实例化 …

[MAUI]深入了解.NET MAUI Blazor与Vue的混合开发

文章目录 Vue在混合开发中的特点创建MAUI项目创建Vue应用使用element-ui组件库JavaScript和原生代码的交互传递根组件参数从设备调用Javascript代码从Vue页面调用原生代码 读取设备信息项目地址 .NET MAUI结合Vue的混合开发可以使用更加熟悉的Vue的语法代替Blazor语法&#xff…

TCP/IP(十八)TCP 实战抓包分析(二)TCP 三次握手和四次挥手

一 TCP三次握手和四次挥手 说明&#xff1a; 本文三次握手和四次挥手 无异常情况下的分析目标&#xff1a; 通过抓取和分析 HTTP 协议网络包,理解 TCP 三次握手和四次挥手的工作原理 ① 抓包和测试准备 1、 服务端事先执行 tcpdump 抓包 --> 172.25.2.100tcpdump -i b…

【mfc/VS2022】计图实验:绘图工具设计知识笔记2

按钮添加处理程序 1.类视图找到对应类右击&#xff0c;类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来&#xff0c;而不是重叠&#xff08;如下图&#xff09;隐藏了一条圆弧 问题如图&#xff1a; 因为矩形和圆心其实是个背景色的封闭图形&#xff0c;所…

ruoyi识别访问设备是pc端还是移动端跳转到对应的登录页面

背景需求 ruoyi框架&#xff0c;前后端分离。现在要在用户访问的时候根据不同的设备跳转到不同的登录页面。 教程 router/index.js 修改src/router/index.js&#xff0c;在这里增加自己的要跳转的页面 permission.js 在白名单中添加自己的登录页面 增加以下识别的代码 le…

TCP通信-同时接受多个客户端消息

同时处理多个客户端消息的原理 代码实现 public class ClientDemo1 {public static void main(String[] args) {try {System.out.println("客户端启动");// 1、创建Socket通信管道请求有服务端的连接// public Socket(String host, int port)// 参数一&#xff1a;服…

【网络安全 --- MySQL数据库】网络安全MySQL数据库应该掌握的知识,还不收藏开始学习。

四&#xff0c;MySQL 4.1 mysql安装 #centos7默认安装的是MariaDB-5.5.68或者65&#xff0c; #查看版本的指令&#xff1a;[rootweb01 bbs]# rpm -qa| grep mariadb #安装mariadb的最新版&#xff0c;只是更新了软件版本&#xff0c;不会删除之前原有的数据。 #修改yum源的配…

ABB变频器使用PROFINET IO通信模块时的激活方法

ABB变频器使用PROFINET IO通信模块时的激活方法 ABB传动通讯总线适配器的激活(ACS380): 首先,如下图所示,要采购并安装PROFINET IO总线通信模块(我这里支持3种通信协议,大家在实际使用时,用到哪种就购买哪种即可), 如下图所示,进入参数设置, 如下图所示,进入“完…

客户管理系统是如何提高工作效率的?

对于大部分企业来说销售部门相比市场营销等部门&#xff0c;会投入更大的人力、物力&#xff0c;客户管理系统在其中发挥着重要作用&#xff0c;它是如何提高工作效率的。 在数字化高度发达的今天&#xff0c;销售自动化已经步入了企业的经营管理中&#xff0c;大大地改善了销…

2023年四川省网络与信息安全技能大赛初赛 个人赛 Writeup

文章目录 WebPHPs Endingweb-game-1-1can_you_getshell Pwnbabyshell Reversepacked MiscedocneBaby_TCP Web PHP’s Ending 反序列化、eval截断、无参数RCE <?php// error_reporting(0);// highlight_file(__FILE__);class saday{public $reason"things dont work…

访问文件夹

访问文件夹并读取文件内容 将展示如何使用 JavaScript 中的 showDirectoryPicker() 方法来访问文件夹&#xff0c;并读取文件的内容。 HTML 结构 首先&#xff0c;需要一个按钮来触发打开文件夹的操作&#xff1a; <button>打开文件夹</button>还需要一个段落元…

【Note】CNN与现代卷积神经网络part3(附PyTorch代码)

文章目录 2 现代卷积神经网络2.1 批量规范化2.1.1 训练深层网络2.1.2 批量规范化层2.1.2.1 全连接层2.1.2.2 卷积层2.1.2.3 预测过程中的批量规范化 2.1.3 从零实现2.1.4 使用批量规范化层的 LeNet2.1.5 简明实现2.1.6 controversies&#xff08;争议&#xff09;2.1.7 Summary…

解码yakit 适配中国的 只要base64加密直接yakit

中国版的bp 浏览器上代理 文件 服务器 yakit yakit 劫持启动 配置代理 报错 爆破 模糊字典 选择admin 选择 第一步 第二步 成功

视频SDK,高效视频解决方案

随着企业业务的不断扩展和多样化&#xff0c;视频已成为企业宣传、教育和娱乐等多个领域不可或缺的内容。为了满足企业对视频的需求&#xff0c;美摄视频SDK开发应运而生&#xff0c;为企业提供全面、高效、安全和便捷的视频解决方案。 美摄视频SDK开发公司拥有丰富的经验和卓…

【PXIE301-211】青翼科技基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台

板卡概述 PXIE301-211是一款基于PXIE总线架构的16路并行LVDS数据采集、1路光纤收发处理平台&#xff0c;该板卡采用Xilinx的高性能Kintex 7系列FPGA XC7K325T作为实时处理器&#xff0c;实现各个接口之间的互联。板载1组64位的DDR3 SDRAM用作数据缓存。板卡具有1个FMC&#xf…

数字时代,VR虚拟展会打造全渠道同步营销新模式

随着经济的快速发展&#xff0c;VR虚拟展会逐步完善&#xff0c;对线下实体展会也产生了重大的影响&#xff0c;在这个数字化时代&#xff0c;展会展览也需要寻找新的表达方式&#xff0c;VR虚拟展会以一种全新的魅力吸引越来越多的观展者。 传统展厅的局限性&#xff1b; 1、…

ESP RainMaker 客户案例 #2|PitPat

PitPat 是美国领先的健身品牌&#xff0c;致力于通过游戏化的方式改变人们的锻炼习惯&#xff0c;增强健康。该品牌通过智能设备和相关的移动应用程序为从事家庭锻炼的个人提供虚拟跑步体验。目前&#xff0c;PitPat 针对不同受众群体&#xff0c;开发了Superun&#xff0c;Dee…

自动驾驶中的数据安全和隐私

自动驾驶技术的发展已经改变了我们的出行方式&#xff0c;但伴随着这项技术的普及&#xff0c;数据安全和隐私问题也变得愈发重要。本文将探讨自动驾驶中的数据收集、数据隐私和安全挑战&#xff0c;以及如何保护自动驾驶系统的数据。 自动驾驶中的数据收集 在自动驾驶技术中…