浅谈前端CSS+JS逻辑

CSS简介:

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 [1] 

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。(来自百科)

关于SCSS,LESS与CSS差别

SCSS:

在这里,我们将讨论 CSS 和 SCSS 之间的主要区别。 SCSS 包括所有 CSS 功能和 CSS 中不可用的其他功能,使其成为开发人员使用它的强大替代方案。 CSS 是一种样式语言,用于样式化和创建网页。 虽然 SCSS 是 SASS 的一种特殊类型的文件,但它使用 Ruby 语言,该语言组合了浏览器的 CSS 样式表。 SCSS 包含高级和修改的功能。

写法上,SCSS子级选择器可以写在父级里面,只要父级标签不同,子级相同也不会同样式结构。比如 A下面的B的字体大小设置为28PX,C下面的B设置为18PX,他们两会相应的编辑其样式。

 写法:<style lang="scss"></style>

LESS介绍:

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。(官方介绍)

在bootsrap响应式布局里面,less的优势可见一斑,现在布局响应式最简单的就是less+css3完成,less提供了逻辑与运算能力。拿响应式来,当屏幕分辨率小于多少值时这个盒子做什么样式,预处理,如果写在JS里面(这里指的是Javascript与jquery),如果不刷新的情况下,是不会立马做判断的,除非在js里面写一个逻辑多少秒计算一次window的分辨率,反而画蛇添足了。所以用预处理,less布局响应式是比较好的。

LESS变量计算:

@nice-blue: #f938ab;
@light-blue: @nice-blue + #333;

div {
  background-color: @light-blue;
}

细分CSS与SCSS。(因为LESS我不怎么用)

css从改变颜色字体大小到整个网页的布局,今天浅谈一下各大官网布局。

FLEX布局

默认值 0 1 auto;

这是个弹性盒子布局+rem适配;

rem:分辨率适配。可以自定义:(原生js写法)

(function () {
var styleN = document.createElement("style");
var width = document.documentElement.clientWidth / 10;
styleN.innerHTML = 'html{font-size:' + width + 'px!important}';
document.head.appendChild(styleN);
})();

这里写的是1rem=10px;我记得这个效果当时写出来应该不是,但是大概意思是这样。

这里比方说 1rem=10px,当这是在分辨率为720px的时候,当为480px的时候,1rem=480/720*10大概为6.7px;

垂直居中

使用行高line-height

height与line-height相等时,自动垂直居中


<div style="background:black;
            color:#fff;
            height:100px;
            line-height:100px">
   垂直居中
</div>

其他的垂直居中比如说:定位flex+margin...

各大官网的横向居中

<div >
   <div style="background:black;color:#fff;    width: 1200px;
    margin: 0 auto;height:500px">
    我是内容
    </div>
</div>

Javascript

不管是vue.js或者是react或者是 Elment亦或是Echat可视化都逃不开底层逻辑if for swith 

if(){}

根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储;

if(条件){执行操作}

如果已知 a=1;a+1=2

if(a+1=2)返回必是true;

打印:if(a+1=2){console(1)}

输出console 1;

if中嵌套if

let a=1;

let b=2;

let c=3;
if(a<b){
if(b>c){
  console(1)
 }else{
  if(a){
  console(2)
}
}
}

输出结果:2,结果简单可见,当a<b为true则进行下一步true里面运算到b>c为false 进入到else里面的结果 则 输出:2;

当遇到

等级 1 2 3 4 5,分别对应 青铜 白银 黄金 铂金 钻石
if配合 else if实现


let a,leave;
if(a=1){
leave=青铜
}else if(a=1){
leave=白银 
else if(a=1){
leave=黄金 
}else if(a=1){
leave=铂金
}
else if(a=1){
leave=钻石
}

感觉怪怪的

于是:switch

let a;
switch(a){
					case 1:
						this.leave='青铜'
						break;
					case 2:
						this.leave='白银'
						break;	
					case 3:
						this.leave='黄金'
						break;	
					case 4:
						this.leave='铂金'
						break;	
					case 5:
						this.leave='钻石'
						break;										
	}

对比起来switch比较合适

当遇到

let a=[5,3,4,9,6,7,2,11,12,33,55,47,98]

只输出双数数,于是

因为数组下标从0开始,所以i=0从0开始循环;

for(let i=0;i<a.length;i++){
    if(a.length[i]%2==0){
        console(a.length[i])
    }
}

拓展知识:%,整除取余,9%3=0,10%3=1,11%3=2;

数组:

当在Java这种强类型语言中,数组声明

int arr[];//声明一个数组
arr = new int{1,2,3,4.....}//开辟空间并赋值

而在JS这种弱类型语言中


let a;
a=[1,2,3,4]

//或者 
let a=[1,2,3,4]
//又或者 
let a[];
a=[1,2,3,4]

拓展资料,弱语言在自己编写中比较简单而具有开放性的语言,当从后端取到数据,前端使用事半功倍,不管是Json亦或者XML使用弱语言直接可以获取并使用,而强类型语言列如JAVA需要先声明类型再赋值,且需要强制转换才可以转换,而JS当中 a=1可以是整数也可以是字符串;

JS事件处理;

预加载:window.onload()

当有JS动态要渲染到网页中,可以使用预加载。

整个JS逻辑来看,需要一个启动函数,在vue中onShow(){}函数,页面每刷新或者重新进入一次,则重新加载,但是在原生的JS当中没有这个函数,于是我们设置一个并联函数,于是

$(function(
//js启动时加载的第一个函数,可以设置预加载
init()
function init(){
  //加载一个渲染函数
  getweblist()
}
   getweblist(){
   //这里面写页面加载的渲染数据
}
))

而点击事件或者其他的触发事件,可以单一写,VUE中写在methods:{}里面,事件处理;

JS闭包

function a(){
   var A1=1533
   functin b(){
   //输出
   console(A1)
}
 return b;
}
var funA=a();

funA();

这段代码实际是可以运行的,也可以在funA函数里面调用变量A1,因为是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量;更深层的原理可以单独去了解下JS闭包,这里讲个大概;

写的太多了,撤了撤了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值