您当前的位置: 首页 >  css

知其黑、受其白

暂无认证

  • 0浏览

    0关注

    1250博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

P07:使用Style JSX编写页面的CSS样式

知其黑、受其白 发布时间:2021-12-18 17:39:13 ,浏览量:0

Next.js 教程
  • 阐述
  • 初识Style JSX语法 把字体设成蓝色
  • 自动加随机类名 不会污染全局CSS
  • 动态显示样式

阐述

在Next.js中引入一个CSS样式是不可以用的,如果想用,需要作额外的配置。

因为框架为我们提供了一个 style jsx 特性,也就是把CSS用JSX的语法写出来。 如果你以前学过Vue,那这种写法你是非常熟悉的。

初识Style JSX语法 把字体设成蓝色

在pages文件夹下,新建一个 ycc.js 文件。然后写入下面的代码:

function Stylejsx(){
    return (
        
            willem-前端
        
    )
}

export default Stylejsx

这个是一个最简单的页面,只在层中写了一句话。 这时候我们想把页面中字的颜色变成蓝色,就可以使用 Style JSX 语法。 直接在 之间写下如下的代码:


   {
      `div{color:blue;}`
   }

主要所有的css样式需要用 {} 进行包裹,否则就会报错。 这时候你打开浏览器进行预览,字体的颜色就变成了蓝色。

在这里插入图片描述

自动加随机类名 不会污染全局CSS

加入了 Style jsx 代码后,Next.js 会自动加入一个随机类名,这样就防止了CSS的全局污染。

比如我们把代码写成下面这样,然后在浏览器的控制台中进行查看,你会发现自动给我们加入了类名,类似jsx-xxxxxxxx。

next-create\pages\ycc.js

function Stylejsx(){
    return (
        
            willem前端
            willem前端ycc
            
                {
                    `
                    div{color:blue;}
                    .willem{color:red;}
                    `
                }
            
        
    )
}

export default Stylejsx

在这里插入图片描述

动态显示样式

Next.js 使用了 Style jsx,所以定义动态的CSS样式就非常简单,比如现在要作一个按钮,点击一下,字体颜色就由蓝色变成了红色。下面是实现代码。

next-create\pages\ycc.js

import React, { useState } from 'react';

function Stylejsx(){
    // 关键代码 start
    const [color,setColor] = useState('blue')

    const changeColor = () => {
        setColor(color=='blue'?'red':'blue')
    }
    // 关键代码 end
    return (
        
            willem-前端
            改变颜色
            
                {
                    `div{color:${color};}` 
                }
            
        
    )
}

export default Stylejsx

这样就完成了CSS的动态显示,是不是非常容易。 在这里插入图片描述

关注
打赏
1665558895
查看更多评论
立即登录/注册

微信扫码登录

1.8391s