国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【全棧React】第9天: 樣式

zilu / 3283人閱讀

摘要:我們將為組件賦值,并使用選擇器來(lái)定位頁(yè)面上的元素,讓瀏覽器處理樣式。的工作方式是將因此命名父樣式作為子樣式的樣式。這通常是錯(cuò)誤的原因,因?yàn)轭愅ǔ>哂型ㄓ妹Q,并且易于覆蓋非特定類的類樣式。反之,我們的樣式名稱需要使用駝峰命名方式。

本文轉(zhuǎn)載自:眾成翻譯
譯者:iOSDevLog
鏈接:http://www.zcfy.cc/article/3820
原文:https://www.fullstackreact.com/30-days-of-react/day-9/

沒(méi)有樣式的應(yīng)用是不完整。我們將看看我們可以使用不同的方法來(lái)調(diào)整組件,從傳統(tǒng)的CSS到內(nèi)聯(lián)樣式。

通過(guò)這一點(diǎn),除了將CSS類名附加到組件之外,我們還沒(méi)有觸及我們組件的樣式。 今天,我們將花點(diǎn)時(shí)間去了解我們的React組件的樣式,使它們看起來(lái)很棒,但仍然保持完整。

我們來(lái)看幾種不同的方式來(lái)組合一個(gè)組件。

級(jí)聯(lián)樣式表(CSS)

內(nèi)聯(lián)樣式

樣式庫(kù)

級(jí)聯(lián)樣式表(CSS)

使用CSS來(lái)構(gòu)造我們的Web應(yīng)用程序是我們已經(jīng)熟悉的一個(gè)實(shí)踐,并不是什么新鮮事。 如果你以前曾經(jīng)寫(xiě)過(guò)Web應(yīng)用程序,那么你最有可能使用/編寫(xiě)了CSS。 簡(jiǎn)而言之,CSS是我們?yōu)閷?shí)際標(biāo)記之外的DOM組件添加樣式的一種方式。

使用CSS與React不一樣。 我們將在React中使用CSS,就像我們?cè)赺not_使用React時(shí)使用CSS一樣。 我們將為組件賦值ids / classes,并使用CSS選擇器來(lái)定位頁(yè)面上的元素,讓瀏覽器處理樣式。

例如,我們來(lái)設(shè)計(jì)一下我們一直在使用的Header 組件。

假設(shè)我們想使用CSS將標(biāo)題顏色變成橙色。 我們可以通過(guò)在我們的頁(yè)面中添加一個(gè)樣式表,并在CSS類中定位.header 的CSS類來(lái)輕松處理。

回想一下,我們的 Header 組件的render函數(shù)目前看起來(lái)像這樣:

class Header extends React.Component {
  render() {
    // Classes to add to the  element
    let searchInputClasses = ["searchInput"];

    // Update the class array if the state is visible
    if (this.state.searchVisible) {
      searchInputClasses.push("active");
    }

    return (
      
{this.props.title}
) } }

我們可以通過(guò)在普通的css文件中定義一個(gè).header類的樣式來(lái)定位header 。 按照慣例,我們需要確保我們?cè)贖TML頁(yè)面中使用tag來(lái)包含CSS類。 假設(shè)我們將樣式定義在與index.html文件相同的目錄中的styles.css文件中,該標(biāo)簽將如下所示:


讓我們填寫(xiě)Header 類名稱的樣式:

.header {
  background: rgba(251, 202, 43, 1);
}
.header, .fa, .title, .searchIcon {
  color: #333333;
}

首先關(guān)于CSS的最常見(jiàn)的抱怨之一是級(jí)聯(lián)功能本身。 CSS的工作方式是將_cascades_(因此命名)父樣式作為子樣式的樣式。這通常是錯(cuò)誤的原因,因?yàn)轭愅ǔ>哂型ㄓ妹Q,并且易于覆蓋非特定類的類樣式。

我們使用的例子中.header的類名不是很特別。頁(yè)面本身不僅可以有一個(gè)標(biāo)題,而且頁(yè)面上的內(nèi)容框可能是文章,甚至我們放置在頁(yè)面上的廣告都可能有一個(gè).header類名稱。

我們可以避免這個(gè)問(wèn)題的一個(gè)方法是使用像css modules這樣的東西,為我們定義自定義的非常獨(dú)特的CSS類名。
除了CSS模塊之外,CSS模塊還沒(méi)有什么神奇之處,它強(qiáng)制我們的構(gòu)建工具為我們定義了自定義的CSS類名,所以我們可以使用不太獨(dú)特的名稱。
我們稍后將在工作流程中研究使用CSS模塊。

React提供了一種不太新的方法,通過(guò)允許我們與JSX一起定義樣式,從而完全避免了這個(gè)問(wèn)題。

內(nèi)聯(lián)樣式

向?qū)嶋H組件添加樣式不僅允許我們定義組件中的樣式,還可以根據(jù)應(yīng)用的不同狀態(tài)動(dòng)態(tài)定義樣式。

React為我們提供了一種使用JavaScript對(duì)象而不是多帶帶的CSS文件來(lái)定義樣式的方法。 讓我們?cè)俅问褂?b>Header 組件,而不是使用css類來(lái)定義樣式,讓我們將它移動(dòng)到內(nèi)聯(lián)樣式。

使用style 屬性可以輕松地定義組件中的樣式。 React內(nèi)的所有DOM元素都接受一個(gè)style屬性,該屬性預(yù)計(jì)是一個(gè)具有駱駝命名的對(duì)象,定義了一個(gè)樣式名稱和值映射到它們的值。

例如,要在JSX中的元素中添加一個(gè)color樣式,這可能是:

const style = { color: "blue" }
This text will have the color blue

