前端技巧汇总

保持盒子在中间位置:

中间盒子设置位绝对定位

上下左右都设置为0

margin为auto中间

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/login.css">
</head>
<body><div class="head"><div class="main"></div></div>
</body>
</html>
html,
body {height: 100%;
}.head {width: 100%;height: 100%;background-color: pink;
}.head .main {position: absolute;left: 0;top: 0;right: 0;bottom: 0;width: 300px;height: 200px;margin: auto;background-color: #fff;border-radius: 10px;
}

鼠标经过显示多选项:

pull 用相对定位

pull-ul 用绝对定位 不占位置

采用:
<ul class="left fl"><li class="pull"><a href="#">移动客户端</a><ul class="pull-ul"><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li><li><a href="#">新浪微博</a></li></ul></li>
</ul>

两栏布局(数据单):

页面实现贴边,不会因为放大而留有空隙

设置整个大盒子

分为头部和主体部分,上下各百分之几

主体部分左边设置宽度和高度,右边仅设置高度

左边设置浮动,右边内边距为左边宽度,才能将字体显示出来

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/t_index.css">
</head>
<body><div class="main"><div class="head"></div><div class="container"><div class="left"></div><div class="right">123455</div></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: pink;
}.main .head {height: 10%;background-color: purple;
}.main .container {height: 90%;background-color: aquamarine;
}.main .container > .left {float: left;width: 200px;height: 100%;background-color: bisque;
}.main .container > .right {padding-left: 200px;height: 100%;background-color: blue;
}

三栏布局——普通

设置个主盒子占整个页面

左右栏高度占整个页面高度,设置为绝对定位,注意,定位距离顶部top为0

左右盒子定位各往两侧定位

中间盒子不设置宽度,内边距为左右盒子的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_1.css">
</head>
<body><div class="main"><div class="left"></div><div class="container"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: aqua;
}.main > .left,
.main > .right {position: absolute;top: 0;width: 200px;height: 100%;background-color: red;
}.left {left: 0;
}
.right {right: 0;
}
.main > .container {padding: 0 200px;height: 100%;background-color: aquamarine;
}

三栏布局——圣杯布局

中间盒子,将主体写在左右盒子前面

三个盒子都需设置为左浮动,中间盒子需设置宽度和高度100%

将做盒子左外边距设置为负的100%,右边盒子设置为负的自身宽度

总体左右外边距为左右两盒子的宽度

对左右盒子设置相对定位

分别向左右移动自身的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_2.css">
</head>
<body><div class="main"><div class="container">121121414</div><div class="left"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html, 
body {height: 100%;
}.main {height: 100%;margin: 0 200px;
}.main .container {float: left;width: 100%;height: 100%;background-color: purple;
}.main .left {float: left;height: 100%;width: 200px;background-color: bisque;margin-left: -100%;position: relative;left: -200px;
}.main .right {float: left;height: 100%;width: 200px;background-color: blue;margin-left: -200px;position: relative;right: -200px;
}

三栏布局——双飞翼布局

中间盒子,将主体写在左右盒子前面

三个盒子都需设置为左浮动,中间盒子需设置宽度和高度100%

将做盒子左外边距设置为负的100%,右边盒子设置为负的自身宽度

在中间盒子内部在设置个div

左右边距为左右盒子的宽度

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./css/r_index_3.css">
</head>
<body><div class="main"><div class="container"><div class="conf">1123114</div></div><div class="left"></div><div class="right"></div></div>
</body>
</html>
* {margin: 0;padding: 0;
}html,
body {height: 100%;
}.main {height: 100%;background-color: antiquewhite;
}.main .container {float: left;width: 100%;height: 100%;background-color: aqua;
}.main .container .conf {margin-left: 200px;margin-right: 200px;
}.main .left {float: left;width: 200px;height: 100%;background-color: aquamarine;margin-left: -100%;
}.main .right {float: left;width: 200px;height: 100%;background-color: blue;margin-left: -200px;
}

