JS中如何正确的使用有变量的calc()?
2018-03-19 21:59
417 查看
在说JS中的calc()方法前,我们先说说使用calc()的一定要注意(无论在js中还是css中)。
①使用calc()动态运算时,要注意加减运算时,符号前后要加空格。乘除运算则不需要。例如:
在写js中,我们可能会碰到需要某个板块或者某样东西居中,但是如果我们直接使用
我们通过这张图片可以看到,黑色这块板块他的左边是居中的,但是整体来讲他是偏右的,不符合我们的期望,这是为什么呢?
因为我们用的margin-left或者left都是以这个板块或者这个东西的左边界作为参考标准,居中的也是使左边界居中,而没有考虑到这个板块的长度。
所以我们在js中,如果我们有动态获取某个板块的宽度并使这个板块居中的需求的话,
这样子就可以正确的使用calc()了!
①使用calc()动态运算时,要注意加减运算时,符号前后要加空格。乘除运算则不需要。例如:
width:calc(100% - 200px); width:calc(50%*200px);
在写js中,我们可能会碰到需要某个板块或者某样东西居中,但是如果我们直接使用
margin-left:50%;或者
left:50%;的话,我们一般会得到这个板块离中间偏左或者偏右。
我们通过这张图片可以看到,黑色这块板块他的左边是居中的,但是整体来讲他是偏右的,不符合我们的期望,这是为什么呢?
因为我们用的margin-left或者left都是以这个板块或者这个东西的左边界作为参考标准,居中的也是使左边界居中,而没有考虑到这个板块的长度。
所以我们在js中,如果我们有动态获取某个板块的宽度并使这个板块居中的需求的话,
let div = document.getElementsByClassName("div")[0]; //获取div标签
//如果没有变量的话,我们可以直接, div.style.left="calc(50% - 50px)"; //因为我们需要动态获取长度,所以会有变量,如果我们这样 div.style.left="calc(50% - div2.clientWidth/2)"; //这样是显然不行的,因为这样的话会把div2.clientWidth当成字符串解析!
//所以我们可以用拼凑的方法 div.style.marginLeft = "calc(50% -"+div.clientWidth/2+"px)"; //这里需要注意,用加减号的话需要前后留空格,并且这里的宽度之所以要除以2是因为我们要的中间是板块的中间(也就是这个宽度的一半)
这样子就可以正确的使用calc()了!
相关文章推荐
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- 在头文件中定义变量以及static变量意味着什么?全局变量要如何正确使用?关键字extern要怎么用?
- js刷新页面时不要刷新定时器或者js刷新页面时如何保存变量 ,禁止使用cookie
- js如何把字符串转为变量使用,以及js下将字符串当函数去执行的方法
- 如何正确使用@synthesize(在有了自动合成属性实例变量之后,@synthesize还有哪些使用场景?)
- 页面内定义的js变量,如何在引入的JS文件中使用
- js中函数、变量如何在C#中使用?C#中函数、变量如何在js中使用?
- FLEX到底如何正确的使用全局变量
- 83 js 如何正确传递DOM元素的指针 选择器内参数为变量 论js函数的简化 seajs用法
- 如何正确使用环境变量LD_LIBRARY_PATH
- 使用匿名函数在回调函数中正确访问JS循环变量
- 使用匿名函数在回调函数中正确访问JS循环变量
- 如何在html结构标签中使用js 变量 生成可变化的 title标题?
- js中如何定义和使用全局变量
- js(replace)正则表达式中如何使用变量?
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- Java中如何正确使用字体编码
- 如何在IE中正确使用MSXML
- atlas tip - 如何使用script manager引用js文件