整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

React 应用程序中的内联样式完整指南

React 应用程序中的内联样式完整指南

eact 是一个流行的用于构建用户界面的 JavaScript 库。随着越来越多的 JavaScript 框架跳转到 React,内联样式语法也变得流行起来。内联样式允许你轻松地在组件上创建类似 CSS 的简单样式,而无需使用单独的样式表。这使团队中的开发人员和设计人员可以轻松地更无缝地共享和更新样式。

内联样式是一种将样式属性添加到 HTML 元素的方法,方法是在标签旁边编写样式属性。内联样式允许你在 JavaScript 组件中添加 CSS 规则,这可以使样式更改更容易和更方便地实现。

react 中有许多不同的样式组件方式,包括:

内联 CSS

JS 中的 CSS

样式化的组件

CSS 模块等


React 应用程序中的内联样式

现代网络不仅仅是一堆文本和图像,它具有互动性和吸引力。现在,内联样式可以帮助你创建这些交互并以新的方式与你的访问者互动!

内联样式是一种使用样式属性将样式信息添加到 HTML 文档的方法。style 属性可以添加到任何 HTML 元素中,并将在文档头部中的内联样式表中呈现样式,然后再在文档中的任何其他内容之前呈现样式。

这意味着添加 HTML 元素的顺序无关紧要,内联样式表总是首先呈现。当你想要向元素添加少量属性,或者想要在不更改原始样式表的情况下覆盖页面上的现有样式时,内联样式很有用。

内联 CSS 允许你一次将独特的样式应用于一个 HTML 元素。通过使用 style 属性和其中定义的任何 CSS 属性,你可以将 CSS 分配给特定的 HTML 元素。

style 属性为元素指定内联样式并覆盖全局设置的任何样式,因为它具有最高的特异性。


了解更多

SS简介

CSS (Cascading Style Sheets) 层叠样式表。

CSS能做些什么?

1.使用CSS样式可以有效地对页面进行布局。

2.使用CSS样式可以对页面字体、颜色、背景和其他效果实现精确描述,同时对它们的修改和控制变得更加快捷。

3.可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要修改这个CSS文件中相应的代码,那么整个站点的所有页面都会随之发生变动。

4.CSS可以支持多种设备,比如手机,PDA,打印机,电视机,游戏机等

5.将表现与结构分离。

CSS 语法由三部分构成:选择符、属性和值

属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。

Selector {Property:Value;}

Selector 选择符;Property 属性;Value 值