拖动的模态框:

1点击弹出层,会弹出模态框,并且显示灰色半透明的遮罩层

​ 2:点击关闭按钮,,关闭模态框 并且关闭灰色半透明遮罩层

​ 3:鼠标放到模态框最上面一行,可以按住鼠标拖拽模态框在页面中移动

​ 4:鼠标松开,可以停止拖动模态框移动

​ 在页面中拖拽的原理:

​ 鼠标按下并且移动,之后松开鼠标

​ 鼠标按下mousedown 鼠标移动 mousemove 鼠标松开mouseup

​ 拖拽:鼠标移动的过程中,获取最新的值赋值给模态框的left和top值,模态框就可以跟着鼠标移动

​ 鼠标按下触发的事件源 是最上面一行, id=“title”

​ 鼠标的坐标-鼠标在盒子内 的坐标 就是模态框真正的位置

​ 鼠标按下 得到鼠标在盒子的坐标

​ 鼠标移动 设置模态框的位置 鼠标的坐标-鼠标在盒子内 的坐标 移动事件要写在按下事件里面

​ 鼠标松开 停止拖拽,让移动事件解除

var loginEle = document.querySelector('#login')
var mask = document.querySelector('.login-bg')var linkEle = document.querySelector('#link')var closeBtn = document.querySelector('#closeBtn')var title = document.querySelector('#title')// 1点击弹出层,会弹出模态框,并且显示灰色半透明的遮罩层
linkEle.addEventListener('click', function () {loginEle.style.display = 'block'mask.style.display = 'block'
})// 2:点击关闭按钮,,关闭模态框 并且关闭灰色半透明遮罩层
closeBtn.addEventListener('click', function () {loginEle.style.display = 'none'mask.style.display = 'none'
})// 1) 鼠标按下  获取鼠标在盒子内的坐标
title.addEventListener('mousedown', function (e) {var x = e.pageX - loginEle.offsetLeftvar y = e.pageY - loginEle.offsetTop// 2)鼠标移动, 鼠标的坐标-鼠标在盒子内 的坐标 就是模态框的left和top的值document.addEventListener('mousemove', move)function move(e) {loginEle.style.left = e.pageX - x + 'px'loginEle.style.top = e.pageY - y + 'px'}// 鼠标松开,移除移动事件document.addEventListener('mouseup', function () {document.removeEventListener('mousemove', move)})
})

jQuery实现五角星案例:

绑定鼠标进入事件,鼠标到其中一个位置,将本身变为实心的,并将之前的元素选取出来变为实心,当点击摸一个位置,给当前位置设置个类,当鼠标移除后,查询是否有这个类,有的话就把当前和前面的元素变为实心,没有的话就全部变成空心

$(function () {var wjx_none = '☆'var wjx_sel = '★'// 鼠标放上去当前的li和之前所有的li内容全部变为实心五角星  移开变为空心$('.comment li').on('mouseenter', function () {// 当前的变为实心// $(this).text(wjx_sel).prevAll('li').text(wjx_sel)// $(this).nextAll('li').text(wjx_none)// end()  结束之后再使用,相当于重新一行再次使用this$(this).text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none)})$('.comment li').on('mouseleave', function () {// current用来记录离开时的星星if ($('li.current').length === 0) {$('.comment li').text(wjx_none)} else {$('li.current').text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none)}})$('.comment li').on('click', function () {$(this).attr('class', 'current').siblings('li').removeAttr('class')})
})
<!-- ★ -->
<ul class="comment"><li></li><li></li><li></li><li></li><li></li>
</ul>

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

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

相关文章

三、AOP

文章目录 1. AOP&#xff08;概念&#xff09;2. AOP&#xff08;底层原理&#xff09;2.1 AOP 底层使用动态代理2.2 AOP&#xff08;JDK动态代理&#xff09; 3. AOP&#xff08;术语&#xff09;3.1 连接点3.2 切入点3.3 通知&#xff08;增强&#xff09;3.4 切面 4. AOP操作…

