css计算函数 scalc 微信小程序_面试问题总结

1、响应式布局

一、相对长度单位。 其长度单位会随着它的参考值的变化而变化。

px,像素

em,元素的字体高度

%,百分比

rem,根元素的font-size

vm,视窗宽度,1vw=视窗宽度的1%

vh,视窗高度,1vh=视窗高度的1%

二、如何实现移动端字体大小屏幕自适应,百分比方法的缺点,rem的作用

(1)用媒体查询+rem

@media only screen and (min-device-width: 320px)and (-webkit-min-device-pixel-ratio: 2) {

//针对iPhone 4, 5c,5s, 所有iPhone6的放大模式,个别iPhone6的标准模式

html{font-size:10px;}

}

@media only screen and (min-device-width: 375px)and (-webkit-min-device-pixel-ratio: 2) {

//针对大多数iPhone6的标准模式

html{font-size:12px;}

}

@media only screen and (min-device-width: 375px)and (-webkit-min-device-pixel-ratio: 3) {

//针对所有iPhone6+的放大模式

html{font-size:16px;}

}

@media only screen and (min-device-width:412px) and (-webkit-min-device-pixel-ratio: 3) {

//针对所有iPhone6+的标准模式,414px写为412px是由于三星Nexus 6为412px,可一并处理

html{<20px>

}

(2)js+rem

按照设计稿的宽去设置一个合适的rem ,配合js查询屏幕大小来改变html的font-size,从而达到适配各种屏幕的效果

(function (doc, win) {

var docEl = doc.documentElement,

resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',

recalc = function () {

var clientWidth = docEl.clientWidth;
window.innerWidth>max ? window.innerWidth : max;

if (!clientWidth) return;

docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';

};

if (!doc.addEventListener) return;

win.addEventListener(resizeEvt, recalc, false);

doc.addEventListener('DOMContentLoaded', recalc, false);

})(document, window);

//这个方法就是在监听屏幕的宽度,然后根据不同的屏幕做出反应

//orientationchange :检测屏幕发生反转时,就是是横屏还是竖屏时

//clientWidth :就是设备的宽度

//docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'; 核心就是这句设置根元素的字体大小是clientWidth/320*20

//document.documentElement.clientWidth 屏幕宽度

(3)CSS3的计算calc和vw单位

calc()的运算规则

使用“+”、“-”、“*” 和 “/”四则运算;

可以使用百分比、px、em、rem等单位;

可以混合使用各种单位进行计算;

表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;

表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。

.elm {

/*Firefox*/

-moz-calc(expression);

/*chrome safari*/

-webkit-calc(expression);

/*Standard */

calc();

}

VW:相对于视口的宽度。视口被均分为100单位的vw,也就是说在375宽度的屏幕中,1vw等于3.75px,320的屏幕中,1vw等于3.2px。这样的话对于不同尺寸的屏幕有了一个统一的单位来进行衡量,这时我们再结合rem,即对HTML设置字体大小font-size:calc(100vw/18.75)——这是以iPhone6的尺寸为设计图时做的计算,此时在iPhone6尺寸的页面中1rem为20px;

2、两栏布局,一侧固定一侧自适应的几种方式

4、浏览器的内核有哪些

1、IE浏览器内核:Trident内核,也被称为IE内核;

2、Chrome浏览器内核:Chromium内核 → Webkit内核 → Blink内核;

3、Firefox浏览器内核:Gecko内核,也被称Firefox内核;

4、Safari浏览器内核:Webkit内核;

5、Opera浏览器内核:最初是自主研发的Presto内核,后跟随谷歌,从Webkit到Blink内核;

5.session.storage,local.storage,cookie的区别

都是用来数据储存的,cookie只能储存好像4K左右的数据,可以设置数据的过期时间,并且每次发送请求的时候都会将数据提供给后台。session和local都可以储存5M的数据,session.storage主要是可以保存在浏览器中实现多个页面互相访问的数据,但是一旦浏览器关闭数据就会被销毁。local.storage可以永久的保存在浏览器上,浏览器关闭后也可以存在,只要不手动删除就会一直在。一般存储都是存用户登录时候的数据,比如头像、用户名还有token这些,用户要退出登录的话就用clear清空数据缓存就好了

6.VUE数据双向绑定原理

vue数据双向绑定原理简单来说就是数据劫持,按照我的理解就是我看着你,你变了,我也跟着变。具体实现的话是es6提供了Object.defineProperty()这个属性来实现数据劫持的,这个属性中有两个方法,一个是get一个是set,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。发布者订阅者模式大概就是一个监听器Observer是用来监听所有的属性,当数据有变动的话就通知给订阅者,然后订阅者Watcher收到通知后执行相应的函数从而更新视图,解析器Compile进行编译解析初始化视图,并绑定更新函数给订阅者

7、工作中的增删改查是哪些方法

8、Vue的生命周期有哪些,页面挂载之前beforecreated到mounted使用的区别

beforeCreate(创建前),created(创建后),

beforeMount(载入前),mounted(载入后),

beforeUpdate(更新前),updated(更新后),

beforeDestroy(销毁前),destroyed(销毁后)

beforecreated:el 和 data 并未初始化

created:完成了 data 数据的初始化,el没有

beforeMount:完成了 el 和 data 初始化

mounted

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 22.04 是一个未来版本的操作系统,目前还没有正式发布。不过,如果您是想在 Ubuntu 20.04 中使用 Python 写入 LibreOffice Calc,可以按照以下步骤进行: 1. 安装 LibreOffice Calc:在终端中输入以下命令即可安装: ``` sudo apt-get update sudo apt-get install libreoffice-calc ``` 2. 安装 Python 的 uno 包:在终端中输入以下命令即可安装: ``` sudo apt-get install python3-uno ``` 3. 编写 Python 代码:以下是一个简单的示例代码,演示了如何使用 Python 将数据写入 LibreOffice Calc: ```python import uno from com.sun.star.beans import PropertyValue def write_data_to_calc(data): # 创建 UnoConnector 对象 localContext = uno.getComponentContext() resolver = localContext.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", localContext) ctx = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext") smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) # 打开 LibreOffice Calc calc_doc = desktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, ()) sheet = calc_doc.getSheets().getByIndex(0) # 将数据写入到单元格中 for i, row in enumerate(data): for j, cell in enumerate(row): sheet.getCellByPosition(j, i).setValue(cell) # 保存文档并关闭 Calc props = PropertyValue("FilterName", 0, "calc8") calc_doc.storeToURL("file:///path/to/file.ods", tuple((props,))) calc_doc.dispose() data = [[1,2,3],[4,5,6],[7,8,9]] write_data_to_calc(data) ``` 以上代码中,我们使用 uno 包连接到 LibreOffice Calc,然后将数据写入到 Calc 的单元格中。注意修改 `file:///path/to/file.ods` 为实际的文件路径。 希望这个回答能够帮到您。下面是一些相关问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值