例如:body { background-color:#cccccc;}

将CSS应用到网页中

1.内联样式表

指将CSS样式编码写在HTML或XHTML标签之中。

如:

<body style="background-color:#ccccc;">

<h1 style="font-size:12px; color:#ff0000;">这是一个标题</h1>

2.内部样式表

内部样式表作为页面中的一个单独部分,由<style></style>标签定位在<head></head>之中。

如:

<head>

<style type="text/css">

body {background-color:#cccccc;}

</style>

</head>

说明:其中type="text/css"其实可以不用写的,因为现在浏览器默认就是它的。

3.外部样式表

外部样式表是CSS应用中最好的一种形式,它将CSS样式代码单独放在一个外部文件中,再由网页进行调用。

如:

在style.css样式文件里写上如下:

body { background-color:#cccccc;}

在html文件“<head>”标签中如下:

<head>

<link rel="stylesheet" type="text/css" href="http://www.haook.cn/style.css" />

</head>

说明:href中的地址是指网站根目录下放置名为style.css的样式文件。

CSS选择符

1.类型选择符

所谓类型选择符,指以网页中已有的标签名作为名称的选择符。

如:body{} h1{} p{}

2.群组选择符

除了可以对单个标签进行样式指定外,还可以对一组标签进行相同的样式定义。

如:

h1,h2, h3, p {font-size:12px;font-family:arial;}

使用逗号对选择符进行分隔。对页面中需要使用相同样式的地方,只需写一次样式。

3.包含选择符

当我们只打算对某个对象的子对象进行样式定义时,可以使用包含选择符。

如:

h1 span {font-weight:bold;} span: 它是做内容的补充。

4.id 及 class 选择符

id 及 class 均是css 提供由用户自定义标签名称的选择符,用户可以使用选择符id及class 来对页面中的xhtml标签进行自定义名称,从而达到扩展xhtml标签及组合html标签的目的。

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

id 选择器以 "#" 来定义。

如:id 选择符

<p id="p1"> 这是一个段落 </p>

#p1{font-size:12px;font-weight:bold;}

如:class 选择符

<p class="p1"> 这是一个段落 </p>

.p1{font-size:12px;font-weight:bold;}

注意:在网页中,每个id名称中只能使用一次,不得重复。与id 不同,class 允许重复使用。比如页面中的多个元素,都可以使用同一个样式定义。

5.组合选择符

如:

h1 .p1 {}表示h1标签下的所有class为p1的标签。

#content h1 {}表示id为content的标签下的所有h1标签。

6.伪类选择符

伪类可以看做是一种特殊的类选择符,是非常常用的选择符之一,是能被支持CSS的浏览器自动所识别的特殊选择符。它的最大的用处就是可以对链接在不同状态下定义不同的样式效果。

a:link {color: #FF0000; text-decoration: none} /* 未访问的链接 */

a:visited {color: #00FF00; text-decoration: none} /* 已访问的链接 */

a:hover {color: #FF00FF; text-decoration: underline} /* 鼠标在链接上 */

a:active {color: #0000FF; text-decoration: underline} /* 激活链接 */

* 一定要按照a:link, a:visited, a:hover, a:active的顺序书写。

6.通配选择符 *

* 号表示所有的对象,所谓通配选择符,就是指可以使用模糊指定的方式来对对象进行选择,指定样式。

如:

*{color:blue;margin:0;padding:0;}

React 中设置内联样式:

  • 将元素上的样式属性设置为对象。
  • 设置特定的 CSS 属性和值来设置元素的样式。
  • 例如,<div style={{backgroundColor: 'salmon', color: 'white'}}>。
const App=()=> {
  const stylesObj={
    backgroundColor: 'lime',
    color: 'white',
  };

  const elementWidth=150;

  return (
    <div>
      {/* ? 直接设置内联样式 */}
      <div style={{backgroundColor: 'salmon', color: 'white'}}>
        迹忆客
      </div>

      <br />

      {/* ? 使用对象变量设置内联样式 */}
      <div style={stylesObj}>迹忆客</div>

      <br />

      {/* ? 使用三元有条件地设置内联样式 */}
      <div
        style={{
          backgroundColor: 'hi'.length===2 ? 'violet' : 'mediumblue',
          color: 'hi'.length===2 ? 'white' : 'mediumpurple',
        }}
      >
        迹忆客
      </div>

      <br />

      {/* ? 设置内联样式将变量插入字符串 */}
      <div
        style={{
          width: `${elementWidth}px`,
          backgroundColor: 'salmon',
          color: 'white',
        }}
      >
        迹忆客
      </div>
    </div>
  );
};

export default App;

代码示例展示了在 React.js 中的元素上设置内联样式的多种方法。

第一个示例直接在元素上设置样式。

<div style={{backgroundColor: 'salmon', color: 'white'}}>
  迹忆客
</div>

请注意,在样式对象上设置时,像 background-color 这样的多词属性是驼峰式的。

style 属性的值包含在 2 组花括号中。

内联样式中的第一组花括号标记表达式的开始,第二组花括号是包含样式和值的对象。

第二个示例将样式对象提取到变量中。

const App=()=> {
  const stylesObj={
    backgroundColor: 'lime',
    color: 'white',
  };

  return (
    <div>
      {/* ? 使用对象变量设置内联样式 */}
      <div style={stylesObj}>迹忆客</div>
    </div>
  );
};

export default App;

当我们有多个共享相同样式的元素时,您可以使用此方法。

我们还可以使用三元运算符有条件地在 React 中设置内联样式。

<div
  style={{
    backgroundColor: 'hi'.length===2 ? 'violet' : 'mediumblue',
    color: 'hi'.length===2 ? 'white' : 'mediumpurple',
  }}
>
  迹忆客
</div>

三元运算符与 if/else 语句非常相似。

问号之前的部分被评估,如果它返回一个真值,则运算符返回冒号之前的值,否则返回冒号之后的值。

示例中的三元运算符检查字符串 hi 的长度是否等于 2,如果是,则为 backgroundColor 属性返回字符串紫罗兰色,否则返回 mediumblue。

在设置内联样式时,我们还可以使用字符串插入表达式或变量。

const App=()=> {
  const elementWidth=150;

  return (
    <div>
      {/* ? 设置内联样式将变量插入字符串 */}
      <div
        style={{
          width: `${elementWidth}px`,
          backgroundColor: 'salmon',
          color: 'white',
        }}
      >
        迹忆客
      </div>
    </div>
  );
};

export default App;

在设置样式时,我们使用模板文字来连接字符串和变量。

div 元素的 width 属性设置为 150px

美元符号和花括号语法允许我们使用被评估的占位符。

React 中常用的模式是提取具有预定义样式的包装器组件,这些样式呈现其子属性。

function BoldText({children}) {
  return <span style={{fontWeight: 'bold'}}>{children}</span>;
}

const App=()=> {
  return (
    <div>
      <p>
        Hello <BoldText>World</BoldText>
      </p>
    </div>
  );
};

export default App;

这是一个非常简单的例子,但是 BoldText 组件在元素上设置了一些样式并渲染了它的 children 属性。

这种方法通常用于定义具有通常重用样式的包装器组件。

在 React 中编写内联样式的另一种方法是将样式写入扩展名为 .css 的文件中。

.bg-salmon {
  background-color: salmon;
}

.text-white {
  color: white;
}

.font-lg {
  font-size: 2rem;
  padding: 10px 10px;
}

下面是我们如何导入和使用这些类。

// ? import css file
import './App.css';

const App=()=> {
  return (
    <div>
      <p className="bg-salmon text-white font-lg">hello world</p>
    </div>
  );
};

export default App;

在 React 中导入全局 CSS 文件时,最好将 CSS 文件导入 index.js 文件。

index.js 文件是你的 React 应用程序的入口点,所以它总是会被运行。

另一方面,如果我们将 CSS 文件导入组件,则在卸载组件后,CSS 样式可能会被删除。