css简单-CSSinJS 简介

2023-08-27 0 8,106 百度已收录

1.过去,Web开发有一个原则,叫做“关注点分离”。

意味着各种技术只负责自己的领域,不应该混合在一起产生耦合。 对于Web开发来说,主要存在三种技术分离。

简单来说,就是一句话,不要写“内联样式”(inlinestyle)和“内联脚本”(inlinescript)。 例如,下面的代码很糟糕(请参阅完整代码)。

style="color:red;font-size:46px;"onclick="alert('Hi')">

你好世界

2、React出现之后,这个原则就不再适用了。 因为 React 是组件结构css简单,所以必须将 HTML、CSS 和 JavaScript 一起编写。

里面的例子用React重写如下(看完整代码)。

常量样式={

'红色',

'字体大小': '46px'

};

constclickHandler=()=>alert('hi');

ReactDOM。 使成为(

你好世界!

文档。 getElementById('示例')

);

里面的代码在一个文件上,封装了结构、风格和逻辑,完全违背了“关注点分离”的原则,很多人不习惯。

然而,这有利于组件的隔离。 每个组件包含了所有需要使用的代码,不依赖于外部,组件之间没有耦合,易于复用。 因此,随着React的流行和组件模型的流行,这些“混合关注点”的新写法逐渐成为主流。

3. 从表面上看,React 是用 HTML、CSS 和 JavaScript 混合在一起编写的。 而且,实际上不是。 如今,JavaScript 似乎被用来编写 HTML 和 CSS。

React在JavaScript上实现了HTML和CSS的封装,我们通过封装来操作HTML和CSS。 也就是说,网页的结构和样式都是由JavaScript来操作的。

4、React对HTML的封装是JSX语言。 这在各种 React 教程中都有详细介绍。 本文不再赘述。 我们来看看React对CSS的封装。

React对CSS的封装很简单,就是遵循DOM的style属性对象,上面已经听过。

常量样式={

'红色',

'字体大小': '46px'

};

里面的代码中,CSS的font-size属性应该写成fontSize,这是JavaScript操作CSS属性的约定。

由于CSS的封装性很弱,因此创建了一系列第三方库来加强React的CSS操作。 它们统称为CSSinJS,意思是用JS语言编写CSS。 据不完全统计,CSSinJS库至少有47种。 说实话,我现在看不出哪个库会成为主流。

您可能会问,它们与 Less 和 Sass(包括 PostCSS)等“CSS 预处理器”有何不同? 答案是CSSinJS使用JavaScript语法,它是JavaScript脚本的一部分。 不需要从头开始学习专用的APIcss简单,也不会有额外的编译步骤。

5. 上周,我看到了一个新的 CSSinJS 库,名为 Polish.js。 它将一些常用的CSS属性封装成函数,使用起来非常方便,充分展现了使用JavaScript语言编写CSS的优势。

我觉得这个库值得推荐。 本文的主要目的是了解如何使用该库中的 CSSinJS。

首先,加载 Polished.js。

constpolish = require('抛光');

如果是浏览器,则插入下面的脚本。

Polished.js目前有50多个方法,比如清除浮动的clearfix方法。

常量样式={

...抛光。 清除修复(),

};

里面的代码中,clearFix是一个普通的JavaScript函数,返回一个对象。

抛光。 清除修复()

//{

//&::后:{

//明确:“两者”,

//内容: ””,

//显示:“表”

//}

//}

“展开运算符”(...) 展开由clearFix 返回的对象,以便与其他 CSS 属性混合。 之后,将样式对象赋值给React组件的style属性,该组件就可以清除浮动了。

ReactDOM。 使成为(

你好,反应!,

文档。 getElementById('示例')

);

从这个反例中,你应该能够感受到polish.js的用法了。

6. 让我们看一下一些更有用的功能。

省略号将用省略号替换超出指定宽度的文本(请参阅完整代码)。

常量样式={

...polish.ellipsis('200px')

//返回值

//{

//'显示':'内联块',

//'最大宽度':'250px',

//'溢出':'隐藏',

//'文本溢出':'省略号',

//'white-space':'nowrap',

//'自动换行':'正常'

//}

hideText用于隐藏文本和显示图片。

常量样式={

'背景图片': 'url(logo.png)',

...polish.hideText(),

};

//返回值

//{

'背景图片': 'url(logo.png)',

'文本缩进': '101%',

'溢出': '隐藏',

'空白':'nowrap',

hiDPI 指定高分辨率屏幕样式。

常量样式={

[抛光.hiDPI(1.5)]:{

宽度:'200px',

};

//返回值

//'@mediaonlyscreenand(-webkit-min-device-pixel-ratio:1.5),

//onlyscreenand(min--moz-device-pixel-ratio:1.5),

//onlyscreenand(-o-min-device-pixel-ratio:1.5/1),

//onlyscreenand(最小分辨率:144dpi),

//onlyscreenand(最小分辨率:1.5dppx)':{

//'宽度':'200px',

//}

retinaImage 为高分辨率屏幕和低分辨率屏幕设置不同的背景图像。

常量样式={

...抛光。 retinaImage('我的-img')

};

//返回值

//背景图片:'url(my-img.png)',

//'@mediaonlyscreenand(-webkit-min-device-pixel-ratio:1.3),

//onlyscreenand(min--moz-device-pixel-ratio:1.3),

//onlyscreenand(-o-min-device-pixel-ratio:1.3/1),

//onlyscreenand(最小分辨率:144dpi),

//onlyscreenand(最小分辨率:1.5dppx)':{

//背景图片:'url(my-img_2x.png)',

//}

7. Polished.js提供的其他方法如下,详细使用方法请参考文档。

目前, Polished.js 只有 1.0 版本,未来应该会有越来越多的方式。

8. Polished.js还有一个特点:默认所有函数都是柯里化的,这样你就可以进行函数组合操作,自定义你想要的函数。

导入{compose}from'ramda';

从“抛光”导入{亮化、去饱和};

consttone=compose(变亮(10), 去饱和(10))

里面的代码使用Ramda函数库来完成组合操作。 Ramda的使用可以参考我写的教程。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css简单-CSSinJS 简介 https://www.wkzy.net/game/167203.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务