Element中el-table组件设置max-height右侧出现空白列的解决方法

之前就出现过这个情况&#xff0c;没理过&#xff0c;因为不影响啥除了不美观...但今天看着实在是难受&#xff0c;怎么都不顺眼(可能是我自己烦躁--) 试了很多网上的方法&#xff0c;都不得行&#xff0c;后面发现了这篇文章&#xff0c;解决了! 感谢&#xff01; Element中t…

深度学习:生成对抗网络(Generative Adversarial Network, GAN)

生成对抗网络&#xff08;Generative Adversarial Network, GAN&#xff09; 生成对抗网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;最初由Ian Goodfellow于2014年提出。这种模型框架通过让两个神经网络——生成器&#xff08;Generator&#xff09;和判别器…

SpringBoot人事系统:企业人才资源的智能管家

6系统测试 6.1概念和意义 测试的定义&#xff1a;程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为&#xff1a; 目的&#xff1a;发现程序的错误&#xff1b; 任务&#xff1a;通过在计算机上执行程序&#xff0c;暴露程序中潜在的错误。 另一个…

fastadmin 多商户模式下侧边栏跳转路径BUG

记录&#xff1a;仅作自己项目记录&#xff0c;在一个域名下部署多套项目时&#xff0c;若是多商户模式项目会出现跳转路径问题。 修改 \manystore\library\Auth.php 文件的 getSidebar 方法 // 1 改为&#xff1a; $v[url] isset($v[url]) && $v[url] ? $v[url] :…

霍尼C200系统CC-TUIO31通用输入输出模块电厂用

霍尼C200系统CC-TUIO31通用输入输出模块电厂用,CC-TUIO31技术参数,CC-TUIO31说明书,霍尼韦尔官网,霍尼韦尔代理商,Honeywell官网,Honeywell代理商, gnote: , titlecolor: , description: 易于维护&#xff1a;模块化设计&#xff0c;便于安装、维护和更换&#xff0c;减少停机时…

JavaSE

线程 1. 区分程序、进程、线程 程序&#xff1a;为实现某种功能&#xff0c;使用计算机语言编写的一系列指令的集合。 进程&#xff1a;是运行中的程序&#xff08;如运行中的原神&#xff09;进程是操作系统进行资源分配的最小单位。 线程&#xff1a;进程可以进一步细化为线…

斯坦福UE4 C++课学习补充25:AI感知组件

文章目录 一、引入感知组件并绑定委托二、优化角色旋转 一、引入感知组件并绑定委托 PawnSensingComponent是UE中用于感知其他 Pawn&#xff08;或 Actor&#xff09;存在的一个组件&#xff0c;常用于 AI 角色的视觉、听觉等感知功能。它为 AI 提供了基础的感知能力&#xff…

关于WPF(Windows Presentation Foundation)中Grid控件

本文将从Grid控件的基础概念开始&#xff0c;逐步深入探讨其特性、用法、实例代码&#xff0c;以及最佳实践。 1. WPF和布局简介 WPF是一种用于构建Windows桌面应用程序的UI框架&#xff0c;它通过XAML&#xff08;Extensible Application Markup Language&#xff09;使开…

PDF编辑不求人!4款高效工具,内容修改从此变得简单又快捷

咱们现在生活在一个数字时代&#xff0c;PDF文件可不就是工作、学习还有日常生活中经常要用的东西嘛。但遇到那些需要改动的PDF文件&#xff0c;是不是就觉得有点头疼啊&#xff1f; 因为传统的PDF文件真的不好编辑&#xff0c;这确实挺烦人的。不过呢&#xff0c;我今天要给你…

文本语义检索系统的搭建过程,涵盖了召回、排序以及Milvus召回系统、短视频推荐等相关内容

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下本文详细介绍了文本语义检索系统的搭建过程&#xff0c;涵盖了召回、排序以及Milvus召回系统的相关内容。通过使用PyTorch框架&#xff0c;我们提供了样例代码&#xff0c;以帮助读者更好地理解和实践。该系统具有广…

