iT邦幫忙

2021 iThome 鐵人賽

DAY 8
2
Modern Web

SASS 基礎初學三十天系列 第 8

DAY 08 Nesting

嵌套 Nesting

當你在編輯一個 html 檔案時,巢狀結構的架構可以讓你快速了解,每個區塊裡面的內容物是什麼,藉此去建構一個完整的網頁,但是在單純的 css 上,卻沒有這種巢狀的樣式,讓整體可讀性、style 設定彈性降低很多。

SASS 的 Nesting 方式,讓 css 可以更直覺地去建造我們想要的樣式架構,像是在 body 裡,針對 ul、li、a 等統一設定 body 的通用字型,再分別去設定各自的字體顏色,這樣的規劃可以加速我們開發的時間,讓重複相同的 style 不用一直重寫。

但是 Nesting 也不宜過於肥厚,要注意不可以過度濫用!

實作

Untitled

首先來新增一個 nesting.sass,並且來實作一個項目列表下,nesting 的 style

$primary-color: #324980
$secondary-color: #398420
$background-color: #e0e0e0

ul
    color: $primary-color
    background-color: $background-color
    width: 50%
    text-align: left

    li
        font-weight: 100

    a
        font-weight: bold
        text-decoration: none
        color: $secondary-color

    span
        color: $secondary-color
        font-size: 15px

為了方便檢視效果,先設定了 primary color、secondary color、background color,在 ul 下的 li、a、span 會一樣套用到 ul 原本的設定值,預設都是 primary color 的顏色,背景色為 background color,寬至少為畫面的50%,並且都是靠左對齊的。

而 ul 底下的其他 tag,則會在各自套用到自己的 style 設定。

接下來別忘記要在 App.js 中 import nesting.sass,讓我們的 sass 生效

import logo from "./logo.svg";
import "./App.css";
import "./MyFirstSass.sass";
import "./main.sass";
import "./nesting.sass";

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <h1>
          this is blue h1
          <a href="http://google.com.tw">test</a>
        </h1>
        <h2>this is variable h2</h2>

        <ul>
          <li>
            first li <span>this is span, smaller than li</span>
          </li>
          <li>second li</li>
          <li>
            third with <a href="https://google.com.tw">link!</a>
          </li>
        </ul>
        <h4>hi</h4>
      </header>
    </div>
  );
}

export default App;

Untitled

這是執行後的結果,可以看到各自都有乖乖的依照我們巢狀的設定去顯示正確~


除此之外,也歡迎大家走走逛逛關於我們團隊夥伴的文章
lu23770127 - SASS 基礎初學三十天
10u1 - 糟了!是世界奇觀!
juck30808 - Python - 數位行銷分析與 Youtube API 教學
HLD - 淺談物件導向與Design Pattern介紹
SiQing47 - 前端?後端?你早晚都要全端的,何不從現在開始?


上一篇
DAY 07 Mixins
下一篇
DAY 09 Extends, Inhreitance
系列文
SASS 基礎初學三十天30

2 則留言

0
juck30808
iT邦新手 1 級 ‧ 2021-09-23 19:08:09

++

Tilda iT邦新手 5 級 ‧ 2021-09-24 12:25:15 檢舉

/images/emoticon/emoticon02.gif

0
Siqing47
iT邦新手 5 級 ‧ 2021-09-23 19:37:22

++U

Tilda iT邦新手 5 級 ‧ 2021-09-24 12:25:22 檢舉

/images/emoticon/emoticon08.gif

我要留言

立即登入留言