【CSS】使用 固定定位 实现顶部导航栏 ( 核心要点 | 固定定位元素居中设置 | 代码示例 )

news2024/10/6 12:25:33

文章目录

  • 一、核心要点分析
    • 1、顶部导航栏要点
    • 2、固定定位垂直居中设置
  • 二、代码示例





一、核心要点分析



实现下图所示功能 :

  • 上方有一个固定导航栏 , 水平居中设置 ;
  • 左右两侧各一个广告栏 , 垂直居中设置 ;

在这里插入图片描述

1、顶部导航栏要点


顶部导航栏要点 :

  • 使用固定定位 , 上边偏移设置为 0 , 即可设置为顶部导航栏 , 其位置不受页面滚动影响 ;
			/* 设置固定定位 */
			position: fixed;
			top: 0;
  • 由于顶部的导航栏设置了 绝对定位 , 该元素是脱标的 , 下方的网页内容会被顶部导航栏覆盖 , 这里需要设置一个上外边距 , 上外边距值大于等于 顶部导航栏的高度 ;
			/* 顶部的固定定位盒子高度 100px 由于其脱标会覆盖标准流元素 
			   此处标准流盒子设置 100px 的外边距 防止被顶部的固定定位盒子覆盖 */
			margin-top: 55px;
  • 由于设置 绝对 / 固定 定位 , 会将元素变为行内块元素 , 其宽度是内部子元素的宽度 , 如果要精确放置顶部导航栏的位置 , 顶部导航栏盒子必须设置宽度 , 这里选择设置其宽度为 100% ;
			/* 定位元素如果不设置宽度 默认就是内部内容的宽度 */
			/* 如果要设置盒子 */
			/* 该盒子要设置成占用整个水平宽度 */
			width: 100%;
  • 顶部导航栏盒子需要设置到最上层 , 防止其被设置了定位的网页内容覆盖 ;
			/* 该盒子位于最上层 不要被其它盒子覆盖 */
			z-index: 3;

顶部导航栏完整样式如下 :

		.top {
			/* 定位元素如果不设置宽度 默认就是内部内容的宽度 */
			/* 如果要设置盒子 */
			/* 该盒子要设置成占用整个水平宽度 */
			width: 100%;

			/* 设置固定定位 */
			position: fixed;
			top: 0;

			height: 50px;
			background-color: skyblue;

			/* 设置水平居中 */
			text-align: center;

			/* 该盒子位于最上层 不要被其它盒子覆盖 */
			z-index: 3;
		}

2、固定定位垂直居中设置


设置左右两侧的广告栏在浏览器中垂直居中设置 ;

首先 , 将盒子的顶部设置到浏览器垂直中线位置 ,

			position: fixed;
			/* 该盒子在浏览器左侧 */
			/* 上边偏移 50% 之后减去 150 居中设置 */
			top: 50%;

然后 , 左侧广告栏高度为 300 像素 , 顶部在中线位置 , 向上移动 150 像素即可使真个广告栏居中设置 ;

			/* 设置垂直居中对齐 */
			margin-top: -150px;

完整代码示例 :

		/* 固定定位 - 浏览器左侧元素 */
		.left {
			position: fixed;
			/* 该盒子在浏览器左侧 */
			/* 上边偏移 50% 之后减去 150 居中设置 */
			top: 50%;
			/* 左边偏移 0 紧贴左侧 */
			left: 0;
			/* 设置垂直居中对齐 */
			margin-top: -150px;

			/* 内容尺寸 */
			width: 100px;
			height: 300px;

			background-color: blue;
		}




二、代码示例