請(qǐng)注意,我們使用兩個(gè)大括號(hào)定義了樣式。 當(dāng)我們?cè)谀0鍢?biāo)簽中傳遞一個(gè)JavaScript對(duì)象時(shí),括號(hào)里是JS對(duì)象,括號(hào)外部是模板標(biāo)簽。

另一個(gè)可能使這個(gè)更清楚的例子是傳遞在JSX之外定義的JavaScript對(duì)象,即

render() {
  const divStyle = { color: "blue" }
  return (
This text will have the color blue
); }

在任何情況下,由于這些是JS定義的樣式,所以我們不能使用任何傳統(tǒng)的css樣式名稱(因?yàn)?b>background-color 在JavaScript中將無(wú)效)。 反之,我們的樣式名稱需要使用駝峰命名方式。

駝峰式大小寫(xiě) 除了第一個(gè)詞首字母小寫(xiě),其它詞首字母都大寫(xiě),如backgroundColorlinearGradient

要更新我們的頭部組件以使用這些樣式,而不是依賴于CSS類定義,我們可以在style 屬性之后添加className 屬性:

class Header extends React.Component {
  // ...
  render() {
    // Classes to add to the  element
    let searchInputClasses = ["searchInput"];

    // Update the class array if the state is visible
    if (this.state.searchVisible) {
      searchInputClasses.push("active");
    }

    const wrapperStyle = {
      backgroundColor: "rgba(251, 202, 43, 1)"
    }

    const titleStyle = {
      color: "#111111"
    }

    const menuColor = {
      backgroundColor: "#111111"
    }

    return (
      
{this.props.title} {/* Adding an onClick handler to call the showSearch button */}
) } }

我們的標(biāo)題將再次變成橙色。

樣式庫(kù)

React社區(qū)是一個(gè)充滿活力的地方(這是一個(gè)理想的庫(kù)工作的原因之一)。有很多樣式庫(kù)可以用來(lái)幫助我們建立我們的風(fēng)格,如Radium這樣強(qiáng)大的實(shí)驗(yàn)室。

大多數(shù)這些庫(kù)都是基于React開(kāi)發(fā)人員通過(guò)使用React定義的工作流。

Radium允許我們定義在React組件本身之外的公共樣式,它自動(dòng)提供前綴,支持媒體查詢(如:hover:active),簡(jiǎn)化了內(nèi)聯(lián)樣式,并且還有更多種類。

我們不會(huì)在這篇文章中介紹Radium,因?yàn)樗辉诒鞠盗械姆秶畠?nèi),但是知道其他的庫(kù)是很好的,特別是如果你想擴(kuò)展內(nèi)聯(lián)樣式的定義。

現(xiàn)在我們知道如何組合我們的組件,我們沒(méi)有遇到太多的麻煩可以做一些好看的。在下一部分中,我們將馬上回到為組件添加用戶交互性。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84670.html

相關(guān)文章

  • 全棧ReactReact 30教程索引

    摘要:今天我們將討論創(chuàng)建組件的最終方案,即無(wú)狀態(tài)函數(shù)的純組件。今天我們正在研究一種處理提出的復(fù)雜數(shù)據(jù)的方法,稱為體系結(jié)構(gòu)。第天部署介紹今天,我們將探討部署我們的應(yīng)用所涉及的不同部分,以便外界可以使用我們的應(yīng)用。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3758原文:https://www.fullstackreact.com/3...

    appetizerio 評(píng)論0 收藏0
  • 全棧React6: 狀態(tài)

    摘要:無(wú)論何時(shí)狀態(tài)改變通過(guò),組件將重新投遞。在調(diào)用函數(shù)之后,我們可以將第二個(gè)參數(shù)傳遞給函數(shù),該函數(shù)將在狀態(tài)更新后保證被調(diào)用。今天,我們更新了我們的組件以使其處于狀態(tài)狀態(tài),現(xiàn)在有必要處理如何使組件成為狀態(tài)。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3824原文:https://www.fullstackreact.com/30-d...

    leo108 評(píng)論0 收藏0
  • 全棧React30: 總結(jié)和更多的資源

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者鏈接原文我們做到了第天。歡迎來(lái)到最后一天恭喜你做到了我們此行的最后一個(gè)部分是通過(guò)參與。反應(yīng)社區(qū)是活躍成長(zhǎng)和友好的。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3800原文:https://www.fullstackreact.com/30-days-of-react/day-30/ 我們做到了!第30天...

    Miracle_lihb 評(píng)論0 收藏0
  • 全棧React12: 創(chuàng)建React應(yīng)用

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者鏈接原文今天,我們將添加一個(gè)構(gòu)建過(guò)程來(lái)存儲(chǔ)常見(jiàn)的構(gòu)建操作,以便我們可以輕松地開(kāi)發(fā)和部署我們的應(yīng)用。在要?jiǎng)?chuàng)建應(yīng)用的目錄中打開(kāi)終端窗口。文件有一個(gè)的節(jié)點(diǎn),這個(gè)應(yīng)用本身將被自動(dòng)掛載這是在文件中處理的。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3822原文:https://www.fullstackreact...

    solocoder 評(píng)論0 收藏0
  • 全棧React28: 部署

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者鏈接原文今天,我們將看看一些即將推出的選項(xiàng),以便我們的網(wǎng)站啟動(dòng)并運(yùn)行。昨天我們離開(kāi)了準(zhǔn)備第一次部署我們的應(yīng)用程序。現(xiàn)在的問(wèn)題是我們要在哪里和如何部署讓我們來(lái)探索什么這與部署非頁(yè)應(yīng)用程序類似。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3802原文:https://www.fullstackreact.c...

    liuhh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<