整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          JavaScript中優(yōu)化嵌套的條件語(yǔ)句小技巧

          們?cè)鯓觼?lái)提高和優(yōu)化javascript里嵌套的if語(yǔ)句呢?

          if (color) {
            if (color === 'black') {
              printBlackBackground();
            } else if (color === 'red') {
              printRedBackground();
            } else if (color === 'blue') {
              printBlueBackground();
            } else if (color === 'green') {
              printGreenBackground();
            } else {
              printYellowBackground();
            }
          }

          一種方法來(lái)提高嵌套的if語(yǔ)句是使用switch語(yǔ)句。雖然它不那么啰嗦而且排列整齊,但是并不建議使用它,因?yàn)檫@對(duì)于調(diào)試錯(cuò)誤很困難。

          switch(color) {
            case 'black':
              printBlackBackground();
              break;
            case 'red':
              printRedBackground();
              break;
            case 'blue':
              printBlueBackground();
              break;
            case 'green':
              printGreenBackground();
              break;
            default:
              printYellowBackground();
          }

          如果可以重構(gòu)的話(huà),我們可以試著簡(jiǎn)化函數(shù)。比如不需要為每個(gè)顏色寫(xiě)一個(gè)函數(shù),而是將顏色作為函數(shù)的參數(shù)。

          function printBackground(color) {
            if (!color || typeof color !== 'string') {
              return; // Invalid color, return immediately
            }
          }

          但是如果不能重構(gòu)的話(huà),我們必須避免過(guò)多的條件檢查,避免過(guò)多使用switch。我們必須考慮最有效率的方法,使用object

          switch(true) {
            case (typeof color === 'string' && color === 'black'):
              printBlackBackground();
              break;
            case (typeof color === 'string' && color === 'red'):
              printRedBackground();
              break;
            case (typeof color === 'string' && color === 'blue'):
              printBlueBackground();
              break;
            case (typeof color === 'string' && color === 'green'):
              printGreenBackground();
              break;
            case (typeof color === 'string' && color === 'yellow'):
              printYellowBackground();
              break;
          }

          但是我們應(yīng)該時(shí)刻注意避免太多判斷在一個(gè)條件里,盡量少地使用switch,考慮最有效率的方法:借助object

          var colorObj = {
            'black': printBlackBackground,
            'red': printRedBackground,
            'blue': printBlueBackground,
            'green': printGreenBackground,
            'yellow': printYellowBackground
          };
          
          
          if (color in colorObj) {
            colorObj[color]();
          }

          各種技巧來(lái)自于網(wǎng)上學(xué)習(xí)和工作積累

          節(jié)我們學(xué)習(xí) Sass 中的嵌套,嵌套大家應(yīng)該不陌生,在 HTML 中就支持標(biāo)簽的嵌套。Sass 中允許一個(gè) CSS 樣式嵌套進(jìn)另一個(gè)樣式中,內(nèi)層樣式僅適用于外層樣式的選擇器范圍內(nèi)。

          示例:

          例如下面這段 CSS 代碼:

          .big {
            color: #ccc;
          }
          .big .small {
            font-size: 14px;
          }
          

          如果我們要使用 Sass 中的嵌套語(yǔ)法來(lái)寫(xiě),如下所示:

          從上圖我們可以看到,嵌套的語(yǔ)法其實(shí)很簡(jiǎn)單,相較于 CSS 語(yǔ)言中后代選擇器的寫(xiě)法,嵌套規(guī)則看起來(lái)要直觀很多。

          使用 Sass 嵌套來(lái)寫(xiě)代碼,可以減少父類(lèi)選擇器的重復(fù),不過(guò)需要注意的是,我們最好不要嵌套太多層選擇器,因?yàn)榍短讓訑?shù)越多性能越低。一般我們?cè)趯?shí)際應(yīng)用中,嵌套三層左右就差不多啦。

          引用父選擇器 &

          在嵌套 CSS 規(guī)則時(shí),有時(shí)候我們需要直接使用到嵌套外層的父選擇器,比如當(dāng)給某一個(gè)元素設(shè)定 hover 樣式時(shí)或者是當(dāng) body 元素有個(gè) classname 時(shí),可以用 & 符號(hào)來(lái)表示嵌套規(guī)則外層的父選擇器。

          示例:

          例如下面這段代碼:

          a {
            color: #ccc;
            font-size: 12px;
          }
          a:hover {
            color: #000;
          }
          

          我們可以這樣寫(xiě):



          上圖中 & 符號(hào)被解析為選擇器 a,即父選擇器。一般 & 符號(hào)是出現(xiàn)在選擇器的前面位置,例如上述代碼中的 &:hover

          除此之外,我們也可以在 & 符號(hào)后面添加一些后綴,表示在父選擇器名稱(chēng)的基礎(chǔ)上組合成新的選擇器名稱(chēng)。

          示例:

          例如下面這段代碼中,選擇器名稱(chēng)的前綴都一樣:

          .top {
            background-color: #ccc;
          }
          .top-div {
            font-size: 14px;
          }
          .top-p {
            color: #000;
          }
          .top-p__span {
            font-size: 12px;
          }
          

          那我們就可以將這些前綴都使用 & 代替:

          嵌套屬性

          許多 CSS 屬性具有相同的前綴 ,例如 font-familyfont-sizefont-weightfont-style 等,這些屬性遵循相同的命名空間,即 font 。為了便于管理這樣的屬性,同時(shí)也為了避免重復(fù)輸入,Sass 允許將屬性嵌套在命名空間中。要實(shí)現(xiàn)屬性的嵌套,只需要在命名空間后面加上一個(gè)冒號(hào) : 即可。

          示例:

          我們來(lái)看一個(gè)例子:

          .top {
            font-size: 14px;
            font-weight: bold;
            font-style: normal;
          }
          

          例如上面這段代碼中,如果我們使用 Sass 來(lái)寫(xiě),只需要在 .top 選擇器中,在 font 命名空間后面加上一個(gè) : 冒號(hào),然后將其他屬性使用花括號(hào)括起來(lái),里面的屬性就可以不用寫(xiě) font- 前綴部分了。如下圖:

          占位符選擇器 %foo

          Sass 額外提供了一種特殊類(lèi)型的選擇器,叫做占位符選擇器 (placeholder selector),它與常用的 idclass 選擇器寫(xiě)法相似,只是將 #. 替換成了百分號(hào) %,然后通過(guò) @extend 來(lái)使用。 如果不使用 @extend 指令,則無(wú)法在 CSS 中顯示結(jié)果。

          示例:

          %xkd{
              color: #000;
          }
          .box{
              @extend %xkd;
              font-size:14px;
          }
          

          編譯成 CSS 代碼:

          .box {
            color: #000;
          }
          
          .box {
            font-size: 14px;
          }
          
          

          上述代碼中,@extend 指令允許一個(gè)選擇器繼承另一個(gè)選擇器中的樣式。

          這里是云端源想IT,幫你輕松學(xué)IT”

          嗨~ 今天的你過(guò)得還好嗎?

          睡眠等同于希望

          每次醒來(lái)都是一個(gè)新的開(kāi)始

          一個(gè)新的希望


          - 2024.03.22 -


          在Web開(kāi)發(fā)的世界中,CSS(層疊樣式表)是構(gòu)建視覺(jué)吸引力和定義網(wǎng)頁(yè)布局的不可或缺的工具。

          掌握如何恰當(dāng)?shù)匾隒SS樣式以及理解它們的優(yōu)先級(jí)規(guī)則,對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō)至關(guān)重要。今天,我們就來(lái)深入探討CSS的四種引入方式,以及選擇器的優(yōu)先級(jí)之謎,了解常用的CSS樣式及使用方法!



          一、CSS四種樣式引入方式

          CSS(層疊樣式表)為網(wǎng)頁(yè)提供了豐富的樣式定義,允許開(kāi)發(fā)者通過(guò)多種方式將樣式應(yīng)用到HTML文檔中。以下是四種主要的CSS引入方式:


          1.1 行內(nèi)樣式

          這是最直接也最簡(jiǎn)單的方法,通過(guò)在HTML元素的style屬性中直接編寫(xiě)CSS規(guī)則。

          示例:

          <p style="color: red; font-size: 20px;">這是一段紅色的文字。</p>


          這種方式的優(yōu)點(diǎn)是簡(jiǎn)單快捷,但缺點(diǎn)是它使得HTML代碼與樣式混合,不夠純凈,且不利于樣式的復(fù)用和維護(hù)。


          1.2 內(nèi)嵌樣式

          在一個(gè)HTML文檔中使用<style>標(biāo)簽將CSS規(guī)則嵌入到HTML的head部分。這種方式適用于定義特定于某一頁(yè)面的樣式。

          示例:

          <head>
          <style>
          body {background-color: powderblue;}
          h1 {color: blue;}
          p {color: red;}
          </style>
          </head>
          <body>
          <h1>This is a heading</h1>
          <p>This is a paragraph.</p>
          </body>



          1.3 外部樣式

          這是最常用的方法,它通過(guò)<link>標(biāo)簽將外部的CSS文件鏈接到HTML文檔中。這種方法的優(yōu)勢(shì)在于可以在多個(gè)頁(yè)面間共享同一個(gè)樣式文件,有助于保持代碼的整潔和一致性。

          示例:

          <head>
          <link rel="stylesheet" type="text/css" href="mystyle.css">
          </head>
          <body>
          <h1>This is a heading</h1>
          <p>This is a paragraph.</p>
          </body>
          其中,mystyle.css的內(nèi)容可能如下:
          body {background-color: powderblue;}
          h1 {color: blue;}
          p {color: red;}


          1.4 導(dǎo)入樣式

          使用@import語(yǔ)句在CSS文件中導(dǎo)入另一個(gè)CSS文件。盡管這種方法可以分離樣式表,但它通常不被推薦使用,因?yàn)槠浼虞d時(shí)序可能會(huì)影響頁(yè)面渲染效率。

          示例:

          @import url('https://fonts.googleapis.com/css?family=Roboto');
          body {
          font-family: 'Roboto', sans-serif;
          }


          1.5 樣式單優(yōu)先級(jí)

          作用域范圍:外部樣式表>內(nèi)部樣式表>行內(nèi)樣式表


          優(yōu)先級(jí):

          • 行內(nèi)樣式表>內(nèi)部樣式表>外部樣式表
          • 相同的樣式作用在同一個(gè)標(biāo)簽上:就近原則;不同的樣式作用在同一個(gè)標(biāo)簽上:疊加。
          • 加載外部樣式表或者內(nèi)部樣式表時(shí)候,需要注意加載順序:加載html文件是從上向下加載的,也就是后面加載的樣式會(huì)覆蓋前面的樣式。


          二、CSS常用樣式

          2.1 字體樣式

          normal - 文字正常顯示

          italic - 文本以斜體顯示

          oblique - 文本為“傾斜”(傾斜與斜體非常相似,但支持較少)

          font-weight 屬性指定字體的粗細(xì)

          示例:

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          .sp1{
          color: darkorange;
          font-size: 20px;
          font-weight: bolder; /* bolder 字體是否加粗*/
          
          font-style: italic; /* italic 字體是否傾斜*/
          
          font-family: "宋體"; /* 設(shè)置字體樣式*/
          }
          
          .sp2{
          /* 簡(jiǎn)寫(xiě) */
          /* 順序不能能變:style-weigth-size-family */
          font:italic bolder 15px 宋體 ;
          color:rgb(28, 235, 97);
          }
          </style>
          <body>
          <span>
          編程學(xué)習(xí),從云端源想開(kāi)始!
          </span><br>
          <span>
          讓知識(shí)觸手可及
          </span>
          <p>讓知識(shí)觸手可及</p>
          </body>
          </html>



          2.2 文本樣式

          color: 字體顏色

          text-align: center; - - 文本對(duì)齊方式

          text-decoration:none; - - 文本的線(xiàn)

          text-shadow: pink 5px 5px 2px; - - 文本的陰影 【陰影顏色-水平方向的偏移量-垂直方向的偏移量-模糊距離】

          line-height: - - 行高 (文本在標(biāo)簽內(nèi)所占的高度)

          width:

          height:

          border: 1px #ffffff solid; - - 盒子邊框【邊框粗細(xì)-顏色-邊框線(xiàn)樣式】

          示例:

          <style>
          .p{
          color: rgb(0, 255, 21); /* 字體顏色 */
          text-align: center; /* 文本對(duì)齊方式 */
          text-decoration:none; /* 文本的線(xiàn) */
          text-shadow: pink 5px 5px 2px; /* 文本的陰影 【陰影顏色-水平方向的偏移量-垂直方向的偏移量-模糊距離】*/
          line-height: 400px; /* 行高 (文本在標(biāo)簽內(nèi)所占的高度)*/
          width: 400px;
          height: 300px;
          border: 1px rgb(76, 14, 223) solid; /* 盒子邊框【邊框粗細(xì)-顏色-邊框線(xiàn)樣式】 */
          }
          </style>
          </head>
          
          <body>
          <p>歡迎來(lái)到云端源想!</p>
          <a href="https://www.baidu.com"></a>
          </body>


          2.3 背景樣式

          width: 500px;

          height: 1200px;

          background-color: pink; - - 背景顏色

          background-image: url(…/img/background.jpg); - - 背景圖片

          background-repeat: no-repeat; - - 背景圖片是否平鋪

          background-position: left top; - - 指定背景圖片的位置

          background-attachment: fixed; - - 背景圖片是否隨著標(biāo)簽滾動(dòng) 【fixed-固定 scroll-滾動(dòng)】

          示例:

          <style>
          .d{
          width: 500px;
          height: 1200px;
          background-color: pink; /* 背景顏色 */
          background-image: url(../img/background.jpg); /* 背景圖片 */
          background-repeat: no-repeat; /* 背景圖片是否平鋪 */
          background-position: left top; /* 指定背景圖片的位置 */
          background-attachment: fixed; /* 背景圖片是否隨著標(biāo)簽滾動(dòng) 【fixed-固定 scroll-滾動(dòng)】 */
          }
          </style>
          </head>
          <body>
          <div>
          
          </div>


          2.4 列表樣式

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          li{
          background-color: lemonchiffon;
          /*列表樣式:常用取值:none-無(wú)樣式 square-正方形 circle-空心圓 decimal-數(shù)字*/
          list-style-type: circle;
          /*列表樣式為自定義圖片*/
          list-style-image: url(../img/2.jpg);
          /*列表樣式的放置位置*/
          list-style-position: inside;
          /*列表樣式縮寫(xiě)*/
          list-style: square url(../img/2.jpg) inside;
          /*常用的列表樣式*/
          list-style: none;
          }
          </style>
          </head>
          <body>
          <ul>
          <li>列表項(xiàng)1</li>
          <li>列表項(xiàng)2</li>
          <li>列表項(xiàng)3</li>
          </ul>
          </body>
          </html>


          2.5 邊框樣式

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          .border{
          /*邊框?qū)挾?/
          border-width: 2px;
          /*邊框顏色*/
          border-color: red;
          /*邊框樣式:solid 實(shí)線(xiàn) dotted 點(diǎn)線(xiàn) dashed 虛線(xiàn)*/
          border-style: dashed;
          /*邊框樣式縮寫(xiě):樣式 顏色 寬度*/
          border:solid green 5px;
          /*邊框可以為4個(gè)方向分別設(shè)置*/
          border-top: dashed black 4px;
          border-right: dashed #FF00FF 4px;
          border-bottom: dotted darkblue 4px;
          border-left: solid fuchsia 5px;
          /*沒(méi)有邊框*/
          border: none;
          /*常用的細(xì)邊框樣式*/
          border: solid 1px #ccc;
          }
          </style>
          </head>
          <body>
          <div class="border">這是一個(gè)帶有邊框的元素</div>
          </body>
          </html>


          2.6 盒子模型

          所有的html元素可以看做是盒子,在css中,"box model"是用來(lái)設(shè)計(jì)和布局時(shí)使用。

          CSS盒子模型本質(zhì)是一個(gè)盒子,封裝周?chē)膆tml元素,它包括:邊框、邊距、填充、實(shí)際內(nèi)容。

          盒子模型允許我們?cè)谄渌睾椭車(chē)剡吙蛑g的空間放置元素。

          • margin:外邊距,清除邊框外區(qū)域,外邊距是透明的。
          • border:邊框,圍繞在內(nèi)邊距和內(nèi)容外的邊框。
          • padding:內(nèi)邊距,清除內(nèi)容周?chē)鷧^(qū)域內(nèi)邊距是透明的。
          • content:內(nèi)容,顯示文字和圖像。

          想要快速入門(mén)前端開(kāi)發(fā)嗎?推薦一個(gè)前端開(kāi)發(fā)基礎(chǔ)課程,這個(gè)老師講的特別好,零基礎(chǔ)學(xué)習(xí)無(wú)壓力,知識(shí)點(diǎn)結(jié)合代碼,邊學(xué)邊練,可以免費(fèi)試看試學(xué),還有各種輔助工具和資料,非常適合新手!點(diǎn)這里前往學(xué)習(xí)哦!云端源想

          示例:

          <head>
          <meta charset="UTF-8">
          <title></title>
          <style>
          /* border:邊框,分4個(gè)方向,同理margin、padding也分為四個(gè)方向
          * margin:元素與元素之間對(duì)的距離
          * padding:內(nèi)容與邊框之間的距離
          * 設(shè)置的時(shí)候順序:上 右 下 左
          */
          .div{
          border: solid red 10px;
          /*四個(gè)方向上的元素與元素之間的距離都是50px*/
          margin: 50px;
          /*兩個(gè)值的時(shí)候:第一個(gè)參數(shù)表示上下距離都是50px,第二個(gè)參數(shù)表示左右距離都是100px*/
          margin: 50px 100px;
          padding: 50px;
          /*
          一個(gè)元素真正的寬度=width+左右padding值+左右的border值
          一個(gè)元素的真正高度=height+上下的padding值+上下的border值
          * */
          }
          </style>
          </head>
          <body>
          <div>111111111112222222222223333333333333333</div>
          </body>

          1)盒子的寬高

          元素的實(shí)際寬度和高度:

          • 計(jì)算一個(gè)元素在實(shí)際在頁(yè)面占據(jù)的總寬度=元素寬度+左填充+右填充+左邊框+右邊框+左邊距+右邊距
          • 元素實(shí)際在頁(yè)面占據(jù)的總高度=元素高度+頂部填充+底部填充+上邊框+下邊框+上邊距+下邊距



          2)設(shè)置寬度=元素實(shí)際寬度,box-sizing屬性。

          <head>
          <meta charset="UTF-8">
          <title></title>
          <style>
          /* box-sizing:確認(rèn)元素的大小
          content-box: 實(shí)際寬度=width+左右的psdding值+上下的border值
          實(shí)際高度=height+上下的padding值+上下的border值
          border-box:實(shí)際寬度=width;實(shí)際高度=height
          padding和border不會(huì)影響元素的實(shí)際寬高
          * */
          .box{
          width: 100px;
          height: 200px;
          border: 5px solid;
          padding: 5px;
          box-sizing: content-box;
          }
          </style>
          </head>
          <body>
          <div>你好中國(guó)</div>
          </body>


          CSS的世界博大精深,以上只是冰山一角,希望通過(guò)這些基礎(chǔ)的常用樣式可以幫助你快速進(jìn)入CSS世界的大門(mén)。


          掌握CSS的引入方式和選擇器優(yōu)先級(jí)是構(gòu)建高效、可維護(hù)網(wǎng)站的關(guān)鍵。通過(guò)這些知識(shí),你可以更好地管理和優(yōu)化你的樣式代碼,創(chuàng)造出既美觀又專(zhuān)業(yè)的網(wǎng)頁(yè)設(shè)計(jì)。現(xiàn)在,準(zhǔn)備好邁入CSS的世界,開(kāi)啟你的創(chuàng)意之旅吧!


          我們下期再見(jiàn)!


          END

          文案編輯|云端學(xué)長(zhǎng)

          文案配圖|云端學(xué)長(zhǎng)

          內(nèi)容由:云端源想分享


          主站蜘蛛池模板: 丰满爆乳一区二区三区| 日韩AV片无码一区二区不卡| 一区国产传媒国产精品| 国产在线精品一区在线观看| 亚洲一区精品中文字幕| 国产精品女同一区二区久久| 国产怡春院无码一区二区| 亚洲爆乳精品无码一区二区三区| 美女AV一区二区三区| 日韩精品一区二区三区老鸦窝| 精品亚洲A∨无码一区二区三区 | 精品国产日韩亚洲一区在线| 精品国产一区二区三区无码| 久久精品国产一区二区三| 国产精品毛片一区二区三区| 久久无码精品一区二区三区| 亚洲A∨精品一区二区三区| 国产视频一区二区在线观看| 无码丰满熟妇一区二区| 日韩国产免费一区二区三区| 伊人久久一区二区三区无码| 中文字幕AV一区二区三区| 中文字幕日韩丝袜一区| 精品国产鲁一鲁一区二区| 中文字幕av人妻少妇一区二区| 久久久久人妻一区精品| 国模无码一区二区三区| 精品日产一区二区三区手机| 亚洲熟女少妇一区二区| 亚洲国产综合无码一区二区二三区 | 少妇特黄A一区二区三区| 亚洲国产精品乱码一区二区| 久久一区二区精品综合| 无码日韩精品一区二区免费暖暖| 久久高清一区二区三区| 久久久久人妻一区精品色| 亚洲AV香蕉一区区二区三区| 国产精品成人99一区无码| 精品一区二区三区中文| 久久综合一区二区无码| 中文字幕在线观看一区|