systemd实现seatunnel自动化启停

在 systemd 中,您可以通过配置服务单元文件来设置服务在失败或退出后自动重启。这对于确保关键服务在意外退出时能够自动恢复运行非常有用。下面是实现 systemd 自动重启服务的步骤: 通用操作 1. 创建或编辑服务单元文件 假设服务单元文件位于 /etc/systemd/system/my-ser…

深入解析Vue中的双向数据绑定机制

文章目录 一、双向数据绑定的概念单向绑定与双向绑定的区别双向绑定的实例 二、双向绑定的原理MVVM架构ViewModel的工作原理 三、Vue中的双向绑定实现双向绑定流程实现双向绑定的关键代码 一、双向数据绑定的概念 单向绑定与双向绑定的区别 单向绑定是将模型&#xff08;Mode…

VR全景摄影的拍摄和编辑软件推荐

随着虚拟现实技术的不断进步&#xff0c;VR全景摄影逐渐成为商业、娱乐和教育等多个领域中的重要工具。通过专业的设备与软件&#xff0c;摄影师能够创作出沉浸式的360度全景作品&#xff0c;为观众提供身临其境的视觉体验。在这篇文章中&#xff0c;我们将介绍VR全景摄影的相关…

C# 两个进程/exe通讯方式 两个应用程序通讯方式

C# 两个exe通讯方式 两个应用程序通讯方式 1. 命名管道&#xff08;Named Pipes&#xff09; 1.1. 概述 命名管道是一种用于在同一台机器或网络中不同进程之间进行双向通信的机制。它支持同步和异步通信&#xff0c;适用于需要高效数据传输的场景。 1.2. 特点 双向通信&am…

【vue+printJs】前端打印, 自定义字体大小, 自定义样式, 封装共享样式

效果示例 思维导图 目录 1,基本使用1, 依赖下载2, 页面导入3, 修改字体大小(可行但不推荐) 2, 自定义样式,字体大小1, 修改字体大小(推荐)2, 自定义样式3, 封装共享样式 3, 去除页面页脚内容4, 测试案例demo, 直接cv可用5, print-js的其他参数说明 1,基本使用 1, 依赖下载 …

MyBatis-Plus 之 typeHandler 的使用

一、typeHandler 的使用 1、存储json格式字段 如果字段需要存储为json格式&#xff0c;可以使用JacksonTypeHandler处理器。使用方式非常简单&#xff0c;如下所示&#xff1a; 在domain实体类里面要加上&#xff0c;两个注解 TableName(autoResultMap true) 表示自动…

学习之面试题:偏函数

偏函数&#xff08;Partial Function&#xff09;是 Python 中的一个实用工具&#xff0c;通常用于函数式编程中&#xff0c;可以固定一个函数的部分参数&#xff0c;从而生成一个新的函数。偏函数在 Python 中通常通过 functools.partial 实现。在面试中&#xff0c;考察偏函数…

无人驾驶打造“新丝路”,驭势科技在卡塔尔设立研发运营中心

在卡塔尔多哈的街头&#xff0c;除了身穿阿拉伯长袍的人群和悠闲的骆驼队伍之外&#xff0c;又将出现一道全新的风景线&#xff0c;那就是来自驭势科技的无人驾驶车。10月8日&#xff0c;在中关村京港澳青年创新创业中心的协助与对接下&#xff0c;驭势科技在卡塔尔科技园正式成…

<Project-8.1.1 pdf2tx-mm> Python 调用 ChatGPT API 翻译PDF内容 历程心得

原因 用ZhipuAI&#xff0c;测试用的PDF里&#xff0c;有国名西部省穆斯林&#xff0c;翻译结果返回 “系统检测到输入或生成内容可能包含不安全或敏感内容&#xff0c;请您避免输入易产生敏感内容的提 示语&#xff0c;感谢您的配合” 。想过先替换掉省名、民族名等&#xff…