代码示例 :

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>固定定位示例</title>
	<style>
		/* 设置高度 1000 像素, 方便滚动设置 */
		body{
			height: 1000px;
		}

		/* 最外层 父容器盒子 */
		.box {
			/* 子元素设置绝对定位 父元素需要设置相对定位 */
			position: relative;

			/* 内容尺寸 通过测量图片获得 */
			width: 300px;
			height: 200px;

			/* 边框 1 像素实线 */
			border: 1px solid #ccc;
			/* 上下设置 100 像素外边距 水平居中 */
			margin: 0px auto;
			/* 子元素与 */
			padding: 10px;

			/* 顶部的固定定位盒子高度 100px 由于其脱标会覆盖标准流元素 
			   此处标准流盒子设置 100px 的外边距 防止被顶部的固定定位盒子覆盖 */
			margin-top: 55px;

			background-color: pink;
		}

		/* 固定定位元素 */
		.center {
			width: 300px;
			height: 200px;

			background-color: purple;
		}

		.top {
			/* 定位元素如果不设置宽度 默认就是内部内容的宽度 */
			/* 如果要设置盒子 */
			/* 该盒子要设置成占用整个水平宽度 */
			width: 100%;

			/* 设置固定定位 */
			position: fixed;
			top: 0;

			height: 50px;
			background-color: skyblue;

			/* 设置水平居中 */
			text-align: center;

			/* 该盒子位于最上层 不要被其它盒子覆盖 */
			z-index: 3;
		}

		/* 固定定位 - 浏览器左侧元素 */
		.left {
			position: fixed;
			/* 该盒子在浏览器左侧 */
			/* 上边偏移 50% 之后减去 150 居中设置 */
			top: 50%;
			/* 左边偏移 0 紧贴左侧 */
			left: 0;
			/* 设置垂直居中对齐 */
			margin-top: -150px;

			/* 内容尺寸 */
			width: 100px;
			height: 300px;

			background-color: blue;
		}

		/* 固定定位 - 浏览器右侧元素 */
		.right {
			position: fixed;
			/* 该盒子在浏览器右侧 */
			/* 上边偏移 50% 之后减去 150 居中设置 */
			top: 50%;
			/* 右边偏移 0 紧贴右侧 */
			right: 0;
			/* 设置垂直居中对齐 */
			margin-top: -150px;

			/* 内容尺寸 */
			width: 100px;
			height: 300px;

			background-color: red;
		}
	</style>
</head>
<body>
	<div class="top"></div>
	<div class="left"></div>
	<div class="right"></div>
	<div class="box">
		<div class="center"></div>
	</div>
</body>
</html>

执行结果 :

在这里插入图片描述

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

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

相关文章

Linux Ubuntu虚拟机下载安装以及初始配置--VMware、Ubuntu、Xshell、Xftp

一、下载准备 Ubuntu系统下载链接&#xff08;系统本身&#xff09;&#xff1a;官网链接 VMware虚拟机下载链接&#xff08;搭载Ubuntu系统&#xff09;&#xff1a;网盘链接密码XMKD Xshell下载链接&#xff08;虚拟机远程连接&#xff09;&#xff1a;官网链接 Xftp下载…

MySQL索引数据结构入门

之前松哥写过一个 MySQL 系列&#xff0c;但是当时是基于 MySQL5.7 的&#xff0c;最近有空在看 MySQL8 的文档&#xff0c;发现和 MySQL5.7 相比还是有不少变化&#xff0c;同时 MySQL 又是小伙伴们在面试时一个非常重要的知识点&#xff0c;因此松哥打算最近再抽空和小伙伴们…

PyQt5学习笔记一、安装PyQt5和在PyCharm中配置工具

一、安装PyQt5 1. 可以在cmd窗口安装PyQt5和工具 可以在cmd窗口使用命令 pip install PyQt5 安装PyQt5&#xff0c;若指定版本使用命令 pip install PyQt5version&#xff0c;此时同时安装了PyQt5和sip。参考链接 在cmd命令窗口安装Python模块_Mr. 李大白的博客-CSDN博客htt…

potPlay——记忆播放位置、各种快捷键

potPlay——记忆播放位置、各种快捷键potPlay——各种快捷键简洁版完整版快捷键列表potPlay——记忆播放位置potPlay——各种快捷键 简洁版 Q 复位 亮度&#xff0c;对比度&#xff0c;色度复位键 W/E 调暗/调亮 R/T 对比度 Y/U 饱和度 I/O 色彩度 D 上一帧 F 下一帧 M 静音 …

Docker开启并配置远程安全访问

前言 在工作学习中&#xff0c;为了提高项目部署效率&#xff0c;一般会在Idea中直接使用Docker插件连接服务器Docker容器&#xff0c;然后将项目打包与DockerFile一起build成Docker镜像部署运行。但是不可能服务器总是跟着主机的&#xff0c;因此呢时常会面临的一个问题就是从…

【微信小程序】-- uni-app 项目--- 购物车 -- 配置 tabBar 效果(五十一)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

事务的ACID特性

1. 絮絮叨叨 重温Apache ORC时&#xff0c;发现ORC支持ACID想起自己之前一度不知道ACID是哪些单词的缩写&#xff0c;更别提面试中常提到的事物隔离级别等知识了因此&#xff0c;特地学习一下数据库中事务的ACID 2. ACID 2.1 What’s transaction&#xff1f; 考虑一个真实…

42.原型对象 prototype

目录 1 面向对象与面向过程 2 原型对象 prototype 3 在内置对象中添加方法 4 constructor 属性 5 实例对象原型 __proto__ 6 原型继承 7 原型链与instanceof 7.1 原型链 7.2 instanceof 8 案例-模态框 1 面向对象与面向过程 编程思想有 面向过程 与 面向…

几何-九种二次曲面类型

