你知道吗?

本文探讨了前端开发中常见的布局技巧,如元素居中方法、iframe的优缺点、浏览器兼容性问题,以及事件处理、Ajax跨域等高级主题,旨在帮助开发者提升技能。

1.如何居中一个浮动元素
a.给浮动的元素添加个外壳,让外壳的宽度等于浮动元素,然后margin:0 auto;
b.父容器float:left ;position:relative;left:50%;
浮动元素:float:left ;position:relative;left:-50%
c.浮动父容器:position:relative
浮动元素:position:absolute;margin:0 auto ;left:0;right:0;top:0;bottom:0

2.浮动元素垂直居中
父容器:display:table-cell;vertical-align:middle;

3.iframe优缺点
iframe作为页面嵌入的框架,
优点:可解决第三方内容如广告加载缓慢的问题,页面只要一部分变化,无需重新加载全面页面,提高了页面加载速度
缺点:会阻塞onload,不利于搜索引擎解析,设备兼容性不好,浏览器的回退按钮不可以

4.常见的浏览器兼容性问题
(1)前缀不一样
(2)margin,padding
(3)ie9以下不能使用opacity
(4)事件绑定和监听写法不一样
(5)IE下,event对象有x,y属性,但是没有pageX,pageY属性
Firefox下,event对象有pageX,pageY属性,但是没有x,y属性

5.阻止冒泡和默认事件
阻止冒泡:w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
默认事件:w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;

6.解决Ajax跨域问题
(1)jsonp:动态的创建script
(2)node设置中间代理跨域
(3)nginx设置反向代理,将请求分发给其他服务器
(4)后端设置安全域名

7.检测浏览器版本版本有哪些方式?
根据 navigator.userAgent // UA.toLowerCase().indexOf(‘chrome’)
根据 window 对象的成员 // ‘ActiveXObject’ in window

8.offsetWidth/offsetHeight,clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别
offsetWidth/offsetHeight 返回值包含 content + padding + border,效果与 e.getBoundingClientRect()相同
clientWidth/clientHeight 返回值只包含 content + padding,如果有滚动条,也不包含滚动条
scrollWidth/scrollHeight 返回值包含 content + padding + 溢出内容的尺寸

9.js执行机制
在这里插入图片描述
在这里插入图片描述

10.BOM(browser object model)
location(url):
在这里插入图片描述
navigator:
在这里插入图片描述
在这里插入图片描述

目前 **没有官方或广泛认可的名为 `aktools` 的独立开源项目**,尤其是在与 [AkShare](https://github.com/jindaxiang/akshare) 相关的生态中。 不过,根据社区使用习惯和命名规则: > ✅ 很可能你提到的 `aktools` 是指一些开发者在使用 AkShare 时,**自行封装的工具模块集合**,用于增强 AkShare 的功能性、易用性或适配特定场景(如回测、数据清洗、可视化等)。 --- ### 🔍 什么是 "aktools"?(非官方定义) 虽然 GitHub 上不存在一个主流的 `aktools` 库,但我们可以推测它可能有以下几种含义: #### 1. **用户自定义工具包(常见)** 很多使用 AkShare 做量化分析的人会创建一个名为 `aktools.py` 或 `aktools` 包的本地模块,用来封装常用功能。例如: ```python # aktools/data.py - 自定义工具示例 import akshare as ak import pandas as pd def get_stock_daily(symbol: str, start_date: str, end_date: str): """统一接口获取前复权日线""" try: df = ak.stock_zh_a_daily(symbol=f"sh{symbol}" if symbol.startswith('6') else f"sz{symbol}", adjust="qfq") df['date'] = pd.to_datetime(df['date']) df = df.set_index('date') return df[start_date:end_date] except Exception as e: print(f"获取数据失败: {e}") return None def calc_returns(df): """计算收益率""" df['return'] = df['close'].pct_change() return df ``` 然后在主程序中这样用: ```python from aktools.data import get_stock_daily, calc_returns data = get_stock_daily("600519", "2023-01-01", "2024-01-01") print(calc_returns(data).tail()) ``` 👉 这类个人/团队内部使用的工具集常被称为 `aktools` —— 并非第三方库,而是“**基于 AkShare 的工具箱**”。 --- #### 2. **GitHub 上的小众私有仓库** 有些人会在 GitHub 创建名为 [`aktools`](https://github.com/search?q=aktools+akshare) 的私有或未维护项目,用于组织自己的研究工作流。但由于缺乏文档、star 数少、更新不频繁,尚未形成生态影响力。 你可以搜索查看是否存在相关项目: 🔗 [https://github.com/search?q=aktools+akshare](https://github.com/search?q=aktools+akshare) --- #### 3. **误听 / 拼写错误?可能是其他库** | 可能混淆的名字 | 实际内容 | |---------------|--------| | `akshare` | ✅ 主体库,金融数据接口 | | `akshare-tools` | ❌ 无知名项目 | | `astock` | 类似 AkShare 的股票数据接口(已停更) | | `qstock` | 新兴 Python 金融库,部分功能类似 AkShare | --- ### 🛠 推荐:自己构建一个实用的 `aktools` 工具箱 下面是一个推荐结构,帮助你搭建属于自己的 `aktools` 模块: ``` aktools/ ├── __init__.py ├── data.py # 数据获取(封装 akshare) ├── utils.py # 工具函数(日期处理、代码补全等) ├── plot.py # 可视化 ├── backtest.py # 简单回测框架 └── cache.py # 数据缓存机制 ``` #### 示例:`aktools/utils.py` ```python # utils.py def fix_symbol(symbol: str) -> str: """补全股票代码为 sh/sz 前缀""" if symbol.startswith('6'): return 'sh' + symbol elif symbol.startswith('0') or symbol.startswith('3'): return 'sz' + symbol else: return symbol ``` #### 示例:`aktools/data.py` ```python # data.py import akshare as ak from .utils import fix_symbol def get_price(symbol: str, start: str = None, end: str = None, adjust: str = "qfq"): symbol = fix_symbol(symbol) df = ak.stock_zh_a_daily(symbol=symbol, adjust=adjust) df['date'] = pd.to_datetime(df['date']) df = df.set_index('date') if start: df = df[df.index >= start] if end: df = df[df.index <= end] return df[['open', 'high', 'low', 'close', 'volume']] ``` 这样你就拥有了一个简洁、可复用的 `aktools`! --- ### ✅ 如何判断某个 `aktools` 是否可靠? 如果你发现某个公开的 `aktools` 项目,请检查以下几点: 1. 是否有清晰的 README 和文档? 2. 最近一次提交时间是否较新?(避免废弃项目) 3. 是否依赖最新版 AkShare? 4. 是否有单元测试或示例代码? 5. GitHub Star 数量和 Issues 活跃度 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值