相对与绝对布局:悬浮的提示框页面

2024-06-15 06:28

本文主要是介绍相对与绝对布局:悬浮的提示框页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

任务描述

相关知识

HTML和CSS基础:

盒子模型:

定位:

伪类:

编程要求


任务描述

在本关中,你需要创建一个简单的HTML页面,其中包括一个按钮。当鼠标悬停在按钮上时,会显示一个浮动的提示框(tooltip),提示框的样式和位置需要按照提供的CSS样式来设计。

完成任务后之后,基本页面效果如下:

相对与绝对布局

相关知识

HTML和CSS基础:

HTML:用于创建网页结构按钮(button)元素

HTML页面结构如下:

html<!DOCTYP
<html> <!-- 定义HTML5文档类型 -->
<html>
<head><title>相对与绝对布局</title><meta charset="UTF-8"><link rel="stylesheet" href="touge.css">
</head>
<body>
<div class="container"><button class="trigger">Hover me for a tooltip</button> <!-- 按钮触发显示tooltip --><div class="popup">This is a tooltip!</div> <!-- tooltip内容 --> </div>
</body>
</html>

CSS 用于定义页面的样式,包括字体、颜色、内边距、外边距等。

CSS页面结构如下:

.trigger {background-color: #3498db; /* 设置背景颜色为蓝色 */color: #fff; /* 设置文字颜色为白色 */padding: 10px 20px; /* 设置内边距 */border: none; /* 移除边框 */cursor: pointer; /* 设置鼠标指针样式为手型 */
}.popup {display: none; /* 默认隐藏弹出框 */position: absolute; /* 设置绝对定位 */background-color: #fff; /* 设置背景颜色为白色 */border: 1px solid #ccc; /* 设置边框 */padding: 10px; /* 设置内边距 */width: 200px; /* 设置宽度为200像素 */box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); /* 添加阴影效果 */z-index: 1; /* 设置堆叠顺序 */top: 100%; /* 位于触发元素下方 */left: 50%; /* 位于触发元素水平居中 */transform: translateX(-50%); /* 水平居中 */
}.trigger:hover + .popup {display: block; /* 鼠标悬停时显示弹出框 */
}

盒子模型:

  • padding:元素内容与边框之间的空间。
  • border:边框样式,可以设置边框的宽度、样式和颜色。
  • width:元素的宽度。
  • box-shadow:创建元素的阴影效果。

定位:

  • position: relative:设置元素相对定位,相对于其正常位置进行定位。
  • position: absolute:设置元素绝对定位,相对于最近的已定位祖先元素进行定位。
  • z-index: 设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。注意:z-index只能用在被定位的元素上。

伪类:

  • :hover:应用于元素,当鼠标悬停在该元素上时应用样式。

编程要求

请仔细阅读右侧代码,结合相关知识,在 Begin-End区域内进行代码补充,完成CSS对页面的悬浮提示框页面设计。样式要求为:

  • 悬浮框(.popup)设置为隐藏。
  • 悬浮框(.popup)的定位(position)设置为绝对定位(absolute);
  • 悬浮框(.popup)的堆叠顺序(z-index)设置为 1。
  • 使用相邻兄弟选择器 (+)实现鼠标在按钮上悬停时显示提示框(display)。
<!DOCTYPE html> <!-- 定义HTML5文档类型 -->
<html><head><title>相对与绝对布局</title><meta charset="UTF-8"><style>body {font-family: Arial, sans-serif; /* 设置字体样式为Arial或sans-serif */padding: 20px; /* 设置页面内边距为20像素 */}.container {position: relative; /* 设置相对定位 */width: 300px; /* 设置容器宽度为300像素 */margin: 0 auto; /* 设置外边距使其水平居中 */}.trigger {background-color: #3498db; /* 设置背景颜色为蓝色 */color: #fff; /* 设置文字颜色为白色 */padding: 10px 20px; /* 设置内边距 */border: none; /* 移除边框 */cursor: pointer; /* 设置鼠标指针样式为手型 */}/* ******************** BEGIN ******************** */.popup {display:none ; position:absolute ; z-index:1 ; background-color: #fff; /* 设置背景颜色为白色 */border: 1px solid #ccc; /* 设置边框 */padding: 10px; /* 设置内边距 */width: 200px; /* 设置宽度为200像素 */box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); /* 添加阴影效果 */            top: 100%; /* 位于触发元素下方 */left: 50%; /* 位于触发元素水平居中 */transform: translateX(-50%); /* 水平居中 */}.trigger:hover + .popup {display:block ; }/* ******************** END ******************** */</style></head><body><div class="container"><button class="trigger">Hover me for a tooltip</button> <!-- 按钮触发显示tooltip --><div class="popup">This is a tooltip!</div> <!-- tooltip内容 --></div></body>
</html>

这篇关于相对与绝对布局:悬浮的提示框页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062670

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Apache Tiles 布局管理器

陈科肇 =========== 1.简介 一个免费的开源模板框架现代Java应用程序。  基于该复合图案它是建立以简化的用户界面的开发。 对于复杂的网站,它仍然最简单,最优雅的方式来一起工作的任何MVC技术。 Tiles允许作者定义页面片段可被组装成在运行一个完整的网页。  这些片段,或Tiles,可以用于为了降低公共页面元素的重复,简单地包括或嵌入在其它瓦片,制定了一系列可重复使用

Weex入门教程之3,使用 Vue 开发 Weex 页面

环境安装 在这里简略地介绍下,详细看官方教程 Node.js 环境 Node.js官网 通常,安装了 Node.js 环境,npm 包管理工具也随之安装了。因此,直接使用 npm 来安装 weex-toolkit。 npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化