&#xff08;一&#xff09;椭圆锥面 &#xff08;1&#xff09;把z平方看成一个一直变大的常数&#xff0c;那么可以看出延z方向&#xff0c;是一个一直变大的椭圆。 &#xff08;2&#xff09;把一个x或y赋予0&#xff0c;显然是一个两条关于原点对称的直线。 由上即可判断…

不小心删除了文件能恢复吗 误删除文件怎么找回

电脑是我们平时工作或者生活、学习中使用频率非常高的电子设备&#xff0c;已经成为了我们日常生活中不可或缺的一部分。删除文件是电脑使用过程中常见的一种操作&#xff0c;因为电脑的储存空间是有限的&#xff0c;我们需要对电脑数据进行清理&#xff0c;避免电脑储存空间占…

视觉检测相比于人工目视检测有哪些优势

技术的发展可以给我们带来好的结果。 是其中之一。 这在现代工业生产中非常常见。 视觉检测设备可以更好地检测生产中的错误和产品质量问题&#xff0c;提高工业生产的效率和自动化水平&#xff0c;提高工业生产的准确性&#xff0c;加快工作进度&#xff0c;节约时间&#xff…

docker too many open files解决方式

1&#xff1a;问题描述 今天在环境上执行docker ps命令失败&#xff0c;如下提示 [rootcontrol02 ~]# docker ps -a lgrep nginx Cannot connect to the Docker daemon at unix:///var/run/docker.sock, Is the docker daemon running?2&#xff1a;查看节点docker状态 看信…

【Arduino 和 HC-12 远程无线通信模块】

【Arduino 和 HC-12 远程无线通信模块】 1. 概述2. HC-12 无线通信模块3. Arduino 和 HC-123.1 原理图3.2 示例 01 – Arduino 代码3.3 AT 命令:3.4 例子 023.5 代码说明:4. HC-12 无线通信:使用加速度计的步进电机控制4.1 原理图4.2 代码说明:1. 概述 在本Arduino教程中,…

Web 开发的一些常用基础——HTTP请求、响应、Cookies、Session

HTTP 请求 进入浏览器的开发者模式下的 Network 监听组件&#xff0c;访问百度 https://www.baidu.com/&#xff0c;输入该 URL 后回车&#xff0c;观察这个过程中发生了怎样的网络请求&#xff1a; 请求&#xff0c;由客户端向服务端发出&#xff0c;可以分为 4 部分内容&…

基于DSP+FPGA的多轴运动控制平台(一)硬件设计

2实验平台总体方案与硬件设计 2.1.1 实验平台的功能需求分析 针对便于多轴运动控制技术的研究&#xff0c;培养此方面技术的人才&#xff0c;实验平台应能 对多轴运动实现高速高精度的控制效果&#xff0c;同时保证系统开放性和兼容多种算法及 参数的运行。 实验过程契合实际工…

4.16--计算机网络之HTTP篇之常见面试题篇--(复习+深入)---好好沉淀,加油呀

1.HTTP 基本概念 1.HTTP 是什么&#xff1f; HTTP 是超文本传输协议 HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。 「HTTP 是用于从互联网服务器传输超文本到本地浏览器的协议」&#xff0c;这种说法正确吗…

Android -- OkHttp的简单使用和封装

OkHttp的封装 由于是封装我们可以吧OKHttp和Gson给结合起来&#xff0c;那么我们在gradle文件添加以下的依赖 1 2 3 compile "com.squareup.okhttp:okhttp:2.4.0" compile com.squareup.okio:okio:1.5.0 compile "com.google.code.gson:gson:2.8.0" ①Ca…

Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用 (April 2023)

适用于 Android™️ 的 Windows 子系统&#xff0c;2023 年 4 月更新 (April 2023) 请访问原文链接&#xff1a;https://sysin.cn/blog/wsa/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Windows 11 上适用于 Android™ 的 …

在Windbg中设置断点追踪打开C++程序远程调试开关的模块

目录 1、Windbg动态调试 2、在Windbg中设置断点 2.1、在函数入口处设置断点 2.2、在函数内部某一行上设置断点 3、设置断点跟踪对打开远程调试开关接口的调用 3.1、编写演示代码 3.2、在Windbg中设置调用SetRemoteDebugOn接口的断点进行跟踪 4、最后 VC常用功能开发汇总…

这一次,吃了Redis的亏,也败给了GPT

关注【离心计划】&#xff0c;一起离开地球表面 背景 组内有一个系统中有一个延迟任务的需求&#xff0c;关于延迟任务常见的做法有时间轮、延迟MQ还有Redis Zset等方案&#xff0c;关于时间轮&#xff0c;这边小苏有一个大学时候做的demo&#xff1a; https://github.com/JA…