bootstrap移动端时导航栏从左边滑出/弹出
2023-03-05 01:39:06 68
Jquery Bootstrap
bootstrap移动端时导航栏从左边滑出/弹出,直接复制以下代码看结果。 ```html <!doctype html> <html lang="zh-CN"> <head> <!-- 必须的 meta 标签 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap 的 CSS 文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <title>导航栏从左边滑出</title> </head> <style> @media (max-width: 768px) { .navbar-collapse { position: absolute; top: 54px; left: 0; padding-left: 15px; padding-right: 15px; padding-bottom: 15px; width: 50%; } .navbar-collapse.collapsing { height: auto; -webkit-transition: left 0.3s ease; -o-transition: left 0.3s ease; -moz-transition: left 0.3s ease; transition: left 0.3s ease; left: -100%; } .navbar-collapse.show { background-color: aqua; left: 0; -webkit-transition: left 0.3s ease-in; -o-transition: left 0.3s ease-in; -moz-transition: left 0.3s ease-in; transition: left 0.3s ease-in; } } </style> <body> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse " id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Features</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul> </div> </nav> <!-- JavaScript 文件是可选的。从以下两种建议中选择一个即可! --> <!-- 选项 1:jQuery 和 Bootstrap 集成包(集成了 Popper) --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <!-- 选项 2:Popper 和 Bootstrap 的 JS 插件各自独立 --> <!-- <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script> --> </body> </html> ```
常用正则表达式大全,值得收藏。
2022-10-17 10:45:33 240
正则表达式
记录了一些常用的正则表达式,为了自己学习,也为了分享给大家,欢迎收藏。 | 字符 | 写法 | 意义 | | - | - | - | | . | "." | 代表任何一个字符 | | \d | "\\d" | 代表0~9的任何一个数字 | | \D | "\\D" | 代表任何一个非数字字符 | | \s | "\\s" | 代表任空格类字符,‘\t’、‘\n’、‘\x0B’、‘\f’、‘\r’ | | \S | "\\S" | 代表非空格类字符 | | \w | "\\w" | 代表可用于标识符的字符(不包括美元符号) | | \W | "\\W" | 代表不能用于标识符的字符 | | 字符 | 意义 | | - | - | | [abc] | 代表a、b、c中的任何一个 | | [^abc] | 代表除了a、b、c以外的任何字符 | | [a-zA-Z] | 代表英文字母中的任何一个 | | [a-d] | 代表a~d中的任何一个 | | [a-d[m-p]] | 代表a~d或m~p中的任何字符(并) | | [a-z&&[def]] | 代表d、e、f中的任何一个(交) | | [a-f&&[^bc]] | 代表a、d、e、f(差) | ```cmd 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ ``` ```cmd 1 中文:^[\u4E00-\u9FA5]{0,}$ 2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 3 长度为3-20的所有字符:^.{3,20}$ 4 由26个英文字母组成的字符串:^[A-Za-z]+$ 5 由26个大写英文字母组成的字符串:^[A-Z]+$ 6 由26个小写英文字母组成的字符串:^[a-z]+$ 7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 8 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$ 9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$ 10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$ 11 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+ 12 禁止输入含有~的字符:[^~\x22]+ ``` ``` cmd 1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 4 手机号码:^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$ (由于工信部放号段不定时,所以建议使用泛解析 ^([1][3,4,5,6,7,8,9])\d{9}$) 5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$ 6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7} 7 18位身份证号码(数字、字母x结尾):^((\d{18})|([0-9x]{18})|([0-9X]{18}))$ 8 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 9 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$ 10 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 11 日期格式:^\d{4}-\d{1,2}-\d{1,2} 12 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$ 13 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$ 14 中文字符的正则表达式:[\u4e00-\u9fa5] 15 空白行的正则表达式:\n\s*\r (可以用来删除空白行) 16 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力) 17 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式) 18 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始) 19 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字) 20 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用 ```
Python获取当前时间日期,时间格式化以及常用的时间操作
2022-09-20 15:21:37 361
Python
## 操作日期和时间需要用到的包:time 、datetime ### 导包 ```py import time import datetime ``` ### 当前时间 ```py now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(now) ``` 输出: >2022-09-20 14:55:28 ```py now = time.strftime("%Y-%m-%d %H:%M:%S") print(now) ``` >2022-09-20 14:58:23 ### 当前日期 ```py now = time.strftime("%Y-%m-%d") print(now) ``` >2022-09-20 ### 前一天和后一天 ```py # 前一天 ago = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") print(ago) # 后一天 back = (datetime.datetime.now() - datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S") print(back) ``` >2022-09-19 15:07:38 2022-09-21 15:07:38 ### 前一小时和后一小时 ```py # 前一小时 ago = (datetime.datetime.now() - datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S") print(ago) # 后一小时 back = (datetime.datetime.now() - datetime.timedelta(hours=-1)).strftime("%Y-%m-%d %H:%M:%S") print(back) ``` > 2022-09-20 14:06:47 2022-09-20 16:06:47 datetime.timedalta() 此方法还可以传: days、seconds、microseconds、milliseconds、minutes、hours、weeks等等 ### 日期格式化符号使用 ```py # 当前周 week = time.strftime("%a") print(week) ``` 格式化符号 | 符号 | 说明 | | - | - | | %y | 两位数的年份表示(00-99) | | %Y | 四位数的年份表示(000-9999) | | %m | 月份(01-12) | | %d | 月内中的一天(0-31) | | %H | 24小时制小时数(0-23) | | %I | 12小时制小时数(01-12) | | %M | 分钟数(00=59) | | %S | 秒(00-59) | | %a | 本地简化星期名称 | | %A | 本地完整星期名称 | | %b | 本地简化的月份名称 | | %B | 本地完整的月份名称 | | %c | 本地相应的日期表示和时间表示 | | %j | 年内的一天(001-366) | | %p | 本地A.M.或P.M.的等价符 | | %U | 一年中的星期数(00-53)星期天为星期的开始 | | %w | 星期(0-6),星期天为星期的开始 | | %W | 一年中的星期数(00-53)星期一为星期的开始 | | %x | 本地相应的日期表示 | | %X | 本地相应的时间表示 | | %Z | 当前时区的名称 |