eact 是一個(gè)流行的用于構(gòu)建用戶界面的 JavaScript 庫(kù)。隨著越來(lái)越多的 JavaScript 框架跳轉(zhuǎn)到 React,內(nèi)聯(lián)樣式語(yǔ)法也變得流行起來(lái)。內(nèi)聯(lián)樣式允許你輕松地在組件上創(chuàng)建類似 CSS 的簡(jiǎn)單樣式,而無(wú)需使用單獨(dú)的樣式表。這使團(tuán)隊(duì)中的開(kāi)發(fā)人員和設(shè)計(jì)人員可以輕松地更無(wú)縫地共享和更新樣式。
內(nèi)聯(lián)樣式是一種將樣式屬性添加到 HTML 元素的方法,方法是在標(biāo)簽旁邊編寫(xiě)樣式屬性。內(nèi)聯(lián)樣式允許你在 JavaScript 組件中添加 CSS 規(guī)則,這可以使樣式更改更容易和更方便地實(shí)現(xiàn)。
在 react 中有許多不同的樣式組件方式,包括:
內(nèi)聯(lián) CSS
JS 中的 CSS
樣式化的組件
CSS 模塊等
React 應(yīng)用程序中的內(nèi)聯(lián)樣式
現(xiàn)代網(wǎng)絡(luò)不僅僅是一堆文本和圖像,它具有互動(dòng)性和吸引力。現(xiàn)在,內(nèi)聯(lián)樣式可以幫助你創(chuàng)建這些交互并以新的方式與你的訪問(wèn)者互動(dòng)!
內(nèi)聯(lián)樣式是一種使用樣式屬性將樣式信息添加到 HTML 文檔的方法。style 屬性可以添加到任何 HTML 元素中,并將在文檔頭部中的內(nèi)聯(lián)樣式表中呈現(xiàn)樣式,然后再在文檔中的任何其他內(nèi)容之前呈現(xiàn)樣式。
這意味著添加 HTML 元素的順序無(wú)關(guān)緊要,內(nèi)聯(lián)樣式表總是首先呈現(xiàn)。當(dāng)你想要向元素添加少量屬性,或者想要在不更改原始樣式表的情況下覆蓋頁(yè)面上的現(xiàn)有樣式時(shí),內(nèi)聯(lián)樣式很有用。
內(nèi)聯(lián) CSS 允許你一次將獨(dú)特的樣式應(yīng)用于一個(gè) HTML 元素。通過(guò)使用 style 屬性和其中定義的任何 CSS 屬性,你可以將 CSS 分配給特定的 HTML 元素。
style 屬性為元素指定內(nèi)聯(lián)樣式并覆蓋全局設(shè)置的任何樣式,因?yàn)樗哂凶罡叩奶禺愋浴?/span>
了解更多
SS簡(jiǎn)介
CSS (Cascading Style Sheets) 層疊樣式表。
CSS能做些什么?
1.使用CSS樣式可以有效地對(duì)頁(yè)面進(jìn)行布局。
2.使用CSS樣式可以對(duì)頁(yè)面字體、顏色、背景和其他效果實(shí)現(xiàn)精確描述,同時(shí)對(duì)它們的修改和控制變得更加快捷。
3.可以將站點(diǎn)上所有的網(wǎng)頁(yè)風(fēng)格都使用一個(gè)CSS文件進(jìn)行控制,只要修改這個(gè)CSS文件中相應(yīng)的代碼,那么整個(gè)站點(diǎn)的所有頁(yè)面都會(huì)隨之發(fā)生變動(dòng)。
4.CSS可以支持多種設(shè)備,比如手機(jī),PDA,打印機(jī),電視機(jī),游戲機(jī)等
5.將表現(xiàn)與結(jié)構(gòu)分離。
CSS 語(yǔ)法由三部分構(gòu)成:選擇符、屬性和值
屬性(property)是您希望設(shè)置的樣式屬性(style attribute)。每個(gè)屬性有一個(gè)值。屬性和值被冒號(hào)分開(kāi)。
Selector {Property:Value;}
Selector 選擇符;Property 屬性;Value 值
例如:body { background-color:#cccccc;}
將CSS應(yīng)用到網(wǎng)頁(yè)中
1.內(nèi)聯(lián)樣式表
指將CSS樣式編碼寫(xiě)在HTML或XHTML標(biāo)簽之中。
如:
<body style="background-color:#ccccc;">
<h1 style="font-size:12px; color:#ff0000;">這是一個(gè)標(biāo)題</h1>
2.內(nèi)部樣式表
內(nèi)部樣式表作為頁(yè)面中的一個(gè)單獨(dú)部分,由<style></style>標(biāo)簽定位在<head></head>之中。
如:
<head>
<style type="text/css">
body {background-color:#cccccc;}
</style>
</head>
說(shuō)明:其中type="text/css"其實(shí)可以不用寫(xiě)的,因?yàn)楝F(xiàn)在瀏覽器默認(rèn)就是它的。
3.外部樣式表
外部樣式表是CSS應(yīng)用中最好的一種形式,它將CSS樣式代碼單獨(dú)放在一個(gè)外部文件中,再由網(wǎng)頁(yè)進(jìn)行調(diào)用。
如:
在style.css樣式文件里寫(xiě)上如下:
body { background-color:#cccccc;}
在html文件“<head>”標(biāo)簽中如下:
<head>
<link rel="stylesheet" type="text/css" />
</head>
說(shuō)明:href中的地址是指網(wǎng)站根目錄下放置名為style.css的樣式文件。
CSS選擇符
1.類型選擇符
所謂類型選擇符,指以網(wǎng)頁(yè)中已有的標(biāo)簽名作為名稱的選擇符。
如:body{} h1{} p{}
2.群組選擇符
除了可以對(duì)單個(gè)標(biāo)簽進(jìn)行樣式指定外,還可以對(duì)一組標(biāo)簽進(jìn)行相同的樣式定義。
如:
h1,h2, h3, p {font-size:12px;font-family:arial;}
使用逗號(hào)對(duì)選擇符進(jìn)行分隔。對(duì)頁(yè)面中需要使用相同樣式的地方,只需寫(xiě)一次樣式。
3.包含選擇符
當(dāng)我們只打算對(duì)某個(gè)對(duì)象的子對(duì)象進(jìn)行樣式定義時(shí),可以使用包含選擇符。
如:
h1 span {font-weight:bold;} span: 它是做內(nèi)容的補(bǔ)充。
4.id 及 class 選擇符
id 及 class 均是css 提供由用戶自定義標(biāo)簽名稱的選擇符,用戶可以使用選擇符id及class 來(lái)對(duì)頁(yè)面中的xhtml標(biāo)簽進(jìn)行自定義名稱,從而達(dá)到擴(kuò)展xhtml標(biāo)簽及組合html標(biāo)簽的目的。
id 選擇器可以為標(biāo)有特定 id 的 HTML 元素指定特定的樣式。
id 選擇器以 "#" 來(lái)定義。
如:id 選擇符
<p id="p1"> 這是一個(gè)段落 </p>
#p1{font-size:12px;font-weight:bold;}
如:class 選擇符
<p class="p1"> 這是一個(gè)段落 </p>
.p1{font-size:12px;font-weight:bold;}
注意:在網(wǎng)頁(yè)中,每個(gè)id名稱中只能使用一次,不得重復(fù)。與id 不同,class 允許重復(fù)使用。比如頁(yè)面中的多個(gè)元素,都可以使用同一個(gè)樣式定義。
5.組合選擇符
如:
h1 .p1 {}表示h1標(biāo)簽下的所有class為p1的標(biāo)簽。
#content h1 {}表示id為content的標(biāo)簽下的所有h1標(biāo)簽。
6.偽類選擇符
偽類可以看做是一種特殊的類選擇符,是非常常用的選擇符之一,是能被支持CSS的瀏覽器自動(dòng)所識(shí)別的特殊選擇符。它的最大的用處就是可以對(duì)鏈接在不同狀態(tài)下定義不同的樣式效果。
a:link {color: #FF0000; text-decoration: none} /* 未訪問(wèn)的鏈接 */
a:visited {color: #00FF00; text-decoration: none} /* 已訪問(wèn)的鏈接 */
a:hover {color: #FF00FF; text-decoration: underline} /* 鼠標(biāo)在鏈接上 */
a:active {color: #0000FF; text-decoration: underline} /* 激活鏈接 */
* 一定要按照a:link, a:visited, a:hover, a:active的順序書(shū)寫(xiě)。
6.通配選擇符 *
* 號(hào)表示所有的對(duì)象,所謂通配選擇符,就是指可以使用模糊指定的方式來(lái)對(duì)對(duì)象進(jìn)行選擇,指定樣式。
如:
*{color:blue;margin:0;padding:0;}
React 中設(shè)置內(nèi)聯(lián)樣式:
const App=()=> {
const stylesObj={
backgroundColor: 'lime',
color: 'white',
};
const elementWidth=150;
return (
<div>
{/* ? 直接設(shè)置內(nèi)聯(lián)樣式 */}
<div style={{backgroundColor: 'salmon', color: 'white'}}>
跡憶客
</div>
<br />
{/* ? 使用對(duì)象變量設(shè)置內(nèi)聯(lián)樣式 */}
<div style={stylesObj}>跡憶客</div>
<br />
{/* ? 使用三元有條件地設(shè)置內(nèi)聯(lián)樣式 */}
<div
style={{
backgroundColor: 'hi'.length===2 ? 'violet' : 'mediumblue',
color: 'hi'.length===2 ? 'white' : 'mediumpurple',
}}
>
跡憶客
</div>
<br />
{/* ? 設(shè)置內(nèi)聯(lián)樣式將變量插入字符串 */}
<div
style={{
width: `${elementWidth}px`,
backgroundColor: 'salmon',
color: 'white',
}}
>
跡憶客
</div>
</div>
);
};
export default App;
代碼示例展示了在 React.js 中的元素上設(shè)置內(nèi)聯(lián)樣式的多種方法。
第一個(gè)示例直接在元素上設(shè)置樣式。
<div style={{backgroundColor: 'salmon', color: 'white'}}>
跡憶客
</div>
請(qǐng)注意,在樣式對(duì)象上設(shè)置時(shí),像 background-color 這樣的多詞屬性是駝峰式的。
style 屬性的值包含在 2 組花括號(hào)中。
內(nèi)聯(lián)樣式中的第一組花括號(hào)標(biāo)記表達(dá)式的開(kāi)始,第二組花括號(hào)是包含樣式和值的對(duì)象。
第二個(gè)示例將樣式對(duì)象提取到變量中。
const App=()=> {
const stylesObj={
backgroundColor: 'lime',
color: 'white',
};
return (
<div>
{/* ? 使用對(duì)象變量設(shè)置內(nèi)聯(lián)樣式 */}
<div style={stylesObj}>跡憶客</div>
</div>
);
};
export default App;
當(dāng)我們有多個(gè)共享相同樣式的元素時(shí),您可以使用此方法。
我們還可以使用三元運(yùn)算符有條件地在 React 中設(shè)置內(nèi)聯(lián)樣式。
<div
style={{
backgroundColor: 'hi'.length===2 ? 'violet' : 'mediumblue',
color: 'hi'.length===2 ? 'white' : 'mediumpurple',
}}
>
跡憶客
</div>
三元運(yùn)算符與 if/else 語(yǔ)句非常相似。
問(wèn)號(hào)之前的部分被評(píng)估,如果它返回一個(gè)真值,則運(yùn)算符返回冒號(hào)之前的值,否則返回冒號(hào)之后的值。
示例中的三元運(yùn)算符檢查字符串 hi 的長(zhǎng)度是否等于 2,如果是,則為 backgroundColor 屬性返回字符串紫羅蘭色,否則返回 mediumblue。
在設(shè)置內(nèi)聯(lián)樣式時(shí),我們還可以使用字符串插入表達(dá)式或變量。
const App=()=> {
const elementWidth=150;
return (
<div>
{/* ? 設(shè)置內(nèi)聯(lián)樣式將變量插入字符串 */}
<div
style={{
width: `${elementWidth}px`,
backgroundColor: 'salmon',
color: 'white',
}}
>
跡憶客
</div>
</div>
);
};
export default App;
在設(shè)置樣式時(shí),我們使用模板文字來(lái)連接字符串和變量。
div 元素的 width 屬性設(shè)置為 150px。
美元符號(hào)和花括號(hào)語(yǔ)法允許我們使用被評(píng)估的占位符。
React 中常用的模式是提取具有預(yù)定義樣式的包裝器組件,這些樣式呈現(xiàn)其子屬性。
function BoldText({children}) {
return <span style={{fontWeight: 'bold'}}>{children}</span>;
}
const App=()=> {
return (
<div>
<p>
Hello <BoldText>World</BoldText>
</p>
</div>
);
};
export default App;
這是一個(gè)非常簡(jiǎn)單的例子,但是 BoldText 組件在元素上設(shè)置了一些樣式并渲染了它的 children 屬性。
這種方法通常用于定義具有通常重用樣式的包裝器組件。
在 React 中編寫(xiě)內(nèi)聯(lián)樣式的另一種方法是將樣式寫(xiě)入擴(kuò)展名為 .css 的文件中。
.bg-salmon {
background-color: salmon;
}
.text-white {
color: white;
}
.font-lg {
font-size: 2rem;
padding: 10px 10px;
}
下面是我們?nèi)绾螌?dǎo)入和使用這些類。
// ? 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 中導(dǎo)入全局 CSS 文件時(shí),最好將 CSS 文件導(dǎo)入 index.js 文件。
index.js 文件是你的 React 應(yīng)用程序的入口點(diǎn),所以它總是會(huì)被運(yùn)行。
另一方面,如果我們將 CSS 文件導(dǎo)入組件,則在卸載組件后,CSS 樣式可能會(huì)被刪除。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。